微信小程序与webview交互实现支付功能


Posted in Javascript onJune 07, 2019

实现原理:点击h5网页的支付按钮——(跳转)——>嵌套改h5的小程序的支付页面——(处理支付)——>跳转至支付完成后的页面

注意:(1)网页h5中,引入微信的jssdk

<script type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>

(2)小程序嵌套h5页面后,需要在微信公众平台配置h5网页的业务逻辑名,否则无法访问(且配置业务逻辑名的小程序只能是企业小程序,个人小程序暂时无法实现)。

操作:登录微信公众平台————开发——————开发设置

微信小程序与webview交互实现支付功能

小程序目录 

微信小程序与webview交互实现支付功能

<!--webview中(小程序page)-->

//pages/lnyc2019/index.wxml

 <web-view class='page_web' src="{{url}}"></web-view>

 

//pages/lnyc2019/index.js

Page({ 

data: { 



url:'https://xxxxxxxx/wxmini/index.html'//h5地址 


} 

})
<!--wxPay中(小程序page)-->

// pages/wxPay/index.js

Page({

 data: {

  payTempcode:'',

  ordercode:'',

  payParam:{}

 },

 onLoad: function (options) {

  console.log('支付开始');

  console.log(options);

  this.setData({

   ordercode: options.ordercode

  });

  this.getTempcode();

 },

 // 换取支付临时code

 getTempcode:function(){

  wx.login({

   success: res => {

    // 发送 res.code 到后台换取 openId, sessionKey, unionId

    this.setData({

     payTempcode:res.code

    });

    console.log('支付code:', this.data.payTempcode);

 

    this.getPayinfo();

   }

  })

 },

 // 换取支付参数

 getPayinfo:function(){

  var self=this;

  wx.request({

   url: 'https://xxxxxx/pay/xcxpay',//后台接口地址

   data: {

    'wxcode': self.data.payTempcode,

    'ordercode': self.data.ordercode,

    'gid': x,

   },

   method: 'POST',

   success: function (res) {

    console.log(res.data.data.payinfo);

    self.setData({

     payParam: res.data.data.payinfo

    });

    console.log('支付的订单====',self.data.ordercode);

    // 调起支付

    wx.requestPayment({

     'timeStamp': self.data.payParam.time,//为字符串,否则报错

     'nonceStr': self.data.payParam.nonce_str,

     'package': `prepay_id=${self.data.payParam.prepay_id}`,

     'signType': 'MD5',

     'paySign': self.data.payParam.paysign,

     'success': function (res) {

      console.log(res)

      console.log('=======支付成功==========');

      wx.navigateTo({

       url: `/pages/lnyc2019/detail?ordercode=${self.data.ordercode}`

      })

     },

     'fail': function (res) {

      console.log(res)

      console.log('=======支付失败==========')

      wx.navigateBack({

       delta: 1//返回1个页面

      })

     }

    })

   }

  })

 }
})

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
javascript 鼠标拖动图标技术
Feb 07 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
Dec 12 Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
Jan 25 Javascript
js获取浏览器基本信息大全
Nov 27 Javascript
Augularjs-起步详解
Jul 08 Javascript
原生js轮播(仿慕课网)
Feb 15 Javascript
Angular 2父子组件之间共享服务通信的实现
Jul 04 Javascript
canvas基础绘制-绚丽倒计时的实例
Sep 17 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
May 13 Javascript
详解React之父子组件传递和其它一些要点
Jun 25 Javascript
vue.js click点击事件获取当前元素对象的操作
Aug 07 Javascript
JavaScript读取本地文件常用方法流程解析
Oct 12 Javascript
在微信小程序中使用vant的方法
Jun 07 #Javascript
微信小程序实现折线图的示例代码
Jun 07 #Javascript
微信小程序如何刷新当前界面的实现方法
Jun 07 #Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
Jun 07 #Javascript
vue集成kindeditor富文本的实现示例代码
Jun 07 #Javascript
Vue使用Proxy监听所有接口状态的方法实现
Jun 07 #Javascript
你了解vue3.0响应式数据怎么实现吗
Jun 07 #Javascript
You might like
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
angular.bind使用心得
2015/10/26 Javascript
Node.js中使用socket创建私聊和公聊聊天室
2015/11/19 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
Vue.directive自定义指令的使用详解
2017/03/10 Javascript
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
JavaScript+H5实现微信摇一摇功能
2018/05/23 Javascript
vue 使用html2canvas将DOM转化为图片的方法
2018/09/11 Javascript
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
javascript json对象小技巧之键名作为变量用法分析
2019/11/11 Javascript
Python中为什么要用self探讨
2015/04/14 Python
python过滤字符串中不属于指定集合中字符的类实例
2015/06/30 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
Python验证文件是否可读写代码分享
2017/12/11 Python
Python实现全排列的打印
2018/08/18 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
Python 从attribute到property详解
2020/03/05 Python
pandas数据拼接的实现示例
2020/04/16 Python
手把手教你配置JupyterLab 环境的实现
2021/02/02 Python
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
欧姆龙医疗欧洲有限公司:Omron Healthcare Europe B.V
2020/06/13 全球购物
铭立家具面试题
2012/12/06 面试题
管理心得体会
2013/12/28 职场文书
生产车间主管岗位职责
2013/12/28 职场文书
会计工作心得体会
2014/01/13 职场文书
中班开学寄语
2014/04/04 职场文书
摄影专业毕业生求职信
2014/08/05 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
前台接待员岗位职责
2015/04/15 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python