首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在哪些情况下,SKPaymentTransaction.transactionIdentifier与已验证的收据的transaction_id相同?

在哪些情况下,SKPaymentTransaction.transactionIdentifier与已验证的收据的transaction_id相同?
EN

Stack Overflow用户
提问于 2020-01-01 23:02:21
回答 1查看 929关注 0票数 2

SKPaymentTransaction.transactionIdentifier的文档说明:

该值具有与接收中事务的transaction_id相同的格式;但是,值可能不是相同的。

transaction_id的文档说明如下:

此值具有与事务的transactionIdentifier属性相同的格式;但是,值可能不是相同的。 您可以使用此值来: ·管理帐户数据库中的订阅者。存储每个事务的transaction_idoriginal_transaction_idproduct_id,作为为每个客户存储事务记录的最佳实践。每次订阅在新设备上自动更新或还原时,App商店都会为transaction_id生成一个新值。 ·将购买交易与恢复或更新交易区分开来。在购买事务中,transaction_id总是与original_transaction_id匹配。对于订阅,它指示第一次订阅购买。对于恢复或更新,transaction_idoriginal_transaction_id不匹配。如果用户多次恢复或更新相同的购买,则每个恢复或更新都有不同的transaction_id

还将注意事务标识符下的收据验证程序设计指南 (来自Documentation )状态:

此值对应于事务的transactionIdentifier属性。

注意到这一点后,我的问题是:何时SKPaymentTransaction.transactionIdentifier与已验证的收据的transaction_id相同,或者何时不是?

在我们的应用程序中,我们只处理可消费的应用程序内购买,没有订阅。在这种情况下,这两个值是否相同?我之所以这样问,是因为我需要能够记录购买服务器端的信息以及购买它的用户的信息。有关它所呈现的过程和问题的说明,请参见下文。

假设用户购买了可消费产品,记录该事务的请求就会失败,例如,我们的服务器关闭了,所以我们不调用finishTransaction:。现在,假设该用户登录并登录到另一个用户帐户,并购买另一个可消费产品,我们再次无法记录它。现在收据上有两种消费品。当他们启动应用程序时,paymentQueue(_:updatedTransactions:)将被调用,在transactions数组中包含两个项,以通知我们需要完成的purchased事务。我们需要提交收据到我们的服务器,以记录交易,但我们也需要发送一些额外的信息与每一个交易,如用户身份谁购买它。这意味着我需要用一个相关的transactionIdentifier将这些信息保存在磁盘上,这样以后我就可以获得这些数据了。我可以向服务器发送一组用户I和收据。但是后端如何知道收据中的哪个事务与数组中的哪个用户id匹配?我不认为in_app数组能够以任何特定的方式进行排序,并且可能与提供给paymentQueue(_:updatedTransactions:)transactions数组的顺序不匹配。因此,当需要记录多个事务时,我们如何正确地将它们链接起来,以便将购买应用到正确的用户帐户服务器端?在这种情况下,应用程序中的transactionIdentifier是否保证与验证的收据中的transaction_id相同?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-14 21:50:39

在测试中,我们已经确定了transactionIdentifier是与事务的transaction_id相同的值,在已验证的消费类采购收据中。

然而,我们不愿意依赖这种情况,因为文件中的说明指出它可能不是相同的价值。因此,我们使用transaction.payment.productIdentifiertransaction.transactionDate的组合来惟一地标识事务,这是记录在案,与收据中的original_purchase_date_ms相对应。这允许后端在接收到的应用程序提交的信息中找到正确的事务。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59556804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档