在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中进行测试,我会更新。