微信JSAPI支付提示“调用支付JSAPI缺少参数:total_fee”

 

1、问题分析

首先核实需要的参数是否有值,其次核实JSAPI唤起支付方法的参数类型是否有效(经试验这个问题会导致多个错误,比如:(1)调用支付JSAPI缺少参数:timeStamp;(2)商户传入的appid参数不正确,请联系商户处理),怀疑苹果手机的微信内置浏览器有转义,比如:package=rs.data.package;实际上传给唤起支付JS的参数类型是int,也就是说我们赋值的时候需要加上 '',将int转string类型,代码如下:

复制代码
var appid,timeStamp,nonceStr,package,paySign;

//Ajax获取业务参数
$.get('/wx/pay/jsapi.do',{},function(rs){
    appid = ''+rs.data.appid;
    package = ''+rs.data.package;
    ...
    //唤起支付function
    ...
});

当然如果定义参数的时候赋初始值,比如:var package="";这样就不需要在ajax回调函数赋值的时候加上 ( ""+ );

复制代码

2、唤起JSAPI支付方法

复制代码
function onBridgeReady() {
    WeixinJSBridge.invoke('getBrandWCPayRequest', {
        "appId": "wx2421b1c4370ec43b",     //公众号ID,由商户传入     
        "timeStamp": "1395712654",     //时间戳,自1970年以来的秒数     
        "nonceStr": "e61463f8efa94090b1f366cccfbbb444",      //随机串     
        "package": "prepay_id=up_wx21201855730335ac86f8c43d1889123400",
        "signType": "RSA",     //微信签名方式:     
        "paySign": "oR9d8PuhnIc+YZ8cBHFCwfgpaK9gd7vaRvkYD7rthRAZ\/X+QBhcCYL21N7cHCTUxbQ+EAt6Uy+lwSN22f5YZvI45MLko8Pfso0jm46v5hqcVwrk6uddkGuT+Cdvu4WBqDzaDjnNa5UK3GfE1Wfl2gHxIIY5lLdUgWFts17D4WuolLLkiFZV+JSHMvH7eaLdT9N5GBovBwu5yYKUR7skR8Fu+LozcSqQixnlEZUfyE55feLOQTUYzLmR9pNtPbPsu6WVhbNHMS3Ss2+AehHvz+n64GDmXxbX++IOBvm2olHu3PsOUGRwhudhVf7UcGcunXt8cqNjKNqZLhLw4jq\/xDg==" //微信签名 
    },
    function(res) {
        if (res.err_msg == "get_brand_wcpay_request:ok") {
            // 使用以上方式判断前端返回,微信团队郑重提示:
            //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
        }
    });
}
if (typeof WeixinJSBridge == "undefined") {
    if (document.addEventListener) {
        document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
    } else if (document.attachEvent) {
        document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
        document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
    }
} else {
    onBridgeReady();
}
复制代码

3、微信支付-QA文档

https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/faq/chapter2_15.shtml?index=2#menu11

posted @   七月的枫丶  阅读(6888)  评论(0编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示