在App Purchase中,其状态不会更改为SKPaymentTransactionStatePurchased
我已将应用内购买function添加到我的iphone-ipad应用程序中,它现在正在app store中运行。 我正在更新此应用程序并使用下面的方法来获取事务状态通知
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { for (SKPaymentTransaction *transaction in transactions) { NSLog(@"Payment Queue"); switch (transaction.transactionState) { case SKPaymentTransactionStatePurchased: [self completeTransaction:transaction]; break; case SKPaymentTransactionStateFailed: NSLog(@"Payment not finished"); [self failedTransaction:transaction]; break; case SKPaymentTransactionStateRestored: [self restoreTransaction:transaction]; break; case SKPaymentTransactionStatePurchasing: NSLog(@"Trying To Purchase"); break; default: NSLog(@"Buraya giriyor"); break; } }
}
但问题是当我尝试连接到沙盒服务器时,我得到了事务失败状态。 一切都与app store中的工作相同。 我刚刚在应用中更新了一些视图。 在商店中使用该应用程序时,它会询问AppleID并要求确认下载内容。 当我在应用程序购买测试时,它也要求这个AppleID和确认。 但是现在,虽然它找到并获得了产品标识符,但它并没有要求这些确认。
1月9日星期五04:14:19 iPod-touch CCDergi [1740]:indirilenappkey = 201107
两行之间的日志信息属于我想要购买的产品。
1月9日星期五04:14:21 iPod-touch CCDergi [1740]:———————————- ————
1月9日星期五04:14:21 iPod-touch CCDergi [1740]:产品名称:呼叫中心生活问题8
1月9日星期五04:14:21 iPod-touch CCDergi [1740]:产品描述:Call Center Life杂志第8期
1月9日星期五04:14:21 iPod-touch CCDergi [1740]:产品价格:2.99
1月9日星期五04:14:21 iPod-touch CCDergi [1740]:产品编号:com.selvitech.cclife.201107
1月9日星期五04:14:21 iPod-touch CCDergi [1740]:———————————- ————
1月9日星期五04:14:21 iPod-touch CCDergi [1740]:购买Dergi
1月9日星期五04:14:21 iPod-touch CCDergi [1740]:付款队列
1月9日星期五04:14:21 iPod-touch CCDergi [1740]:试图购买
1月9日星期五04:14:25 iPod-touch CCDergi [1740]:付款队列
1月9日星期五04:14:25 iPod-touch CCDergi [1740]:付款未完成
可能是什么问题? 我错过了什么?
先谢谢你..
**(取消..这对我不起作用,虽然它可能对其他人有帮助)
我注意到在iOS9上没有transactionReceipt方法。 它返回nil值而不是收据数据。 因此,使用此方法的某些应用程序无法购买。 从iOS7开始不推荐使用此方法。 最后它变得不起作用了。
NSData receipt = [transaction transactionReceipt]; //always return nil on ios9
您应该使用[NSBundle appStoreReceiptURL]来获取收据数据。
NSURL* url = [[NSBundle mainBundle] appStoreReceiptURL]; NSData* receipt = [NSData dataWithContentsOfURL:url]; //works fine.
一旦我尝试将其集成到我的App中进行测试,我会更新。