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签名才能正常唤起支付。
问题原因:
- 签名不一致:微信分身和主微信应用在系统层面被视为两个独立的应用,它们可能有不同的签名信息
- 开放平台配置:在微信开放平台配置支付权限时,通常只配置了主应用的签名,没有配置微信分身的签名信息
- 包名冲突:微信分身可能使用了不同的包名或签名机制
解决方案:
-
获取微信分身的签名信息:
- 使用签名获取工具获取微信分身应用的签名MD5值
- 在Android设备上安装微信分身,通过命令行获取签名:
keytool -list -v -keystore
-
微信开放平台配置:
- 登录微信开放平台
- 进入你的应用管理页面
- 在"开发信息"中找到"应用签名"
- 将微信分身的签名MD5值也添加到允许列表中
- 如果平台不支持多个签名,可能需要联系微信开放平台技术支持
-
代码层面检查:
// 可以在支付前检查微信是否安装 uni.getProvider({ service: 'oauth', success: function(res) { console.log('可用服务商:', res.provider); } });

