微信小程序与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 相关文章推荐
js动态添加删除,后台取数据(示例代码)
Nov 25 Javascript
JS和函数式语言的三特性
Mar 05 Javascript
js中的for如何实现foreach中的遍历
May 31 Javascript
js实现兼容IE、Firefox的图片缩放代码
Dec 08 Javascript
javascript检测移动设备横竖屏
May 21 Javascript
使用JSON作为函数的参数的优缺点
Oct 27 Javascript
jquery 校验中国身份证号码实例详解
Apr 11 jQuery
VUE使用vuex解决模块间传值问题的方法
Jun 01 Javascript
Node.js自定义实现文件路由功能
Sep 22 Javascript
AngularJS 控制器 controller的详解
Oct 17 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
Jul 05 Javascript
JS新手入门数组处理的实用方法汇总
Apr 07 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之第五天
2006/10/09 PHP
php判断手机访问还是电脑访问示例分享
2014/01/20 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
2016/11/05 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
2019/10/11 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
Js组件的一些写法
2010/09/10 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
js中AppendChild与insertBefore的用法详细解析
2013/12/16 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
jquery easyui dataGrid动态改变排序字段名的方法
2017/03/02 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
js仿360开机效果
2019/12/26 Javascript
Vue实现剪贴板复制功能
2019/12/31 Javascript
[01:57]2016完美“圣”典风云人物:国士无双专访
2016/12/04 DOTA
发布你的Python模块详解
2016/09/15 Python
Python编程实现使用线性回归预测数据
2017/12/07 Python
Python反射的用法实例分析
2018/02/11 Python
python3.x上post发送json数据
2018/03/04 Python
对python程序内存泄漏调试的记录
2018/06/11 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
用纯css3和html制作泡沫对话框实现代码
2013/03/21 HTML / CSS
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
保洁主管岗位职责
2013/11/20 职场文书
2014年房产销售工作总结
2014/12/08 职场文书
全国爱牙日活动总结
2015/02/05 职场文书
从事会计工作年限证明
2015/06/23 职场文书
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android