uniapp端用的官方代码:https://uniapp.dcloud.io/api/plugins/payment?id=requestpayment
验证也是按照unipay的官方配置的:https://uniapp.dcloud.io/uniCloud/unipay?id=verifyreceipt
代码在HBuilder3.2.9和之前的版本都是正常运行的,但是一到HBuilder3.2.12就出BUG了,transactionReceipt返回的是错误的,无法验证
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 11.6
HBuilderX类型: 正式
HBuilderX版本号: 3.2.12
手机系统: iOS
手机系统版本号: iOS 14
手机厂商: 苹果
手机机型: 苹果11
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
uniapp端用的官方代码:https://uniapp.dcloud.io/api/plugins/payment?id=requestpayment
验证也是按照unipay的官方配置的:https://uniapp.dcloud.io/uniCloud/unipay?id=verifyreceipt
代码在HBuilder3.2.9和之前的版本都是正常运行的,但是一到HBuilder3.2.12就出BUG了,transactionReceipt返回的是错误的,无法验证
用最新的HBuilder3.2.12打个苹果app包用沙箱测支付立刻就测出来了
预期是可以返回正常的苹果支付订单数据
下面是unipay返回的验证结果(部分无关的敏感数据我删除了):
"""{
"success": true,
"header": {
"x-fc-invocation-service-version": "LATEST",
"x-serverless-runtime-version": "1.2.1",
"date": "Thu, 04 Nov 2021 13:42:49 GMT",
"x-serverless-cold-boot": "true",
"x-fc-invocation-duration": "2262",
"x-fc-code-checksum": "",
"access-control-expose-headers": "Date,x-fc-request-id,x-fc-error-type,x-fc-code-checksum,x-fc-invocation-duration,x-fc-max-memory-usage,x-fc-log-result,x-fc-invocation-code-version",
"content-disposition": "attachment",
"x-serverless-request-id": "",
"content-length": "83",
"x-fc-request-id": "",
"x-fc-max-memory-usage": "38.62",
"content-type": "application/json"
},
"result": {
"tradeState": "PAYERROR",
"errMsg": "Error status [21003]"
},
"requestId": ""
}"""
HBuilder3.2.12苹果支付成功后返回的transactionReceipt无法验证,必须回退到HBuilder 3.2.9才能正常验证。
这个BUG请官方有空给个回个话,需要提供更多资料我可以继续提供,主要是因为HBuilder3.2.12修复了IOS长时间后台后白屏的问题,所以我很想用HBuilder3.2.12,不然我也不催着官方修复这个BUG了,我都反馈三天了也没回复
6 个回复
8***@qq.com
谢谢楼主,我今天也是遇到这个问题,弄了一天,不知道啥原因。。
看了你的贴子后,确实有效,现在可以用了。
DCloud_uni-ad_HDX
请提供transactionReceipt 数据格式,注意修改下数据在发,避免泄露
是否使用了自动续订,如果是需要传递参数 password,是否传递了沙箱环境参数 sandbox: true
有智慧的码农 (作者)
这是transactionReceipt 数据格式:
{"payment":{"productid":"XXXXXXXXX01","quantity":"1"},"transactionDate":"2021-11-09 16:46:36","transactionIdentifier":"100000090XXXXXXXXXX","transactionReceipt":"XXXXXXXXXXX","transactionState":"1","errMsg":"requestPayment:ok"}
2021-11-09 16:49
有智慧的码农 (作者)
没有密码,传递了沙箱环境参数 sandbox: true。APP已经正常运行三个多月,更新到HBuilderX3.2.12就出BUG,回退到HBuilderX3.2.9就没问题了
2021-11-09 16:51
有智慧的码农 (作者)
还需要提供什么资料,我这边随时提供,因为HBuilderX3.2.12解决了ios长时间后台白屏的问题,所以我特别希望用新版本,麻烦了
2021-11-09 16:53
DCloud_uni-ad_HDX
回复 有智慧的码农: 私信的数据太长了,可能显示不全,加QQ:87263426,重新发下 transactionReceipt
2021-11-09 18:03
有智慧的码农 (作者)
回复 DCloud_uni-ad_HDX: 好的,已加,等明天上班联系您哈,谢谢
2021-11-09 18:33
有智慧的码农 (作者)
我这个BUG报了好多天报了好多次了,为什么没有官方的人回复下?我看别人报的BUG都有回复,怎么我报的BUG被完全无视了呢?
DCloud_uni-ad_HDX
我们测试都没有问题:如果无法定位问题请加技术支持 QQ: 87263426
conway
你好 麻烦同意下
2022-03-20 00:37
有智慧的码农 (作者)
问题最终总结,hx3.2.9及之前版本返回的receipt不用填password就可以验证,返回的订单信息没有in_app信息。hx3.2.12及之后的版本返回的receipt必须填password才可以验证,返回的订单信息有in_app信息
5***@qq.com
请问 password 在哪里获取呢?
2022-01-18 18:11
Uamy
感谢大佬 整了一天不知道什么问题 真的是一语点醒梦中人