ios - 对于订阅系列中具有不同持续时间的自动续订订阅,Apple IAP 收据看起来如何?

标签 ios in-app-purchase subscription auto-renewing

我正在开发一款提供自动续订订阅的应用。

如果用户购买了 subscription.A(7 天后续订),然后转到他的 iTunes,我不知道在验证收据哈希时来自 Apple 的 JSON 响应会是什么样子设置并将其更改为从同一订阅系列续订到 subscription.B

对于subscription.A,在续订几次后会是这样的:

...
{"quantity":"1", "product_id":"subscription.A", "transaction_id":"100000015494389", "original_transaction_id":"100000015494368", "purchase_date":"2015-05-12 11:42:01 Etc/GMT", "purchase_date_ms":"1431430921000", "purchase_date_pst":"2015-05-12 04:42:01 America/Los_Angeles", "original_purchase_date":"2015-05-12 11:40:03 Etc/GMT", "original_purchase_date_ms":"1431430803000", "original_purchase_date_pst":"2015-05-12 04:40:03 America/Los_Angeles", "expires_date":"2015-05-12 11:47:01 Etc/GMT", "expires_date_ms":"1431431221000", "expires_date_pst":"2015-05-12 04:47:01 America/Los_Angeles", "web_order_line_item_id":"100000002973145", "is_trial_period":"false"}, 
{"quantity":"1", "product_id":"subscription.A", "transaction_id":"100000015494368", "original_transaction_id":"100000015494368", "purchase_date":"2015-05-12 11:37:01 Etc/GMT", "purchase_date_ms":"1431430621000", "purchase_date_pst":"2015-05-12 04:37:01 America/Los_Angeles", "original_purchase_date":"2015-05-12 11:37:02 Etc/GMT", "original_purchase_date_ms":"1431430622000", "original_purchase_date_pst":"2015-05-12 04:37:02 America/Los_Angeles", "expires_date":"2015-05-12 11:42:01 Etc/GMT", "expires_date_ms":"1431430921000", "expires_date_pst":"2015-05-12 04:42:01 America/Los_Angeles", "web_order_line_item_id":"100000002973145", "is_trial_period":"false"}, 
{"quantity":"1", "product_id":"subscription.A", "transaction_id":"100000015494496", "original_transaction_id":"100000015494368", "purchase_date":"2015-05-12 11:47:01 Etc/GMT", "purchase_date_ms":"1431431221000", "purchase_date_pst":"2015-05-12 04:47:01 America/Los_Angeles", "original_purchase_date":"2015-05-12 11:45:32 Etc/GMT", "original_purchase_date_ms":"1431431132000", "original_purchase_date_pst":"2015-05-12 04:45:32 America/Los_Angeles", "expires_date":"2015-05-12 11:52:01 Etc/GMT", "expires_date_ms":"1431431521000", "expires_date_pst":"2015-05-12 04:52:01 America/Los_Angeles", "web_order_line_item_id":"100000002973147", "is_trial_period":"false"}, 
{"quantity":"1", "product_id":"subscription.A", "transaction_id":"100000015494517", "original_transaction_id":"100000015494368", "purchase_date":"2015-05-12 11:52:01 Etc/GMT", "purchase_date_ms":"1431431521000", "purchase_date_pst":"2015-05-12 04:52:01 America/Los_Angeles", "original_purchase_date":"2015-05-12 11:50:11 Etc/GMT", "original_purchase_date_ms":"1431431411000", "original_purchase_date_pst":"2015-05-12 04:50:11 America/Los_Angeles", "expires_date":"2015-05-12 11:57:01 Etc/GMT", "expires_date_ms":"1431431821000", "expires_date_pst":"2015-05-12 04:57:01 America/Los_Angeles", "web_order_line_item_id":"100000002973149", "is_trial_period":"false"}, 
{"quantity":"1", "product_id":"subscription.A", "transaction_id":"100000015494558", "original_transaction_id":"100000015494368", "purchase_date":"2015-05-12 11:57:01 Etc/GMT", "purchase_date_ms":"1431431821000", "purchase_date_pst":"2015-05-12 04:57:01 America/Los_Angeles", "original_purchase_date":"2015-05-12 11:55:03 Etc/GMT", "original_purchase_date_ms":"1431431703000", "original_purchase_date_pst":"2015-05-12 04:55:03 America/Los_Angeles", "expires_date":"2015-05-12 12:02:01 Etc/GMT", "expires_date_ms":"1431432121000", "expires_date_pst":"2015-05-12 05:02:01 America/Los_Angeles", "web_order_line_item_id":"100000002973151", "is_trial_period":"false"}, 
{"quantity":"1", "product_id":"subscription.A", "transaction_id":"100000015494630", "original_transaction_id":"100000015494368", "purchase_date":"2015-05-12 12:02:01 Etc/GMT", "purchase_date_ms":"1431432121000", "purchase_date_pst":"2015-05-12 05:02:01 America/Los_Angeles", "original_purchase_date":"2015-05-12 12:00:29 Etc/GMT", "original_purchase_date_ms":"1431432029000", "original_purchase_date_pst":"2015-05-12 05:00:29 America/Los_Angeles", "expires_date":"2015-05-12 12:07:01 Etc/GMT", "expires_date_ms":"1431432421000", "expires_date_pst":"2015-05-12 05:07:01 America/Los_Angeles", "web_order_line_item_id":"100000002973153", "is_trial_period":"false"}, 
...

当订阅延长到不同的持续时间时,我认为它当然会有 product_id subscription.B,但它会不会有一个新的 original_transaction_id,或者仍然连接到(在这种情况下)100000015494368

由于我无法通过沙盒测试用户访问 iTunes 设置,我不知道如何测试它,而且我在文档中找不到明确的说明。

最佳答案

下面是收据验证响应中出现的两次不同持续时间的自动续订订阅购买:

{"quantity":"1", "product_id":"subscription.A", "transaction_id":"1000000276920213", "original_transaction_id":"1000000276916420", "purchase_date":"2017-02-25 14:34:05 Etc/GMT", "purchase_date_ms":"1488033245000", "purchase_date_pst":"2017-02-25 06:34:05 America/Los_Angeles", "original_purchase_date":"2017-02-25 13:03:10 Etc/GMT", "original_purchase_date_ms":"1488027790000", "original_purchase_date_pst":"2017-02-25 05:03:10 America/Los_Angeles", "expires_date":"2017-02-25 14:39:05 Etc/GMT", "expires_date_ms":"1488033545000", "expires_date_pst":"2017-02-25 06:39:05 America/Los_Angeles", "web_order_line_item_id":"1000000034442002", "is_trial_period":"false"}, 
{"quantity":"1", "product_id":"subscription.B", "transaction_id":"1000000276964864", "original_transaction_id":"1000000276916420", "purchase_date":"2017-02-26 09:05:14 Etc/GMT", "purchase_date_ms":"1488099914000", "purchase_date_pst":"2017-02-26 01:05:14 America/Los_Angeles", "original_purchase_date":"2017-02-25 13:03:10 Etc/GMT", "original_purchase_date_ms":"1488027790000", "original_purchase_date_pst":"2017-02-25 05:03:10 America/Los_Angeles", "expires_date":"2017-02-26 09:08:14 Etc/GMT", "expires_date_ms":"1488100094000", "expires_date_pst":"2017-02-26 01:08:14 America/Los_Angeles", "web_order_line_item_id":"1000000034442107", "is_trial_period":"false"}

如您所见,它们确实显示为已连接,共享相同的 original_transaction_idoriginal_purchase_date。我不是 100% 确定,但我认为即使在取消第一个订阅后购买第二个订阅也是如此。

关于ios - 对于订阅系列中具有不同持续时间的自动续订订阅,Apple IAP 收据看起来如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31241558/

相关文章:

python - Xcode 项目(最初是 Python Kivy)未构建到 iPhone

swift - 在应用内购买多个产品

iphone - 针对服务而非内容的 iOS 定期订阅政策

ios - Metal 着色语言 IR 格式

ios - RxSwift - 递归 Observables?

ios - 无法在新 View Controller 中设置属性值

ios - 请求完成处理程序 fatal error : unexpectedly found nil while unwrapping an optional value exception

linux - 红帽开发人员 : Subscription Attachment

javascript - 如何使用 ngx-auto-unsubscribe 测试我是否已取消订阅?

ios - 自动续订订阅(应用内购买 - 服务器)