微信h5页面/小程序内部,如何调用微信支付接口,弹出支付框。

微信公众号.调用支付接口.API.微信内H5调起支付请戳我

在微信浏览器里面打开H5网页中执行JS调起支付。接口输入数据格式为JSON。

注意:WeixinJSBridge内置对象在其他浏览器中无效。

getBrandWCPayRequest参数以及返回值定义:

1、网页端接口请求参数列表(参数需要重新进行签名计算,参与签名的参数为:appId、timeStamp、nonceStr、package、signType,参数区分大小写。)

2、返回结果值说明

注:JS API的返回结果get_brand_wcpay_request:ok仅在用户成功完成支付时返回。由于前端交互复杂,get_brand_wcpay_request:cancel或者get_brand_wcpay_request:fail可以统一处理为用户遇到错误或者主动放弃,不必细化区分

示例代码:

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();
}

自用代码示例:

getWechatPay:function(){
   // 获取微信支付sdk的参数
   this.$http.get('/tgglApi/wechatPay/pay?orderId=' + window.localStorage.orderId).then(function(rs){
       console.log(rs);
       if(rs.body.status == '200'){
          app.retrieve(rs.body.data);
       }else{
          // app.isBuyModal = true; // 去支付modal
          console.log('服务器数据异常!');
       }
   });
},
retrieve:
function(param) { //微信调起支付页面 if (typeof WeixinJSBridge == "undefined") { if (document.addEventListener) { document.addEventListener('WeixinJSBridgeReady', function () { app.onBridgeReady(param); }, false); } else if (document.attachEvent) { document.attachEvent('WeixinJSBridgeReady', function () { app.onBridgeReady(param); }); document.attachEvent('onWeixinJSBridgeReady', function () { app.onBridgeReady(param); }); } } else { app.onBridgeReady(param); } },
onBridgeReady:
function(param){ WeixinJSBridge.invoke('getBrandWCPayRequest',param,function(res){ // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。 if(res.err_msg == "get_brand_wcpay_request:ok" ){ window.location.href = 'ptpaySuccess.html'; }else{ app.isBuyModal = true; console.log('pay_error'); } }); }

 

posted @ 2018-12-24 15:45  芝芝小笼包  阅读(2257)  评论(0)    收藏  举报