Dmi*_*kov 3 subscription in-app-purchase ios auto-renewable
我正在我的应用程序中实现自动续订订阅。
目前,为了检查用户是否有有效订阅,我检查了latest_receipt_infoApple/verifyReceipt服务返回的响应 JSON 中的数组中的所有记录,找到最大的记录expires_date_ms并检查该日期是否是将来的日期。在检查日期之前,我还会检查该status字段是否为 0(收据有效)。
本来以为这样就够了,但是最近发现还有一个领域—— cancellation_date_ms。据我从文档中了解到,如果用户通过 Apple 支持取消了订阅,则会出现此文件。
来自(苹果文档)
您可以使用该值来:
确定是否停止提供与购买相关的内容。
检查是否有任何最新的续订交易,这可能表明用户重新启动或升级了其订阅,以进行自动续订订阅购买。
所以我想知道,如果用户通过Apple支持取消订阅,这会影响expires_date_ms当前的订阅期限吗?所以下次我检查时expires_date_ms,我知道订阅未激活。
或者是否expires_date_ms与用户取消订阅之前保持相同,所以我cancellation_date_ms也需要检查?
cancellation_date_ms您也应该检查一下。Expires_date当客户通过 Apple 支持取消订阅时,该字段不会更改。
以下是带有退款的生产 JSON 示例:
"latest_receipt_info": [
{
"quantity": "1",
"product_id": "XXX",
"transaction_id": "150000567873035",
"original_transaction_id": "150000567873035",
"purchase_date": "2019-11-10 17:37:05 Etc/GMT",
"purchase_date_ms": "1573407425000",
"purchase_date_pst": "2019-11-10 09:37:05 America/Los_Angeles",
"original_purchase_date": "2019-11-10 17:37:06 Etc/GMT",
"original_purchase_date_ms": "1573407426000",
"original_purchase_date_pst": "2019-11-10 09:37:06 America/Los_Angeles",
"expires_date": "2019-12-10 17:37:05 Etc/GMT",
"expires_date_ms": "1575999425000",
"expires_date_pst": "2019-12-10 09:37:05 America/Los_Angeles",
"cancellation_date": "2019-12-05 19:14:48 Etc/GMT",
"cancellation_date_ms": "1575573288000",
"cancellation_date_pst": "2019-12-05 11:14:48 America/Los_Angeles",
"web_order_line_item_id": "150000194283402",
"is_trial_period": "false",
"is_in_intro_offer_period": "false",
"cancellation_reason": "0",
"subscription_group_identifier": "20502261"
}
],
"pending_renewal_info": [
{
"auto_renew_product_id": "XXX",
"original_transaction_id": "150000567873035",
"product_id": "XXX",
"auto_renew_status": "0"
}
]}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
608 次 |
| 最近记录: |