与 Apple 的自动续订订阅的 verifyReceipt JSON 混淆

Confused with Apple's verifyReceipt JSON for Auto-renewable subscription

我使用这个 url 得到了 JSON:https://sandbox.itunes.apple.com/verifyReceipt,所以它是关于沙盒的,而不是生产。
我对此 JSON 有一些疑问,因为我不是很清楚,而且我认为对于很多第一次使用 IAP 的人来说也是如此。

如果他的高级帐户已结束(他取消订阅),我想删除某些用户的功能。在我的例子中,订阅是 1 周免费试用,然后每月 0.99 美元。

  1. 我应该检查 JSON 中的哪些对象?
  2. 为什么expire_datepurchase_date一样(只有几分钟的区别)?是否仅取决于 Sandbox?
  3. 我用我的测试用户订阅,获得了 7 天的免费试用,然后我去设置取消订阅,然后再次打开应用程序,看到对象 is_trial_period 被设置为 true?这是正确的吗?然后我更改了 phone 的日期并在 purchase_date 后大约 10 天(试用期应该是 false 然后我想?)但对象仍然是 true
  4. 另外,我用这个 phone 测试了很多次购物,似乎我的 json 里有所有这些收据,我应该只检查最后一张吗?
  5. 任何人都可以清除名为 'status' 的数组中的最后一个对象。在我的例子中,它是 0 值。
  6. 当我想购买订阅时,它总是[environment:sandbox]版本。当应用程序投入生产时,这会自动更改吗?

    我想我已经阅读了所有 Apple 的文档和 SO 关于自动更新 IAP 的问题和答案,please don't paste links...

    我希望有人能很好地理解这一点,以清除所有这些关于自动更新 IAP 的事情。

JSON 的一部分,@Kishan:
{
            "expires_date" = "2020-10-12 12:51:58 Etc/GMT";
            "expires_date_ms" = 1602507118000;
            "expires_date_pst" = "2020-10-12 05:51:58 America/Los_Angeles";
            "is_in_intro_offer_period" = false;
            "is_trial_period" = true;
            "original_purchase_date" = "2020-10-12 12:49:00 Etc/GMT";
            "original_purchase_date_ms" = 1602506940000;
            "original_purchase_date_pst" = "2020-10-12 05:49:00 America/Los_Angeles";
            "original_transaction_id" = 1000000725499801;
            "product_id" = "com.sleepfan.premium";
            "purchase_date" = "2020-10-12 12:48:58 Etc/GMT";
            "purchase_date_ms" = 1602506938000;
            "purchase_date_pst" = "2020-10-12 05:48:58 America/Los_Angeles";
            quantity = 1;
            "subscription_group_identifier" = 20691399;
            "transaction_id" = 1000000728899049;
            "web_order_line_item_id" = 1000000056417123;
        }

我想你忘了读这个 document

  1. 我应该检查JSON中的哪些对象?

    您必须检查 JSON 中的 latest_receipt_info,它提供了有关您最新交易的信息

  2. 为什么expire_datepurchase_date一样(只有几分钟的区别)?是否仅取决于 Sandbox?

  1. 我用我的测试用户订阅,获得了 7 天的免费试用,然后我去设置取消订阅,然后再次打开应用程序,看到对象 is_trial_period 被设置为真的?正确吗?

    据我所知,根据我的经验,测试用户无法访问设置页面来管理他们 iPhone 上的订阅。沙盒订阅将在重复 5 或 6 次后取消。

  2. 任何人都可以清除名为 'status' 的数组中的最后一个对象。在我的例子中它是 0 值。

    如果收据有效则为 0,如果有错误则为状态代码。

  3. 当我要购买订阅时,总是[环境:沙盒]版本。当应用程序投入生产时,这会自动更改吗?

    据我所知,当您在 iTunes connect 上上传您的产品(您想以 IAP 形式销售)时,一旦您的产品获得批准,沙盒的消息将被删除。