微信小程序与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 控制弹出窗口
Apr 10 Javascript
javascript &amp;&amp;和||运算法的另类使用技巧
Nov 28 Javascript
两种WEB下的模态对话框 (asp.net或js的分别实现)
Dec 02 Javascript
javascript forEach通用循环遍历方法
Oct 11 Javascript
js保存当前路径(cookies记录)
Dec 14 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
Oct 29 Javascript
JS实现动画兼容性的transition和transform实例分析
Dec 13 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
Mar 02 Javascript
JS实现简单的点赞与踩功能示例
Dec 05 Javascript
vue+express+jwt持久化登录的方法
Jun 14 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
Mar 08 Javascript
javascript实现前端分页功能
Nov 26 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运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
PHP 解决session死锁的方法
2013/06/20 PHP
php中通过curl检测页面是否被百度收录
2013/09/27 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
javascript验证只能输入数字和一个小数点示例
2013/10/21 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
ExtJS4中的requires使用方法示例介绍
2013/12/03 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
2015/02/25 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
bootstrap table实例详解
2017/01/06 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
2017/01/11 Javascript
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
详解react native页面间传递数据的几种方式
2018/11/07 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
将Dataframe数据转化为ndarry数据的方法
2018/06/28 Python
Python短信轰炸的代码
2020/03/25 Python
python中tkinter窗口位置\坐标\大小等实现示例
2020/07/09 Python
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
空指针到底是什么
2012/08/07 面试题
写好自荐信的技巧
2013/11/08 职场文书
计算机学生求职信范文
2014/01/30 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
体育运动会广播稿
2014/10/05 职场文书
求职简历自我评价范文
2015/03/10 职场文书
手写实现JS中的new
2021/11/07 Javascript
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android