在应用程序购买付款对话框中未在Mac OS Lion上显示

时间:2011-12-08 18:50:54

标签: objective-c macos in-app-purchase storekit

我正在为应用程序购买中使用的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是正确的,而transactionIdentifiertransactionState。这告诉我SKPaymentTransactionStatePurchasing和Apple服务器之间存在一些通信问题。

其他人遇到过这个问题?任何帮助将不胜感激,我现在​​正在努力奋斗3天,并且找不到解决方案,这让我发疯了。

1 个答案:

答案 0 :(得分:0)

我终于找到了答案。我确实根据In App Purchase Programming Guide正确实现了一切。

似乎我一直在做错的是在收据验证码之前添加交易观察员。我更改了订单后(首先验证收据,然后添加观察者)一切正常。应该在某处提到这个细节。这引起了很多头痛。