app-store - App Store 服务器到服务器通知的目的?
问题描述
App Store 有所谓的“服务器到服务器”通知。即当您购买应用内功能时,Apple 服务器向您服务器的回调方法(发送收据数据)发出 HTTPS 请求。
问题是 - 收据数据中似乎没有用户信息。例如:
"receipt": {
"original_purchase_date_pst": "2019-03-11 07:35:59 America/Los_Angeles",
"unique_identifier": "cca492f511da9fb203600195aadf00b5ad11c2f8",
"original_transaction_id": "1000000509597835",
"expires_date": "1552389553000",
"transaction_id": "1000000509597835",
"quantity": "1",
"product_id": "com.quest.subscriptiontest.pack1",
"bvrs": "3",
"bid": "com.quest.SubscriptionTest",
"unique_vendor_identifier": "8F59FA71-A8AC-474F-9967-AC06366BE376",
"web_order_line_item_id": "1000000043169670",
"original_purchase_date_ms": "1552314959000",
"expires_date_formatted": "2019-03-12 11:19:13 Etc/GMT",
"purchase_date": "2019-03-12 11:16:13 Etc/GMT",
"is_in_intro_offer_period": "false",
"purchase_date_ms": "1552389373000",
"expires_date_formatted_pst": "2019-03-12 04:19:13 America/Los_Angeles",
"is_trial_period": "false",
"purchase_date_pst": "2019-03-12 04:16:13 America/Los_Angeles",
"original_purchase_date": "2019-03-11 14:35:59 Etc/GMT",
"item_id": "1454809891"
}
我在这里只看到有关购买本身的信息,我看不到有关用户(进行此购买)的任何信息。那么在没有用户信息的情况下使用此类通知的场景是什么?它只是用于计算财务统计数据还是什么?
解决方案
预计您将用户数据存储在自己的服务器上。我就是这样做的。
- 从 iOS 应用程序向服务器发送收据
- 服务器将收据存储为用户数据
- 服务器使用 Apple 的收据验证来获取
original_transaction_id
并将其存储为用户数据。可能应该索引此列/字段。 - 随后的 Apple 服务器到服务器通知将包含
original_transaction_id
您可以用来查找用户的通知。
我已经开源了一个服务器,它使用服务器到服务器的通知和在https://github.com/carpenterscode/superscribe上的主动轮询来处理 iOS App Store 订阅
随意使用它开箱即用,或参考它来让您自己的解决方案工作。
推荐阅读
- javascript - 正则表达式从长字符串中提取日期范围
- webpack - 使用 webpack 生成的 [contenthash] 插入图片
- c - C语言生成文件
- vtk - 更改 vtk 数据文件版本
- python - 无需等待所有任务完成即可处理池结果
- reactjs - 如果 react 已呈现以更改历史记录,我是否必须跟踪?
- sqlite - 我在 sqlite 中有多个重复的行我想一次只删除 1 行
- angular - 在 Angular dist 文件夹中包含一个外部 JavaScript 文件
- javascript - How do I get the numbers that do not have a duplicated value in an array of numbers?
- reactjs - 为什么没有用户ID?它是未定义的