我正在为应用程序购买中使用的Mac App Store编写一个mac应用程序。我仔细检查过,我认为我已经正确实施了一切。因此,当我向产品请求委托方法时
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
使用正确的产品ID调用。然后我使用
付款[[SKPaymentQueue defaultQueue] addPayment:payment];
此时出现问题。在前10-15分钟内,购买对话框根本没有显示,我也没有收到updatedTransactions
通知。一段时间后,如果我再试一次,一切正常,我会在1-2秒内提示我的凭据。这对我来说似乎很奇怪,因为它们应该从一开始就有效。
因此,我的应用被拒绝了几次,说明在应用内购买不起作用。
是的,我已经添加了收据验证码,如果它不存在,那么我退出代码为173的应用程序,系统会提示我输入凭据,然后应用程序重新打开,但即使在此之后,应用程序也无法运行。是的,我已经使用已使用分发配置文件创建的内置对此进行了测试。我使用的是XCode 4.2,我的操作系统是Lion。
将付款添加到队列后,我尝试启动计时器以定期检查transactions
的{{1}}属性。 SKPaymentQueue
是正确的,而transactionIdentifier
是transactionState
。这告诉我SKPaymentTransactionStatePurchasing
和Apple服务器之间存在一些通信问题。
其他人遇到过这个问题?任何帮助将不胜感激,我现在正在努力奋斗3天,并且找不到解决方案,这让我发疯了。
答案 0 :(得分:0)
我终于找到了答案。我确实根据In App Purchase Programming Guide正确实现了一切。
似乎我一直在做错的是在收据验证码之前添加交易观察员。我更改了订单后(首先验证收据,然后添加观察者)一切正常。应该在某处提到这个细节。这引起了很多头痛。