我已经在我的iphone-ipad应用程序中添加了应用程序购买功能,它现在正在应用程序商店中工作。我正在更新此应用程序,并使用下面的方法获取事务状态通知
- (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;
}
}}
但问题是,当我尝试连接到沙箱服务器时,我得到了事务失败状态。在应用程序商店中,一切都与正常工作的应用程序相同。我刚刚更新了应用程序中的一些视图。在商店中使用这款应用时,它会询问AppleID,并要求确认下载内容。当我在应用程序购买中测试的时候,它也要求这个AppleID和确认。但是现在,尽管它找到并获得了产品标识符,但它并不要求这些确认。
Fri Jan 9 04:14:19 iPod-touch CCDergi1740 : indirilenappkey = 201107
两行之间的日志信息属于我试图购买的产品。
Fri 9 04:14:21 iPod-touch CCDergi1740:
Fri Jan 9 04:14:21 iPod-touch CCDergi1740 :产品名称:呼叫中心生活第8期
Fri Jan 9 04:14:21 iPod-touch CCDergi1740 :产品说明:呼叫中心生活杂志第8期
Fri 9 04:14:21 iPod-touch CCDergi1740 :产品售价: 2.99
Fri Jan 9 04:14:21 iPod-touch CCDergi1740 :产品id: com.selvitech.cclife.201107
Fri 9 04:14:21 iPod-touch CCDergi1740:
Fri Jan 9 04:14:21 iPod-touch CCDergi1740 :购买Dergi
Fri Jan 9 04:14:21 iPod-touch CCDergi1740 :付款队列
Fri Jan 9 04:14:21 iPod-touch CCDergi1740 :正在尝试购买
Fri Jan 9 04:14:25 iPod-touch CCDergi1740 :付款队列
Fri Jan 9 04:14:25 iPod-touch CCDergi1740 :付款未完成
可能的问题是什么?我错过了什么?
提前谢谢你..
发布于 2015-09-14 07:11:43
**(取消..这对我不起作用,尽管它对其他人可能仍然有帮助)
我注意到在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. 我会更新一旦我尝试将此集成到我的应用程序进行测试。
https://stackoverflow.com/questions/7026630
复制相似问题