// 点击了点击购买按钮
async handlePurchase() {
const vm = this
// 获取选中的套餐信息,用的是axios的post方法,因此要包装一下params
const index = this.activeIndex
const currentItem = this.rechargeOptionData[index]
const params = new URLSearchParams()
params.append('mall_id', currentItem.mall_id)
// 交互,这里的request是自己封装的axios
const res = await request.post('/createOrder', params)
// console.log(res)
if(res.data.status) {
if (typeof WeixinJSBridge == "undefined") {
if (document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', vm.jsApiCall, false)
} else if (document.attachEvent) {
document.attachEvent('WeixinJSBridgeReady', vm.jsApiCall)
document.attachEvent('onWeixinJSBridgeReady', vm.jsApiCall)
}
} else {
this.jsApiCall(res.data.info);
} else {
// 使用了vue-toast
this.$toasted.show(res.data.msg, {
position: 'top-center',
duration: 3000
})
}
}
},
// 调用微信JS api 支付
jsApiCall(json) {
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
json,
function(res){
WeixinJSBridge.log(res.err_msg);
if(res.err_msg === "get_brand_wcpay_request:ok"){
// 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
this.$toasted.show(res.err_code + res.err_desc + res.err_msg, {
position: 'top-center',
duration: 3000
})
} else{
//显示错误信息
this.$toasted.show(res.err_code + res.err_desc + res.err_msg, {
position: 'top-center',
duration: 3000
})
}
}
)
}
vue页面在微信公众号调用支付接口
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...