我正在我的应用程序中实现一个自动可再生的订阅。
目前,为了检查用户是否有活动订阅,我从苹果的latest_receipt_info服务返回的响应JSON中检查/verifyReceipt数组中的所有记录,找到具有最大expires_date_ms的记录,并检查这个日期是否在将来。在检查日期之前,我还要检查status字段是否为0(收据有效)。
我认为这已经足够了,但最近我发现还有另一个领域-- cancellation_date_ms。据我从文档中了解,如果用户通过Apple的支持取消了他的订阅,这个文件就是存在的。
来自(苹果文档)
您可以使用此值来: 确定是否停止提供与购买相关的内容。 检查任何最新的续订交易,这可能表明用户重新启动或升级了他们的订阅,为一个自动更新订阅购买。
因此,我想知道,如果一个用户取消他的订阅通过苹果的支持,这会影响expires_date_ms在当前的订阅期吗?所以下次我检查expires_date_ms时,我知道订阅是不活动的。
或者expires_date_ms和用户取消订阅之前一样,所以我也需要检查cancellation_date_ms吗?
发布于 2019-12-10 03:30:43
您也应该检查一下cancellation_date_ms。当客户通过苹果支持取消订阅时,Expires_date字段不会改变。
下面是带有退款的production示例:
"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"
}
]}https://stackoverflow.com/questions/59251661
复制相似问题