微信小程序与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 相关文章推荐
Pro JavaScript Techniques学习笔记
Dec 28 Javascript
JQuery里面的几种选择器 查找满足条件的元素$(&quot;#控件ID&quot;)
Aug 23 Javascript
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
Feb 27 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
Nov 14 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
Jun 03 Javascript
获取JavaScript异步函数的返回值
Dec 21 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
Apr 16 Javascript
protractor的安装与基本使用教程
Jul 07 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
Dec 05 Javascript
微信小程序实现两个页面传值的方法分析
Dec 11 Javascript
微信小程序实现手势滑动效果
Aug 26 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
Nov 16 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之static静态属性与静态方法实例分析
2015/07/30 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
2017/11/08 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
详解laravel安装使用Passport(Api认证)
2018/07/27 PHP
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
2011/11/30 Javascript
JS的Document属性和方法小结
2013/09/17 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
使用D3.js制作图表详解
2017/08/13 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
Python实现的HTTP并发测试完整示例
2020/04/23 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2018/05/04 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
Python魔术方法专题
2020/06/19 Python
Node.js 和 Python之间该选择哪个?
2020/08/05 Python
Python 实现集合Set的示例
2020/12/21 Python
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
描述JSP和Servlet的区别、共同点、各自应用的范围
2012/10/02 面试题
大学学习生活感言
2014/01/18 职场文书
卫生安全检查制度
2014/02/04 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
自我推荐信格式模板
2015/03/24 职场文书
中小企业员工手册范本
2015/05/14 职场文书
化工厂员工工作总结
2015/10/15 职场文书
python 下载文件的几种方式分享
2021/04/07 Python
Python实现视频中添加音频工具详解
2021/12/06 Python
我收到了德劲DE1107
2022/04/05 无线电
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android