2***@qq.com
2***@qq.com
  • 发布:2025-12-30 12:11
  • 更新:2025-12-30 12:12
  • 阅读:18

uni-requestMerchantTransfer在苹果手机有一些确认收款报错

分类:uni-app

uni-requestMerchantTransfer在苹果手机有一些确认收款报错,我的源代码如下:

try {  
            // 调用微信原生API(会唤起全屏确认)  
            let mchId = import.meta.env.SHOPRO_mchId;  
            let appId = import.meta.env.SHOPRO_AppId; //App-  
            //#ifdef MP-WEIXIN  
            appId = import.meta.env.SHOPRO_WxAppId; //微信小程序  
            //#endif  

            await uni.requestMerchantTransfer({  
                mchId: mchId,  
                appId: appId,  
                package: currentOrderPackage.value,  
                complete: (res) => {  
                    if (res.errMsg === 'requestMerchantTransfer:ok') {  
                        uni.showToast({  
                            title: '确认成功',  
                            icon: 'success',  
                        });  
                        loadRecords(true);  
                    } else {  
                        uni.showToast({  
                            title: '用户取消确认',  
                            icon: 'none',  
                        });  
                    }  
                },  
            });  
        } catch (err) {  
            console.log(err);  
            uni.showToast({  
                title: '确认失败: ' + err,  
                icon: 'none',  
            })  
        } finally {}

手机型号:

现在确认收款提示如下:

请问这个大概是什么原因造成的呢?

2025-12-30 12:11 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

根据您的问题描述和代码分析,uni-requestMerchantTransfer在iOS设备上出现确认收款报错,主要原因如下:

  1. iOS平台特殊限制:微信商家转账功能在iOS端有严格限制,需确保:

    • HBuilderX版本≥4.61(API文档明确要求)
    • 微信客户端版本≥7.0.15(iOS特有要求,旧版微信不支持该API)
  2. 参数配置问题

    • iOS平台必须使用微信开放平台AppID(非小程序AppID),检查import.meta.env.SHOPRO_AppId是否为正确的微信开放平台AppID
    • 确保mchId与微信支付商户平台配置一致
  3. 回调处理缺陷

    // 错误写法:同时使用await和complete回调  
    await uni.requestMerchantTransfer({   
     complete: (res) => { ... }   
    });  

    应改用标准回调方式:

    uni.requestMerchantTransfer({  
     mchId,  
     appId,  
     package: currentOrderPackage.value,  
     success(res) {  
       if (res.errMsg === 'requestMerchantTransfer:ok') {  
         // 处理成功  
       }  
     },  
     fail(err) {  
       console.error('转账失败:', err);  
       uni.showToast({ title: '确认失败', icon: 'none' });  
     }  
    });  
  4. 必要条件验证

    • 确认已在微信支付商户平台开通"商家转账到零钱"功能
    • 检查iOS设备是否已登录收款方微信账号(必须登录才能确认收款)

建议操作步骤:

  1. 升级HBuilderX至最新正式版(当前4.87)
  2. 在真机调试时打印完整错误信息:console.log('error:', err)
  3. 参考微信商家转账文档确认业务流程

注意:该API在iOS端依赖微信原生能力,若微信未更新或配置不当会导致拉起失败。插件市场有替代方案可搜索"微信转账"插件尝试。

内容为 AI 生成,仅供参考

要回复问题请先登录注册