服务器机房搭建:Ios服务器到服务器通知(app store server notifications example)

我正在尝试实现 IOS 订阅的服务器到服务器通知。我已经通过了Server-to-Server Notifications文档,并遵循了所有必要的步骤。器在 GCM 中。

现在当我在应用程序中购买时,我在器中收到通知,但响应与上面链接中定义的完全不同。

我得到的响应只包含一个字段是latest_receipt。但是在文档中他们提到了各种参数。所以,我想我必须通过发送一个 post 消息到这个endpoint来验证收据。现在我得到一个包含大量信息的 json 体,但仍然没有得到文档中提到的 json。

验证购买后我得到的响应体(https://sandbox.itunes.apple.com/verifyReceipt

{
  "auto_renew_status": 1,
  "status": 0,
  "auto_renew_product_id": " ",
  "receipt": {
    "original_purchase_date_pst": "2019-01-09 01:26:35 America/Los_Angeles",
    "quantity": "1",
    "unique_vendor_identifier": " ",
    "bvrs": "56",
    "expires_date_formatted": "2019-07-18 06:19:17 Etc/T",
    "is_in_intro_offer_period": "false",
    "purchase_date_ms": "1563430577000",
    "expires_date_formatted_pst": "2019-07-17 23:19:17 America/Los_Angeles",
    "is_trial_period": "false",
    "item_id": "1298435177",
    "unique_identifier": " ",
    "original_transaction_id": "1000000492823158",
    "expires_date": "1563430757000",
    "transaction_id": "1000000548145129",
    "web_order_line_item_id": "1000000045717939",
    "version_external_identifier": "0",
    "bid": " ",
    "product_id": " ",
    "purchase_date": "2019-07-18 06:16:17 Etc/T",
    "original_purchase_date": "2019-01-09 09:26:35 Etc/T",
    "purchase_date_pst": "2019-07-17 23:16:17 America/Los_Angeles",
    "original_purchase_date_ms": "1547025995000"
  },
  "latest_receipt_info": {
    "original_purchase_date_pst": "2019-01-09 01:26:35 America/Los_Angeles",
    "unique_identifier": " ",
    "original_transaction_id": "1000000492823158",
    "expires_date": "1563430757000",
    "transaction_id": "1000000548145129",
    "quantity": "1",
    "product_id": " ",
    "bvrs": "56",
    "bid": " ",
    "unique_vendor_identifier": " ",
    "web_order_line_item_id": "1000000045717939",
    "original_purchase_date_ms": "1547025995000",
    "expires_date_formatted": "2019-07-18 06:19:17 Etc/T",
    "purchase_date": "2019-07-18 06:16:17 Etc/T",
    "is_in_intro_offer_period": "false",
    "purchase_date_ms": "1563430577000",
    "expires_date_formatted_pst": "2019-07-17 23:19:17 America/Los_Angeles",
    "is_trial_period": "false",
    "purchase_date_pst": "2019-07-17 23:16:17 America/Los_Angeles",
    "original_purchase_date": "2019-01-09 09:26:35 Etc/T",
    "item_id": "1298435177"
  }
}

但在他们提到的文档中:

 environment
 notification_type
 pword
 cancellation_date
 cancellation_date_pst
 cancellation_date_ms
 web_order_line_item_id
 latest_receipt
 latest_receipt_info
 latest_expired_receipt
 latest_expired_receipt_info
 auto_renew_status
 auto_renew_product_id
 auto_renew_status_change_date
 auto_renew_status_change_date_pst
 auto_renew_status_change_date_ms

我没有得到主要领域,如环境和 notification_type

有什么问题吗?

这是我第一次得到的回应

{ latest_receipt: 'ewoJInNpZ25hdHVyZ'}

我从服务器 2 服务器通知得到的响应是第二次(一旦更新):

{ environment: 'Sandbox',
  auto_renew_status: 'false',
  latest_expired_receipt: 'ewoJIn'
}
3

设置服务器 2 服务器通知时获得的参数与查询 verifyReceipt 时的格式不完全相同 (或包含相同的字段)。

例如,environment 和 notification_type 仅在服务器 2 服务器通知中可用,而在 verifyReceipt 中不可用。

这里是一个完整的参数的例子,你得到当苹果向您发送通知与服务器 2 服务器通知-

    {
    "latest_receipt": "ewoXXXXX",
    "latest_receipt_info": {
        "original_purchase_date_pst": "2019-07-29 21:13:18 America/Los_Angeles",
        "quantity": "1",
        "unique_vendor_identifier": "XXX",
        "original_purchase_date_ms": "1564459998000",
        "expires_date_formatted": "2019-08-06 04:13:17 Etc/T",
        "is_in_intro_offer_period": "false",
        "purchase_date_ms": "1564459997000",
        "expires_date_formatted_pst": "2019-08-05 21:13:17 America/Los_Angeles",
        "is_trial_period": "true",
        "item_id": "1452171111",
        "unique_identifier": "00000",
        "original_transaction_id": "0000000",
        "expires_date": "00000000",
        "app_item_id": "0000000",
        "transaction_id": "00000000",
        "bvrs": "00000",
        "web_order_line_item_id": "00000000",
        "version_external_identifier": "000000",
        "bid": "com.XXX",
        "product_id": "XXXXX",
        "purchase_date": "2019-07-30 04:13:17 Etc/T",
        "purchase_date_pst": "2019-07-29 21:13:17 America/Los_Angeles",
        "original_purchase_date": "2019-07-30 04:13:18 Etc/T"
    },
    "environment": "PROD",
    "auto_renew_status": "true",
    "pword": "*****",
    "auto_renew_product_id": "com.XXXX",
    "notification_type": "INITIAL_BUY"
}

您的示例来自 verifyReceipt 响应。

该文档不是很好关于服务器 2 服务器通知,但最新的 wwdc 视频是伟大的-https://developer.apple.com/videos/play/wwdc2019/302/

请注意,此有效负载中的许多字段现在被视为已弃用。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(287)
Ios15.3.1耗电严重怎么解决:提交按钮值未显示在ios15.3.1上 但在ios12.5.5上显示为OK
上一篇
Oppo手机型号:如何获取安卓手机型号、版本、 sdk详情
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(80条)