微信小程序与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 基础问答三
Dec 03 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
Sep 21 Javascript
jQuery Tools tab使用介绍
Jul 14 Javascript
原始XMLHttpRequest方法详情回顾
Nov 28 Javascript
javascript的alert box在java中如何显示多行
May 18 Javascript
jQuery实现首页顶部可伸缩广告特效代码
Apr 15 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
Jan 20 Javascript
js实现产品缩略图效果
Mar 10 Javascript
详解vue2 $watch要注意的问题
Sep 08 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
Jan 27 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
Mar 19 jQuery
iview实现动态表单和自定义验证时间段重叠
Jan 10 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
网站防止被刷票的一些思路与方法
2015/01/08 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
2016/04/02 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
2017/04/07 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
随鼠标移动的时钟非常漂亮遗憾的是只支持IE
2014/08/12 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
2016/06/28 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
jQuery上传多张图片带进度条样式(DEMO)
2017/03/02 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
2019/05/13 Javascript
在小程序中推送模板消息的实现方法
2019/07/22 Javascript
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
[54:17]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第二场 1月10日
2021/03/11 DOTA
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
pandas 条件搜索返回列表的方法
2018/10/30 Python
python django下载大的csv文件实现方法分析
2019/07/19 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
python代码能做成软件吗
2020/07/24 Python
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
公务员转正考察材料
2014/02/07 职场文书
上班离岗检讨书
2014/09/10 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
2014年法院工作总结
2014/11/24 职场文书
大班下学期个人总结
2015/02/13 职场文书
2015年专项整治工作总结
2015/04/03 职场文书
2015年禁毒工作总结
2015/04/30 职场文书
JS Object构造函数之Object.freeze
2021/04/28 Javascript