红色熊猫
红色熊猫
  • 发布:2024-09-24 23:54
  • 更新:2024-10-14 10:46
  • 阅读:129

【报Bug】unipay微信H5支付不支持V3

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 14.5

HBuilderX类型: 正式

HBuilderX版本号: 4.24

浏览器平台: Safari

浏览器版本: ios17.1

项目创建方式: HBuilderX

操作步骤:

在手机浏览器中运行uni-pay示例程序,打开收银台,选择微信支付,会跳转到一个/undefined路径

预期结果:

正常支付

实际结果:

会跳转到一个/undefined路径

bug描述:

使用微信支付V3版本,PC浏览器扫码支付正常,手浏览器会跳转undefined,原因如下:
文件 uni_modules/uni-pay/components/uni-pay/uni-pay.vue,方法 orderPayment中,res.order.codeUrl和res.order.mwebUrl都是undefined,导致window.location.href到一个undefined地址。见图1和图4。

通过排查发现,在文件uni_modules/uni-pay/uniCloud/cloudfunctions/uni-pay-co/service/pay.js的createOrder方法中,通过getOrderInfo获取的order对象中,只有一个H5Url属性。见图2。

继续深入发现,在getOrderInfo方法中(uni_modules/uni-pay/uniCloud/cloudfunctions/common/uni-pay/index.js),order对象是从微信接口(/v3/pay/transactions/H5)中获取的,返回的就只有H5Url。见图3。

看了下微信支付的V3文档,微信的接口返回的是一个h5_url,为啥在getOrderInfo方法中又会被转成H5Url也是奇奇怪怪的。而mweb_url参数应该是V2版本的吧
https://pay.weixin.qq.com/docs/merchant/apis/h5-payment/direct-jsons/h5-prepay.html

2024-09-24 23:54 负责人:无 分享
已邀请:
DCloud_uniCloud_VK

DCloud_uniCloud_VK

已修复, 更新到最新版即可

要回复问题请先登录注册