async function weixinAppPay(option) {
loadingPay.value = true
let orderInfo = await getOrderInfoMini(option.entryNum)
if (!orderInfo) {
option.fail && option.fail('获取支付信息失败')
return
}
console.log('--------orderInfo--------')
console.log(orderInfo)
uni.requestPayment({
provider: 'wxpay',
orderInfo: {
"appid" : orderInfo.appid,
"partnerid": orderInfo.partnerid,
"prepayid": orderInfo.prepayid,
"package" : orderInfo.package,
"noncestr": orderInfo.noncestr,
"timestamp" : orderInfo.timestamp,
"sign": orderInfo.sign
},
success: e => {
option.success && option.success(e)
},
fail: res => {
option.fail && option.fail(res.errMsg || '支付失败!')
},
complete: () => {
loadingPay.value = false
}
})
}

- 发布:2025-04-25 11:16
- 更新:2025-04-25 11:16
- 阅读:564
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 15.3.2
HBuilderX类型: 正式
HBuilderX版本号: 4.57
手机系统: Android
手机系统版本号: Android 10
手机厂商: OPPO
手机机型: OPPO R11
页面类型: vue
vue版本: vue3
打包方式: 离线
项目创建方式: HBuilderX
App下载地址或H5⽹址: https://www.pgyer.com/Ci65K3
示例代码:
操作步骤:
1、如代码中,组织app支付参数,
2、调用uni.requestPayment统一支付API
3、此方法直接回调结果,success: e => {
option.success && option.success(e)
},
4、在3的步骤中我还没在手机上选择微信(因为微信有分身),便直接回调结果了
1、如代码中,组织app支付参数,
2、调用uni.requestPayment统一支付API
3、此方法直接回调结果,success: e => {
option.success && option.success(e)
},
4、在3的步骤中我还没在手机上选择微信(因为微信有分身),便直接回调结果了
预期结果:
当我选择完具体的微信,并输入密码后才应该走成功回调
当我选择完具体的微信,并输入密码后才应该走成功回调
实际结果:
还没有选择微信,只是调用uni.requestPayment 此方法,成功回调已经执行
还没有选择微信,只是调用uni.requestPayment 此方法,成功回调已经执行
bug描述:
安卓端微信支付调用uni.requestPayment后,直接走了支付成功回调,回调结果如下:
{'channel":(id":"wxpay""description""微
信",serviceReady":true), errMsg"""requestPayment:ok"),
此时因为本身安卓机有微信分身,还没有选择具体使用哪个微信支付,也没输入支付密码,怎么就直接走支付成功回调呢?
使用环境:
离线打包,
JDK17,
compileSdk 35,
buildToolsVersion '35.0.0'
附件有视频,操作过程,没有选择微信支付,但支付统一 接口uni.requestPayment 就有成功回调。