uni-app 最新版HBuilderX调用微信支付API后 微信分身无法支付

uni-app 最新版HBuilderX调用微信支付API后 微信分身无法支付

开发环境 版本号 项目创建方式
Windows win 10 HBuilderX
Android Android 10 -
OPPO r17pro -

示例代码:

uni.requestPayment({
"provider": "wxpay",
"orderInfo": data.signMaps,
success(res) {
this.appPay = false;
uni.showToast({
title: '支付成功',
duration: 2000,
icon: 'none'
});
setTimeout(() => {
uni.navigateBack({
delta: 1
});
}, 1000)
},
fail(e) {
this.appPay = false;
console.log('支付失败:APP')
uni.redirectTo({
url: `/pages/order/index?type=1&titleKey=2`
})
}
})

操作步骤:

  • 弹出选择微信的弹窗后,选择微信分身直接进入fail回调不能支付

### 预期结果:

- 希望微信分身能正常支付

实际结果:

  • 微信分身无法支付

### bug描述:

- 最新版huilderX调用微信支付API后,选择微信分身支付直接进入fail回调

更多关于uni-app 最新版HBuilderX调用微信支付API后 微信分身无法支付的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

1111111

更多关于uni-app 最新版HBuilderX调用微信支付API后 微信分身无法支付的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个典型的微信开放平台配置问题。微信支付在Android系统上需要正确配置微信开放平台的App签名才能正常唤起支付。

问题原因:

  1. 签名不一致:微信分身和主微信应用在系统层面被视为两个独立的应用,它们可能有不同的签名信息
  2. 开放平台配置:在微信开放平台配置支付权限时,通常只配置了主应用的签名,没有配置微信分身的签名信息
  3. 包名冲突:微信分身可能使用了不同的包名或签名机制

解决方案:

  1. 获取微信分身的签名信息

    • 使用签名获取工具获取微信分身应用的签名MD5值
    • 在Android设备上安装微信分身,通过命令行获取签名:keytool -list -v -keystore
  2. 微信开放平台配置

    • 登录微信开放平台
    • 进入你的应用管理页面
    • 在"开发信息"中找到"应用签名"
    • 将微信分身的签名MD5值也添加到允许列表中
    • 如果平台不支持多个签名,可能需要联系微信开放平台技术支持
  3. 代码层面检查

    // 可以在支付前检查微信是否安装
    uni.getProvider({
      service: 'oauth',
      success: function(res) {
        console.log('可用服务商:', res.provider);
      }
    });
回到顶部