uni-app中uni.requestPayment在安卓支付宝调用后立即返回错误码6001

发布于 1周前 作者 sinazl 来自 Uni-App

uni-app中uni.requestPayment在安卓支付宝调用后立即返回错误码6001

安卓设备支付宝小程序调用requestPayment,调用后立即回调fail,错误码6001(用户主动取消),但是能成功调起支付宝支付,支付流程没问题
iOS设备支付宝小程序调用requestPayment就没有这个问题
uni版本是3.0,传参和之前一致原先都是可用的,很懵

开发环境 版本号 项目创建方式
uni-app 3.0 -
1 回复

在uni-app中使用uni.requestPayment进行支付时,如果遇到在安卓设备上通过支付宝调用支付接口后立即返回错误码6001的情况,这通常指示支付参数配置有误或支付环境未正确设置。错误码6001通常与支付参数或签名验证相关。

以下是一个基础的uni-app支付请求代码示例,以及针对支付宝支付的一些常见检查点和配置说明。请注意,实际开发中需要根据具体的后端API和支付参数进行调整。

uni-app支付请求代码示例

// 发起支付请求
uni.requestPayment({
    timeStamp: '', // 字符串形式的支付签名时间戳
    nonceStr: '', // 支付签名随机串,不长于32位
    package: '', // 统一下单接口返回的prepay_id参数值,提交格式如:prepay_id=***
    signType: 'MD5', // 签名方式,默认为'SHA1',使用'MD5'时,字符串为32位小写
    paySign: '', // 支付签名
    success: function (res) {
        console.log('支付成功', res);
    },
    fail: function (err) {
        console.error('支付失败', err);
        if (err.errMsg === 'requestPayment:fail errMsg="error code:6001"') {
            console.error('错误码6001:支付参数错误或签名验证失败');
        }
    }
});

支付宝支付参数检查与配置

  1. 时间戳和随机串:确保timeStampnonceStr是每次请求时生成的,且符合格式要求。

  2. 签名paySign是根据支付参数(包括appidtimeStampnonceStrpackage等)按照支付宝的签名规则生成的。确保签名算法正确,且所有参数都参与了签名。

  3. package参数package参数的值应为统一下单接口返回的prepay_id,格式为prepay_id=***

  4. 支付环境:确保支付宝SDK已正确集成到项目中,且支付环境(如沙箱环境或正式环境)与后端服务配置一致。

  5. 后端接口:检查后端统一下单接口是否返回了正确的支付参数,特别是prepay_id

  6. 证书:如果是正式环境,确保服务器上的支付宝公钥和私钥证书是有效的,且没有过期。

通过上述检查和代码示例,你可以定位问题所在。如果问题依旧存在,建议详细检查后端日志,确认支付参数和签名是否正确生成和传递。同时,也可以考虑联系支付宝技术支持获取更具体的帮助。

回到顶部