我希望有人可以在这里提供帮助,我在商店里有两个iPhone应用程序通过应用内购买。这两个应用程序都是成熟的代码(已发布超过2年),并且都使用相同的Web服务,并且已经工作了2年。
现在,我们遇到了一个问题,一些用户(百分之十,对我们来说很高)正在完成购买,而且设备在成功交易后并没有回复我们的网络服务。
我们的流程是
用户启动交易并请求物品付款
用户输入他们的iTunes详细信息并且购买成功(我们在iTunes帐户中看到有效的付款)
应用程序“应该”然后将付款收据发送到我们的Web服务器进行验证,并授予应用程序下载内容的权限
此过程一直适用于任何事情< IOS7但是自IOS7以来我们没有接到对我们网络服务器的调用。
我正在处理SKPaymentTransaction的transactionState,因为它已经工作了很长时间,但据我所知,这种方法有时候没有被击中?
(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
谢谢。
答案 0 :(得分:1)
我遇到了与成熟代码类似的问题。在某些情况下,应用商店似乎正在向SKPaymentTransactionObserver发送null productIdentifiers。
不幸的是我无法在沙箱中重现,但我能够使用App Store构建。
应用程序也会在任何后续启动时崩溃,因为存储工具包会尝试在启动时处理事务(使用空ID)。对于空产品标识符进行防御性编码很容易,但不幸的是它需要更新。
This Stack Overflow thread很有帮助。
很抱歉,这不能解答您的问题,但希望您能找到有用的信息。