我已将应用购买功能添加到我的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;
}
}
}
但问题是当我尝试连接到沙盒服务器时,我得到了事务失败状态。应用程序商店中的工作一切都是一样的。我刚刚在应用中更新了一些视图。在商店中使用该应用程序时,它询问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]:产品名称:Call Center Life Issue 8
1月9日星期五04:14:21 iPod-touch CCDergi [1740]:产品描述:呼叫中心生活杂志第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]:付款未完成
可能是什么问题?我错过了什么?
提前谢谢..
答案 0 :(得分:1)
**(取消......这对我来说没有用,虽然它可能对其他人有帮助)
我注意到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中进行测试,我会更新。