Vue 移动端微信内H5调起支付(WeixinJSBridge内置对象)详解程序员
2023-06-13 09:19:56 时间
支付主要是调用微信的内置对象 WeixinJSBridge
具体用法:
WeixinJSBridge.invoke(‘getBrandWCPayRequest’,data,function (res) {})
方法名:getBrandWCPayRequest
参数:data
返回结果处理:function (res) {}
其中data;
‘appId’: data.appId, // 公众号名称,由商户传入
‘timeStamp’: data.timeStamp, // 时间戳
‘nonceStr’: data.nonceStr, // 随机串
‘package’: data.package, // 预支付id
‘signType’: data.signType, // 微信签名方式
‘paySign’: data.paySign // 微信签名
就两个方法
后台生成支付所需要的数据data数据
creatWXPayOrderInfo () { axios.post(WXORDERCREATE_API, { orderId: this.orderId }).then(this.handleGetDataSucc)//data支付数据生成功后 再调用这个方法
handleGetDataSucc (res) { res = res.data var vm = this var data = res.data if (res.code === 200 data) { // 下面是解决WeixinJSBridge is not defined 报错的方法 if (typeof WeixinJSBridge === undefined) { // 微信浏览器内置对象。参考微信官方文档 if (document.addEventListener) { document.addEventListener(WeixinJSBridgeReady, vm.onBridgeReady(data), false) } else if (document.attachEvent) { document.attachEvent(WeixinJSBridgeReady, vm.onBridgeReady(data)) document.attachEvent(onWeixinJSBridgeReady, vm.onBridgeReady(data)) } else { console.log(准备调用微信支付) vm.onBridgeReady(data) onBridgeReady (data) { console.log(调用微信支付WeixinJSBridge) var vm = this WeixinJSBridge.invoke( getBrandWCPayRequest, { // 下面参数内容都是后台返回的 appId: data.appId, // 公众号名称,由商户传入 timeStamp: data.timeStamp, // 时间戳 nonceStr: data.nonceStr, // 随机串 package: data.package, // 预支付id signType: data.signType, // 微信签名方式 paySign: data.paySign // 微信签名 function (res) { // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。 if (res.err_msg === get_brand_wcpay_request:ok) { Dialog.alert({ message: 下单成功 }).then(() = { vm.$router.push(/order) }) } else { Dialog.alert({ message: 下单失败 }).then(() = { vm.$router.push(/order) })
我是这样写的 成功了
eslint 本地编译会报WeixinJSBridge未定义 不用管
注意 支付成功后不能用get_brand_wcpay_request:ok 作为支付成功的凭证 需要查询订单或者填通知notify_url字段让微信发起异步支付通知才算支付成功
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/1729.html
服务器部署程序员系统优化网站设置运维相关文章
- cnpm i安装报错-Install fail! Error: Unsupported URL Type: npm:vue-loader@^15.9.7
- Vue之书籍购物车案例
- vue单页面应用的原理
- vue slot插槽_笔记本内存条插槽显示4个
- 腾讯二面vue面试题总结
- vue使用axios解决跨域_vue前端解决跨域的方法
- vue子组件向父组件传值的三种方式_vue父页面传值到子页面
- 说说你对Vue的keep-alive的理解
- Vue响应式依赖收集原理分析-vue高级必备
- vue h5 highcharts可滑动折线面积图
- Vue(五)计算属性、过滤器、axios、vue 生命周期
- vue如何引入js文件_vue中引入外部js好麻烦
- Vue全家桶介绍_vue全家桶有什么好处
- Vue项目:菜农管理 【maven + spring boot + RESTFul + SSM+vue + axios】
- vue使用elementUI组件提交表单(带图片)到node后台
- vue页面中使用浏览器自带的前进后退功能
- 如何在H5页面或者移动端Uniapp/vue中接入在线客服系统,h5客服系统的接入方法
- 基于 Vue 和 Canvas,轻舟低代码 Web 端可视化编辑器设计解析 | 低代码技术内幕
- linux启动vue详解程序员
- vue实现弹出框后光标自动定位到输入框Input详解程序员
- Vue调用Redis体验更好的开发效率(vue能调redis吗)
- 从零开始Vue项目中使用Redis(vue使用redis)
- 使用Vue和Redis创建完美的后台应用(vue redis后台)
- Oracle Vue考场助力企业数据库技术突破(oracle vue考场)