我正在开发一个应用程序,用户可以在其中购买自动续订订阅。购买部分工作正常,但当用户删除应用程序并尝试恢复其购买时会出现问题。以下是我为处理该问题而编写的代码。
-
我已经给出了一个标题为“已经是订阅者”的按钮。当用户点击时,我调用以下代码。
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
-
这就是我处理恢复的方式- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
method.
case SKPaymentTransactionStateRestored:
duration = [strDuration intValue];
if(transaction.transactionReceipt != nil){
receipt = [[NSString alloc] initWithData:[b64 dataByBase64EncodeFromData:transaction.transactionReceipt] encoding:NSASCIIStringEncoding];
[userDefault setObject:transaction.transactionReceipt forKey:@"LastReceipt"];
[queue finishTransaction:transaction];
[self callReceiptInfoImpl];
}
break;
-
以下是恢复事务完成时的委托方法。
-(void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue{
NSLog(@"COMPLETED TRANSACTION RESTORED");
}
问题是,当用户单击“已经是订阅者”按钮时,步骤 1. 会被调用,但步骤 2. 永远不会被调用。最后我可以在屏幕上看到消息“已完成交易已恢复”。
如果有人遇到类似的问题,请指导。
谢谢阅读.....
在你的类中,你必须实现回调
函数 paymentQueue:updatedTransactions:
该功能将在以下时间接收交易更新
它被制作了。因为即使应用程序处于运行状态,您的交易也会发生
已关闭,您应该准备好尽快接收这些通知
你打开应用程序。所以最好的地方是初始化它
applicationDidFinishLaunching 或等效方法。
由此link http://blog.mugunthkumar.com/coding/iphone-tutorial-%E2%80%93-in-app-purchases/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)