ios - is_Trial_period 在 Apple 的收据沙盒中保留为 "on"

标签 ios testing in-app-purchase subscriptions receipt-validation

我在调试 Apple 的应用内购买收据时遇到问题。尽管购买已经过期,但“is_Trial_period”字段似乎仍保持true。 据我了解,Apple 定义了较短的调试订阅周期,如下所示:

Testing In-App Purchase Products

这些时间也适用于试用期吗?

最佳答案

这是因为 Apple 在试用期内发布了单独的交易。

以下是 Apple 收据的示例摘录:

"latest_receipt_info": [
    {
        "quantity": "1",
        "product_id": "onemonth_freetrial",
        "transaction_id": "1000000328795138",
        "original_transaction_id": "1000000328795138",
        "purchase_date": "2017-08-29 23:13:52 Etc/GMT",
        "purchase_date_ms": "1504048432000",
        "purchase_date_pst": "2017-08-29 16:13:52 America/Los_Angeles",
        "original_purchase_date": "2017-08-29 23:13:53 Etc/GMT",
        "original_purchase_date_ms": "1504048433000",
        "original_purchase_date_pst": "2017-08-29 16:13:53 America/Los_Angeles",
        "expires_date": "2017-08-29 23:16:52 Etc/GMT",
        "expires_date_ms": "1504048612000",
        "expires_date_pst": "2017-08-29 16:16:52 America/Los_Angeles",
        "web_order_line_item_id": "1000000036088032",
        "is_trial_period": "true"
    },
    {
        "quantity": "1",
        "product_id": "onemonth_freetrial",
        "transaction_id": "1000000328796241",
        "original_transaction_id": "1000000328795138",
        "purchase_date": "2017-08-29 23:16:52 Etc/GMT",
        "purchase_date_ms": "1504048612000",
        "purchase_date_pst": "2017-08-29 16:16:52 America/Los_Angeles",
        "original_purchase_date": "2017-08-29 23:13:53 Etc/GMT",
        "original_purchase_date_ms": "1504048433000",
        "original_purchase_date_pst": "2017-08-29 16:13:53 America/Los_Angeles",
        "expires_date": "2017-08-29 23:21:52 Etc/GMT",
        "expires_date_ms": "1504048912000",
        "expires_date_pst": "2017-08-29 16:21:52 America/Los_Angeles",
        "web_order_line_item_id": "1000000036088033",
        "is_trial_period": "false"
    }
]

latest_receipt_info 字段将包含每个“续订”或“交易”的数组。 Apple 处理免费试用的方式是发出一笔交易,该交易的 is_Trial_period 始终为 true,而后续的非试用续订的 is_Trial_period 为 false。当您处理收据时,只需确保您正在查看 purchase_dateexpiration_date 的最新交易,这应该代表最新的续订,也是您解锁内容的基础。

关于沙盒中的时长,如果您的 IAP 产品有免费试用,沙盒环境将发放 1 个试用期和 5 次续订,总共 6 次续订。

关于ios - is_Trial_period 在 Apple 的收据沙盒中保留为 "on",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47295784/

相关文章:

ios - 如何在不显示 UIKeyboard 的情况下选择 UITextField

ios - 按应用程序图标后的上下文菜单

从 django-social-auth 导入测试时出现 Python 导入错误

android - 您要求的商品无法购买

android - 如何在 Play 控制台中退款测试订单(应用内购买)后删除权利

ios - 我想得到没有时间的今天日期

java - 如何创建使用特定 JVM 参数运行的 Spring Boot 测试

java - 如何模拟修改私有(private)变量的私有(private)方法?

ios - Phonegap/Cordova inAppPurchaseManager 无效产品 ID

objective-c - 导航器 Controller 和标签栏 Controller 同时存在?