欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

微信JSAPI支付调不起收银台问题

发布时间:2024/3/13 javascript 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 微信JSAPI支付调不起收银台问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

        今天写微信支付,后台预支付能拿到所有参数,但前台死活不能调起收银台,用开发者工具调试,参数什么的,没有任何问题,方法也都调用了。折腾良久。

先上代码,以下代码没有调起收银台

<script src="/js/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script> <script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>//引包 <script>$(function () {window.baseUrl = 'http://' + window.location.host;$.ajax({url: window.baseUrl + '/api/js_config?url=' + encodeURIComponent(location.href.split('#')[0]),async: false,success: function (response) {window.js_config = response.body.js_config;}});wx.config({debug: false,appId: window.js_config.appId,timestamp: window.js_config.timestamp,nonceStr: window.js_config.nonceStr,signature: window.js_config.signature,jsApiList: window.js_config.jsApiList});wx.ready(res => {wx.checkJsApi({jsApiList: ['chooseWXPay'],success: res => {console.log('checked api:', res)},fail: err => {console.log('check api fail:', err)}})})wx.chooseWXPay({timestamp: '${pay_param.timestamp!"error"}',nonceStr: '${pay_param.nonceStr!"error"}',package: '${pay_param.package!"error"}',signType: '${pay_param.signType!"error"}',paySign: '${pay_param.paySign!"error"}',success: function (res) {alert("支付成功");setTimeout(function () {location.href = "/purchase_coupon/couponInfo/${cid}";}, 1000);},cancel: function (res) {alert("取消支付");},fail: function (res) {alert("支付失败");}})}) </script>

看了官方文档,也查了很多帖子,发现调不起收银台(什么反应都没有,也无错误提示),一般是wx.config 没有配置,或者没有配置好的问题,但代码中显然已经配置,配置也无问题,后发现是加载顺序问题,wx.config 未配置完成就走了 wx.chooseWXPay。 故改变代码如下,等待wx.config 加载完成后 再去调起支付,调起收银台成功。

<script src="/js/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script> <script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>//引包window.baseUrl = 'http://' + window.location.host;$.ajax({url: window.baseUrl + '/api/js_config?url=' + encodeURIComponent(location.href.split('#')[0]),async: false,success: function (response) {window.js_config = response.body.js_config;}});wx.config({debug: false,appId: window.js_config.appId,timestamp: window.js_config.timestamp,nonceStr: window.js_config.nonceStr,signature: window.js_config.signature,jsApiList: window.js_config.jsApiList});wx.ready(function () {wx.chooseWXPay({timestamp: '${pay_param.timestamp!"error"}',nonceStr: '${pay_param.nonceStr!"error"}',package: '${pay_param.package!"error"}',signType: '${pay_param.signType!"error"}',paySign: '${pay_param.paySign!"error"}',success: function (res) {alert("支付成功");setTimeout(function () {location.href = "/purchase_coupon/couponInfo/${cid}";}, 1000);},cancel: function (res) {alert("取消支付");},fail: function (res) {alert("支付失败");}})});

 

总结

以上是生活随笔为你收集整理的微信JSAPI支付调不起收银台问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。