ios支付java服务器端_iOS应用程序内购买:消耗品的服务器端收据验证

a) in this case, has the user already paid for the product?

PaymentTransaction观察员将告诉您用户购买的状态是 .Purchased, .Purchasing, .Failed . 等等 .

因此,我们可以从您的问题中假设用户的 state is .Purchased 并且您将收到付款 . 现在,由于他们有收据,并且希望通过真实购买,他们将等待您在服务器上进行验证并解锁购买,因为他们已收到包含有关其购买数据的收据 .

b) Since receipts for consumable products compare only at the time of the purchase, how should the validation retry be managed? Should I save the receipt locally in order to retransmit it in the future? Can I simply does not mark the transaction as "finished"? From what I understand reading the documentation, in this case StoreKit should call the transaction queue observer again (passing again the receipt?) until the transaction is marked as "finished", is it correct?

您无需在本地存储,并在收据中存储有关购买的信息 . 这将保留,直到您的paymentObserver完成交易或收据再次刷新/更新 . 您的应用程序将继续尝试验证您的服务器,直到收到有关收据的回复,通常是当用户再次启动应用程序时,如果我们认为它是有效的,您启用您的产品,然后在此完成SKPaymentQueue上的交易 .

在它说的文档中

“购买时,可将消费品的应用内购买收据添加到收据中 . 它会保留在收据中,直到您的应用完成该交易 . 在此之后,下次更新收据时将从收据中删除“

另外:“例如,考虑用户在进入隧道之前在您的应用中购买东西的情况 . 您的应用无法提供已购买的内容,因为没有网络连接 . 下次启动应用程序时,StoreKit会再次调用您的事务队列观察器,并在此时提供所购买的内容 . 同样,如果您的应用程序未能将交易标记为已完成,则每次启动应用程序时,StoreKit都会调用观察者,直到交易正确完成为止 . “

我希望这有帮助,我希望它能回答你的问题 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值