2

当我使用沙盒测试应用内购买时,对沙盒 url https://sandbox.itunes.apple.com/verifyReceipt的发布请求返回

 data: { environment: 'Sandbox', status: 21003 }

21003 状态码表示收据无法验证。https://developer.apple.com/documentation/appstorereceipts/status?language=objc

这是预期的吗?我假设我的测试收据将被认为对沙盒环境有效并返回状态 0。

4

2 回答 2

1

不,它不是预期的。即使应用内购买不是自动续订订阅,我也需要在密码字段中提供有效代码。

于 2021-06-23T00:52:32.873 回答
1

您报告,当您将 发送appStoreReceiptverifyReceipt端点时,您看到状态结果 21003。此状态表示appStoreReceipt格式错误、不完整或编码不正确。您能否捕获 base64 编码appStoreReceipt并将内容作为文本文件发送给我,以便我手动验证内容。如果您的应用进程销售自动续订订阅项目,请包含该应用的共享密钥。我使用以下 curl 命令行工具来验证appStoreReceipts.

对于沙盒收据:

curl -d '{ "exclude-old-transactions": true "password":"yyyy" "receipt-data": "xxxx"}' https://sandbox.itunes.apple.com/verifyReceipt

对于生产收据:

curl -d '{ "exclude-old-transactions": true "password":"yyyy" "receipt-data": "xxxx"}' https://buy.itunes.apple.com/verifyReceipt

Whereexclude-old-transactions用于将 的内容限制latest_receipt_info为仅最近的条目和

“密码”是请求密钥,用于指示当内容是自动续订订阅时所需的共享密钥。

yyyy - 是共享密钥,
xxxx - 是appStoreReceipt.

于 2021-08-10T05:38:45.553 回答