有智慧的码农
有智慧的码农
  • 发布:2021-11-05 12:52
  • 更新:2022-03-04 15:13
  • 阅读:941

【报Bug】反馈HBuilder3.2.12 ios虚拟支付返回的transactionReceipt是错误的无法进行验证

分类:uni-app

产品分类: 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": ""
}"""

bug描述:

HBuilder3.2.12苹果支付成功后返回的transactionReceipt无法验证,必须回退到HBuilder 3.2.9才能正常验证。

这个BUG请官方有空给个回个话,需要提供更多资料我可以继续提供,主要是因为HBuilder3.2.12修复了IOS长时间后台后白屏的问题,所以我很想用HBuilder3.2.12,不然我也不催着官方修复这个BUG了,我都反馈三天了也没回复

2021-11-05 12:52 负责人:无 分享
已邀请:
8***@qq.com

8***@qq.com

谢谢楼主,我今天也是遇到这个问题,弄了一天,不知道啥原因。。
看了你的贴子后,确实有效,现在可以用了。

DCloud_uni-ad_HDX

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

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

Uamy

感谢大佬 整了一天不知道什么问题 真的是一语点醒梦中人

该问题目前已经被锁定, 无法添加新回复