公司是已经写好了公众号的页面和功能 需求是想再弄一个一样的小程序 这毋庸置疑是用小程序的webview 将公众号的页面引进来 直接使用 一切想的都是那么完美 并且引进来之后也没什么毛病 但是问题出在了微信支付上 这让人就很上头了
开始在网上搜索各种方法 一开始一直在求证的是 小程序里内嵌的webview页面支付是否能正常调起 答案是不能 原因就是公众号支付是公众号支付 小程序是小程序 两者虽然都是微信的东西 但是支付就是不一样 就很烦
网上搜索各种解决方案 大概总结一下
h5端生成订单后跳转到支付页面 跳转的时候判断当前环境是否为小程序 是小程序的话 就跳转到小程序的支付页面(自己单独写的小程序支付页面)否则就继续h5的支付流程
首先 判断场景为小程序还要引入一个js
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
h5代码:
var jsApiCall = function () {
var isWxMini = window.__wxjs_environment === 'miniprogram' // 判断场景是否小程序
if (isWxMini) {
alert(encodeURI($('#wx').text()));
var str=encodeURI($('#wx').text()) //发起微信支付所需要的参数(共5个 timeStamp、nonceStr、...) 传递到小程序
wx.miniProgram.navigateTo({
url: "/pages/pay/pay?str="+str //不要觉得这里的地址要写成链接的形式 当时在这里纠结半天 直接把小程序里的页面对应的相对路径写上就完事 (我的h5页面在vscode 小程序在uniapp)
})
} else {
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
JSON.parse($('#wx').text()),
function (res) {
if (res.err_msg === "get_brand_wcpay_request:ok") {
window.location.href = "/buy/success";
}
});
}
}
这个时候就遇到一个问题 订单号我搞不到
2021-7-24更新一则:
我是在小程序重新写的生成订单页面 然后生成订单和发起支付都是重新写的小程序页面,这样订单号和所需要的参数都能够获取到了。然后调起支付可以看看我的微信调起支付的博客。