E企盈小程序营销工具技术服务商 热线:4006-838-530

小程序fail调用支付JSAPI缺少参数:total_fee,小程序webview支付

E企盈小程序直播系统

小程序fail 调用支付JSAPI缺少参数: total_fee;小程序web-view支付场景:原先在公众号内做的支付,想通过web-view的方式放到小程序里面,但是发现公众号的支付在小程序中不能用了,所以尝试着小程序与web-view交互着来搞,首先在H5中拿到支付的签名,然后再把这个签名传递到小程序中,用小程序的API进行吊起,吊起后有回调函数,注意原先在公众号内的open_id和app_id都不能用了,要根据小程序的环境重新来拿在H5中引入小程序sdk  https://res.wx.qq.com/open/js/jweixin-1.3.2.js首先判断一下是不是小程序环境    let k;    var ua = window.navigator.userAgent.toLowerCase();    if (ua.match(/MicroMessenger/i) == ‘micromessenger’) { //判断是否是微信环境      //微信环境      wx.miniProgram.getEnv(function (resData) {        if (resData.miniprogram) {          // 小程序环境下逻辑           k = “true_mini”;        } else {          //非小程序环境下逻辑          k = “false_mini”;        }      })    } else {      //非微信环境逻辑      k = “false_wx”;    }    console.log(“运行环境为”+k);    return k;//如果是在小程序中的处理逻辑此处要注意一定要确保签名信息在H5中是无误的,特别要注意package这个字段 //小程序内发起支付  //不知道为什么,拼接的package字符串到了小程序总是会丢失半截,所以用id单独处理 //比如package传递的时候值是 prepay_id=wx***********************;到了小程序中就变为prepay_id,后面的就没了。。。。所以我做了一下处理 let u = res.data.data.package; let id = u.substr((u.indexOf(“prepay_id=”)+10),u.length);  var params = ‘timestamp=’+res.data.data.timeStamp+’&nonceStr=’+res.data.data.nonceStr+                           ‘&paySign=’+res.data.data.paySign+’&package=’+res.data.data.package+’&id=’+id;  console.log(“签名为”+params);  console.log(id);  var path = ‘/pages/wxpay/wxpay?’+params;    //小程序页面的路径  wx.miniProgram.navigateTo({url: path}); //小程序中onLoad: function (options) {    console.log(options);    console.log(‘prepay_id=’ + options.id);    //这个地方单独传了一个id,这个id就是package的值    wx.requestPayment({      timeStamp: options.timestamp,      nonceStr: options.nonceStr,      package: ‘prepay_id=’ + options.id,      signType: ‘MD5’,      paySign: options.paySign,      success(res) {    //支付成功        console.log(res);        wx.navigateBack();    //返回上一级       },      fail(err) {            if (err.errMsg == “requestPayment:fail cancel”){              console.log(“支付取消”);          wx.navigateBack();        }else{          console.log(“支付失败”);          wx.navigateBack();        }        }    })  },

赞(0) 打赏
未经允许不得转载:E企盈小程序开发-热线:4006-838-530 » 小程序fail调用支付JSAPI缺少参数:total_fee,小程序webview支付
分享到: 更多 (0)
E企盈小程序直播营销卖货系统
E企盈直播平台营销卖货系统

评论 抢沙发

E企盈小程序开发

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏