微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

沙盒环境返回 21003 状态码进行收据验证

如何解决沙盒环境返回 21003 状态码进行收据验证

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

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

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

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

解决方法

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

,

您报告说,当您将 appStoreReceipt 发送到 verifyReceipt 端点时,您看到状态结果 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

其中 exclude-old-transactions 用于将 latest_receipt_info 的内容限制为仅最新条目和

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

yyyy - 是共享秘密和
xxxx - 是 appStoreReceipt 的 base64 编码内容。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?