PE *_*Xie 11 in-app-purchase ios receipt-validation
一旦我从客户收到收据并通过苹果服务器进行验证,我就会在此收据中获得新购买的交易ID(这是自动订购购买).几天后,我从同一客户端收到一张新收据并进行验证,发生了奇怪的事情:旧购买的交易ID发生了变化.
我将旧收据中此次购买的数据与新收据中的数据进行比较,唯一更改的是transaction_id字段,original_transaction_id,purchase_date,expires_date,web_order_line_item_id和其他字段完全相同.
比我检查数据库,我发现大约1%的交易记录有相同的情况.并且有一个特点,他们的大部分交易ID都增加或减少了1-2.
我以前认为交易ID是购买的标识符.有没有人遇到同样的问题或知道原因?
是的,我们也看到了这种情况。我们看到这是由“还原购买”按钮的点击触发的。
如果您的“恢复购买”按钮使用restoreCompletedTransactions
API,则这将导致您的交易ID发生更改。我们已经证实这得到了Apple开发人员的支持。
显然,您可以打电话给SKReceiptRefreshRequest
它,它只会获取最新的收据,而不是重播所有交易。据我了解,这不会导致交易ID发生变化。
有趣的是,我们目睹了在web_order_line_item_id
对的调用中这些值没有改变restoreCompletedTransactions
。但是,当我们要求确认时,我们最多只能得到苹果开发人员支持的模棱两可的答复:
关于web_order_line_item_id字段,该值将在每次后续更新时更改。
您可以使用此功能,只要随着续订事件的到来继续存储新值即可。
我们将其表示web_order_line_item_id
为每个续订购买都是唯一的。既不确认也不拒绝在调用期间保持不变restoreCompletedTransactions
此外,我发现在Apple / Google / Amazon定期计费中录制此会议非常有用(尽管不适用于此特定情况):
罗莎·古铁雷斯(Rosa Gutierrez)-反复发生的噩梦。实施跨平台的应用内订阅购买
基于最新的 Apple 开发人员文档,
web_order_line_item_id - 跨设备购买事件的唯一标识符,包括订阅续订事件。此值是识别订阅购买的主键。
transaction_id - 您可以使用此值:
归档时间: |
|
查看次数: |
2774 次 |
最近记录: |