微信小程序与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中DOM的基本属性
Feb 26 Javascript
javascript实现3D切换焦点图
Oct 16 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
Mar 29 Javascript
全面解析DOM操作和jQuery实现选项移动操作代码分享
Jun 07 Javascript
JS使用JSON作为参数实例分析
Jun 23 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
Dec 07 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
Jul 21 Javascript
vue使用自定义icon图标的方法
May 14 Javascript
Vue组件通信的几种实现方法
Apr 25 Javascript
小程序登录/注册页面设计的实现代码
May 24 Javascript
js实现表格单列按字母排序
Aug 12 Javascript
js实现星星海特效的示例
Sep 28 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
php+js实现百度地图多点标注的方法
2016/11/30 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
2006/12/23 Javascript
javascript 获取网页参数系统
2008/07/19 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
2013/11/18 NodeJs
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
JS拖动鼠标画出方框实现鼠标选区的方法
2015/08/05 Javascript
原生javascript实现匀速运动动画效果
2016/02/26 Javascript
JS中使用DOM来控制HTML元素
2016/07/31 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
jquery操作select常见方法大全【7种情况】
2019/05/28 jQuery
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
Python字符串中查找子串小技巧
2015/04/10 Python
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
Python面向对象基础入门之设置对象属性
2018/12/11 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
使用Python做定时任务及时了解互联网动态
2019/05/15 Python
详解python解压压缩包的五种方法
2019/07/05 Python
python字符串的拼接方法总结
2019/11/18 Python
Tensorflow获取张量Tensor的具体维数实例
2020/01/19 Python
Python内建序列通用操作6种实现方法
2020/03/26 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
宝拉珍选官方旗舰店:2%水杨酸精华液,收缩毛孔粗大和祛痘
2018/07/01 全球购物
python re模块和正则表达式
2021/03/24 Python
连锁超市项目计划书
2014/09/15 职场文书
原型和原型链 prototype和proto的区别详情
2021/11/02 Javascript
ant design vue的form表单取值方法
2022/06/01 Vue.js