微信小程序与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事件实现代码
Mar 12 Javascript
js中的值类型和引用类型小结 文字说明与实例
Dec 12 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
Jun 03 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
Aug 25 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
Dec 17 Javascript
解析javascript图片懒加载与预加载的分析总结
Oct 27 Javascript
详解Node.js:events事件模块
Nov 24 Javascript
js实现倒计时效果(小于10补零)
Mar 08 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
Feb 09 Javascript
Vue Element UI + OSS实现上传文件功能
Jul 31 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
Jul 15 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
Jul 18 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
一个显示天气预报的程序
2006/10/09 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
js 中的switch表达式使用示例
2020/06/03 Javascript
jQuery ajax dataType值为text json探索分享
2013/09/23 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
浅谈javascript回调函数
2014/12/07 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
2015/04/27 Javascript
JS控制按钮10秒钟后可用的方法
2015/12/22 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
AngularJS入门教程之更多模板详解
2016/08/19 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
[02:47]3.19DOTA2发布会 国服成长历程回顾
2014/03/25 DOTA
[02:49]DOTA2完美大师赛首日观众采访
2017/11/23 DOTA
Python实现登录人人网并抓取新鲜事的方法
2015/05/11 Python
Python数组定义方法
2016/04/13 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
2018/02/21 Python
Python3.6使用tesseract-ocr的正确方法
2018/10/17 Python
Python计算不规则图形面积算法实现解析
2019/11/22 Python
基于python实现文件加密功能
2020/01/06 Python
python 装饰器的基本使用
2021/01/13 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
马来西亚综合购物网站:Lazada马来西亚
2018/06/05 全球购物
制药工程专业应届生求职信
2013/09/24 职场文书
营销总经理岗位职责
2014/02/02 职场文书
大学生会计职业生涯规划范文
2014/02/28 职场文书
银行主办会计岗位职责
2014/08/13 职场文书
八一建军节主持词
2015/07/01 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书
导游词之江南园林狮子林
2019/09/16 职场文书