【发布时间】:2019-11-27 11:00:06
【问题描述】:
我正在尝试为 IOS 订阅实施服务器到服务器通知。我已经阅读了Server-to-Server Notifications 文档并遵循了所有必要的步骤。我的服务器在 GCM 中。
现在,当我在应用程序中进行购买时,我在服务器中收到通知,但响应与上述链接中定义的完全不同。
我得到的响应只包含一个字段 latest_receipt 。但是在文档中他们提到了各种参数。所以,我想我必须通过向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/GMT",
"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/GMT",
"original_purchase_date": "2019-01-09 09:26:35 Etc/GMT",
"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/GMT",
"purchase_date": "2019-07-18 06:16:17 Etc/GMT",
"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/GMT",
"item_id": "1298435177"
}
}
但是在他们提到的文档中:
environment
notification_type
password
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
我没有得到environment和notification_type等主要字段。
这有什么问题?
这是我第一次得到这样的回应
{ latest_receipt: 'ewoJInNpZ25hdHVyZ'}
我从服务器 2 服务器通知得到的响应是第二次(一旦更新):
{ environment: 'Sandbox',
auto_renew_status: 'false',
latest_expired_receipt: 'ewoJIn'
}
【问题讨论】:
-
您好,我想知道您如何处理和测试后端的 S2S 通知。我正在尝试在不续订订阅的情况下实施相同的操作。我在应用商店中提供了用于通知的 url,但是当我尝试使用沙盒进行测试购买时没有得到任何响应。
-
@VinayN S2S 通知仅适用于自动续订订阅。请参阅本文档。 developer.apple.com/documentation/storekit/in-app_purchase/…
标签: ios json iphone app-store-connect receipt-validation