在收到自动续订订阅的 Apple statusUpdateNotification 时,您如何确定客户/用户?

Posted

技术标签:

【中文标题】在收到自动续订订阅的 Apple statusUpdateNotification 时,您如何确定客户/用户?【英文标题】:How do you determine the customer/user when receiving an Apple statusUpdateNotification for auto renewing subscriptions? 【发布时间】:2018-01-03 23:34:25 【问题描述】:

因此,Apple 已经为订阅生命周期中的各种事件实现了服务器到服务器的通知。

我很高兴能继续做这件事,但似乎我错过了一些明显的东西。我不确定如何将通知数据与我这边的用户匹配。我很惊讶没有与通知一起传递的 uid/apple id 来匹配。也许我应该使用 original_transaction_id 但不清楚这是否是唯一的。

有谁知道在状态响应中使用什么?

【问题讨论】:

请告诉我们您为从 Apple 获取此“statusUpdateNotification”所做的设置。请在这里帮助我们。谢谢 【参考方案1】:

Apple 将向您的服务器发送receipt_data。在receipt_data 中将有original_transaction_id。但是,如果您只是收到来自苹果的original_transaction_id,您无法检测到谁是该商品的买家。 所以在我看来,您的服务器需要在original_transaction_iduser_id 之间存储一个唯一的ID。当苹果发送receipt_data 到你设置的接收苹果statusUpdateNotification 的钩子时,你会得到user_id 匹配original_transaction_id 将数据放入你的数据库。

【讨论】:

那么如何匹配 userId 和 original_transaction_id? 无法理解“get user_id from match with original_transaction_id”,在服务器状态通知中如何设置user_id 如何从INITIAL_BUY server-sever通知中判断用户? @HVSharma 您是否找到了从 INITIAL_BUY 服务器服务器通知中确定用户的解决方案? @isuru 不,我没有从 INITAL_BUY 确定用户。相反,我创建了一个 POST API,当用户购买任何订阅时将调用它,因为您从前端获取收据,您使用苹果服务器验证它,然后检查具有该 transaction_id 和 original_transaction_id 的收据是否存在,如果没有,我为该特定用户创建订阅。我想这就是我所做的。是的【参考方案2】:

我使用 original_transaction_id 将事件与用户匹配。

【讨论】:

是的,我想这似乎是要使用的东西。其他一些消息来源说使用它和产品ID,它将确保它是唯一的。谢谢! 向您提出问题,但是...您收到通知了吗?尽管差不多 24 小时前在 iTunes Connect 中设置了我的通知 URL,但我实际上还没有以这种方式收到任何通知。而且我知道从那时起取消和重新激活都有。 (我知道如何按照我上面描述的方式将收据与用户匹配,因为我的应用需要在另一种情况下这样做。) 我们也没有从 Apple 服务器获得“statusUpdateNotification”。我们已经检查了 Apple 的安全规范,我们对此很有帮助。 ***.com/questions/45433136/… 成功接收这些通知的任何人:请在此处告诉我们。 @ChristianBrink:我成功收到了来自苹果的通知。我应该写下这个问题的答案吗?还是创建一个新主题?

以上是关于在收到自动续订订阅的 Apple statusUpdateNotification 时,您如何确定客户/用户?的主要内容,如果未能解决你的问题,请参考以下文章

验证服务器上的自动续订订阅收据

Apple - 暂停/退款应用内自动续订订阅

使用自动续订订阅的应用是不是需要 Apple 应用内购买?

如何恢复非续订 Apple 订阅

检查 Apple 是不是退还了不可续订的订阅?

我可以在不提供内容的情况下使用自动续订订阅吗?