需要了解 iOS InApp 购买收据
Need to understand iOS InApp purchase receipt
我正在研究 iOS 应用内购买验证(服务器端),我对苹果验证服务器返回的收据字段感到非常困惑。可用的文档 here 不是很清楚(至少对我而言)
所以这是 Apple 验证服务器返回的真实(混淆)应用内购买收据
{
"receipt": {
"receipt_type": "Production",
"adam_id": XXXXXXX,
"app_item_id": XXXXXXXXX,
"bundle_id": "com.XXXXX.XXXXX",
"application_version": "XXXXXXXXX",
"download_id": XXXXXXXXXXXX,
"version_external_identifier": XXXXXXXXXXX,
"receipt_creation_date": "2019-10-15 14:01:41 Etc/GMT",
"receipt_creation_date_ms": "1571148101000",
"receipt_creation_date_pst": "2019-10-15 07:01:41 America/Los_Angeles",
"request_date": "2019-10-15 14:04:20 Etc/GMT",
"request_date_ms": "1571148260390",
"request_date_pst": "2019-10-15 07:04:20 America/Los_Angeles",
"original_purchase_date": "2018-11-27 18:28:48 Etc/GMT",
"original_purchase_date_ms": "1543343328000",
"original_purchase_date_pst": "2018-11-27 10:28:48 America/Los_Angeles",
"original_application_version": "XXXXXXXXX",
"in_app": [
{
"quantity": "1",
"product_id": "com.XXXXXXXXXX.XXXXX.XXXXXX",
"transaction_id": "XXXXXXXXXXX",
"original_transaction_id": "XXXXXXXXXX",
"purchase_date": "2019-10-15 14:01:41 Etc/GMT",
"purchase_date_ms": "1571148101000",
"purchase_date_pst": "2019-10-15 07:01:41 America/Los_Angeles",
"original_purchase_date": "2019-10-15 14:01:41 Etc/GMT",
"original_purchase_date_ms": "1571148101000",
"original_purchase_date_pst": "2019-10-15 07:01:41 America/Los_Angeles",
"is_trial_period": "false"
}
]
},
"status": 0,
"environment": "Production"
}
所以我的问题是:
- 以 "original_purchase_date" 开头的字段表示日期时间,但为什么它们在收据的两个部分中具有不同的值?
- 收据的in_app部分,"purchase_date"开头的字段值和"original_purchase_date"开头的字段值可以不一样吗?如果是,在哪种情况下?
- 是否"application_version"字段包含应用程序当前发布的构建版本的值,因为"original_application_version"字段,根据文档,代表用户使用的应用程序的构建版本进行购买?
非常感谢您的帮助和解答。
R.E.B埃尔南德斯!
original_purchase_date
里面in_app
是应用内购买的时间,这个数组外面的是应用第一次安装的日期。
- 如果您使用非消耗品和非续订订阅,则
purchase_date
将与 original_purchase_date
相同。但是,如果您使用自动续订订阅,那么您应该检查 latest_receipt_info
数组而不是 in_app
。在订阅的情况下,original_purchase_date
将仅代表第一笔交易的日期。
- 是的,
application_version
是设备上应用程序的当前版本。
original_application_version
是用户最初购买的应用程序版本。
这是文档link
我正在研究 iOS 应用内购买验证(服务器端),我对苹果验证服务器返回的收据字段感到非常困惑。可用的文档 here 不是很清楚(至少对我而言)
所以这是 Apple 验证服务器返回的真实(混淆)应用内购买收据
{
"receipt": {
"receipt_type": "Production",
"adam_id": XXXXXXX,
"app_item_id": XXXXXXXXX,
"bundle_id": "com.XXXXX.XXXXX",
"application_version": "XXXXXXXXX",
"download_id": XXXXXXXXXXXX,
"version_external_identifier": XXXXXXXXXXX,
"receipt_creation_date": "2019-10-15 14:01:41 Etc/GMT",
"receipt_creation_date_ms": "1571148101000",
"receipt_creation_date_pst": "2019-10-15 07:01:41 America/Los_Angeles",
"request_date": "2019-10-15 14:04:20 Etc/GMT",
"request_date_ms": "1571148260390",
"request_date_pst": "2019-10-15 07:04:20 America/Los_Angeles",
"original_purchase_date": "2018-11-27 18:28:48 Etc/GMT",
"original_purchase_date_ms": "1543343328000",
"original_purchase_date_pst": "2018-11-27 10:28:48 America/Los_Angeles",
"original_application_version": "XXXXXXXXX",
"in_app": [
{
"quantity": "1",
"product_id": "com.XXXXXXXXXX.XXXXX.XXXXXX",
"transaction_id": "XXXXXXXXXXX",
"original_transaction_id": "XXXXXXXXXX",
"purchase_date": "2019-10-15 14:01:41 Etc/GMT",
"purchase_date_ms": "1571148101000",
"purchase_date_pst": "2019-10-15 07:01:41 America/Los_Angeles",
"original_purchase_date": "2019-10-15 14:01:41 Etc/GMT",
"original_purchase_date_ms": "1571148101000",
"original_purchase_date_pst": "2019-10-15 07:01:41 America/Los_Angeles",
"is_trial_period": "false"
}
]
},
"status": 0,
"environment": "Production"
}
所以我的问题是:
- 以 "original_purchase_date" 开头的字段表示日期时间,但为什么它们在收据的两个部分中具有不同的值?
- 收据的in_app部分,"purchase_date"开头的字段值和"original_purchase_date"开头的字段值可以不一样吗?如果是,在哪种情况下?
- 是否"application_version"字段包含应用程序当前发布的构建版本的值,因为"original_application_version"字段,根据文档,代表用户使用的应用程序的构建版本进行购买?
非常感谢您的帮助和解答。
R.E.B埃尔南德斯!
original_purchase_date
里面in_app
是应用内购买的时间,这个数组外面的是应用第一次安装的日期。- 如果您使用非消耗品和非续订订阅,则
purchase_date
将与original_purchase_date
相同。但是,如果您使用自动续订订阅,那么您应该检查latest_receipt_info
数组而不是in_app
。在订阅的情况下,original_purchase_date
将仅代表第一笔交易的日期。 - 是的,
application_version
是设备上应用程序的当前版本。original_application_version
是用户最初购买的应用程序版本。
这是文档link