苹果内购支付报错误21003在uni-app中的解决方案

苹果内购支付报错误21003在uni-app中的解决方案

操作步骤:

  • 使用苹果沙箱支付

预期结果:

  • 校验通过

实际结果:

  • 后台校验失败21003

bug描述:

  • 在之前使用苹果内购服务一直都没有问题,今天使用苹果沙箱支付进行后台校验报了21003的错误,无法正确检验该凭证,苹果后台、前后端代码都没有任何的改动,突然就有问题了,回传回来的票据没有进行二次处理,直接上报苹果沙箱就会报错

| 项目属性         | 详细信息       |
|------------------|----------------|
| 产品分类         | uniapp/App     |
| PC开发环境操作系统 | Windows        |
| PC开发环境操作系统版本号 | window10专业版  |
| HBuilderX类型    | 正式           |
| HBuilderX版本号  | 3.8.12         |
| 手机系统         | iOS            |
| 手机系统版本号    | iOS 16         |
| 手机厂商         | 苹果           |
| 手机机型         | iphoneX        |
| 页面类型         | vue            |
| vue版本          | vue2           |
| 打包方式         | 云端           |
| 项目创建方式      | HBuilderX      |

更多关于苹果内购支付报错误21003在uni-app中的解决方案的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

看下是不是生成了 共享密钥 但是内购的时候没有传密钥

更多关于苹果内购支付报错误21003在uni-app中的解决方案的实战教程也可以访问 https://www.itying.com/category-93-b0.html


是的,弄清楚了,我写成博客出来分享

有一点非常奇怪,我总共有4个档位,3个档位是消耗性的,1个档位是续费型的,我买消耗性的按道理是不需要密钥校验的,可是不加密钥直接报21003了,非常奇怪,难道是有一个档位是续费型的,所有档位都需要加上密钥校验吗

回复 JacksonTsai: 这个规则应该苹果今年更新了 以前只自动订阅的才需要共享密钥,现在应该是只要创建了共享密钥那么无论什么类型都要传

回复 DCloud_iOS_WZT: 可是我使用苹果原生代码去校验又不需要密钥了,您可以尝试一下,使用原生代码去写

回复 JacksonTsai: 服务端在与苹果服务器校验票据时 传这个共享密钥 跟你原生代码有啥关系呢

回到顶部