收藏
回答

微信支付js接口chooseWXPay与WeixinJSBridge有什么不同

微信支付js接口chooseWXPay与WeixinJSBridge有什么不同

最后一次编辑于  03-26  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

1 个回答

  • 微信支付技术助手
    微信支付技术助手
    03-26

    您好,请参考;

    当你登陆微信公众号之后,左边有两个菜单栏,一个是微信支付,一个是开发者中心。

    在开发者中心中,有一个微信JS-SDK说明文档。

    在此说明文档中,有一个发起微信支付的请求API

     

    wx.chooseWXPay({
        timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
        nonceStr: '', // 支付签名随机串,不长于 32 位
        package: '', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
        signType: '', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
        paySign: '', // 支付签名
        success: function (res) {
            // 支付成功后的回调函数
        }
    });

     

    在微信支付菜单栏中,有一个使用教程。里面有一个使用JS API发起支付请求的小菜单。

    进入之后,里面一个公众号支付的菜单栏。在里面,有一个H5调起支付API的页面。

    它里面发起一个支付的代码是:

     

    function onBridgeReady(){
       WeixinJSBridge.invoke(
           'getBrandWCPayRequest', {
               "appId" : "wx2421b1c4370ec43b",     //公众号名称,由商户传入     
               "timeStamp":" 1395712654",         //时间戳,自1970年以来的秒数     
               "nonceStr" : "e61463f8efa94090b1f366cccfbbb444", //随机串     
               "package" : "prepay_id=u802345jgfjsdfgsdg888",     
               "signType" : "MD5",         //微信签名方式:     
               "paySign" : "70EA570631E4BB79628FBCA90534C63FF7FADD89" //微信签名 
           },
           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();
    }

     

    为什么JS有两种方法可以调起微信支付呢?

    我的理解:第一种方法是为了跟其他js API接口统一(里面可以调用很多微信的功能)而提供的。

    第二种方法仅仅是针对微信支付这个功能提供的。

    也就是说,按照这两种方法来进行微信支付,都是可以的,但是两种方法调用的方式和提供的参数不一样。


    03-26
    赞同
    回复