微信小程序与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 相关文章推荐
Track Image Loading效果代码分析
Aug 13 Javascript
JavaScript asp.net 获取当前超链接中的文本
Apr 14 Javascript
用JavaScript实现类似于ListBox功能示例代码
Mar 09 Javascript
JavaScript极简入门教程(一):基础篇
Oct 25 Javascript
js窗口关闭提示信息(兼容IE和firefox)
Oct 23 Javascript
jQuery常用知识点总结以及平时封装常用函数
Feb 23 Javascript
ajax跨域调用webservice的实现代码
May 09 Javascript
AngularJS基础 ng-mouseover 指令简单示例
Aug 02 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
Dec 13 Javascript
js抽奖转盘实现方法分析
May 16 Javascript
three.js 将图片马赛克化的示例代码
Jul 31 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
Oct 22 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学习之 数组声明
2011/06/09 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
2013/06/03 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
2019/12/02 PHP
JavaScript代码复用模式实例分析
2012/12/02 Javascript
JavaScript遍历table表格中的某行某列并打印其值
2014/07/08 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
jquery 判断是否支持Placeholder属性的方法
2017/02/07 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
vue实现验证码按钮倒计时功能
2018/04/10 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
2015/03/19 Python
详解Python3.1版本带来的核心变化
2015/04/07 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
python3.4爬虫demo
2019/01/22 Python
pandas实现to_sql将DataFrame保存到数据库中
2019/07/03 Python
python实现字符串完美拆分split()的方法
2019/07/16 Python
Python logging设置和logger解析
2019/08/28 Python
基于python traceback实现异常的获取与处理
2019/12/13 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
python图片合成的示例
2020/11/09 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
摩顿布朗英国官方网上商店:奢华沐浴、身体和头发护理
2016/10/29 全球购物
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
美国林业供应商:Forestry Suppliers
2019/05/01 全球购物
几个常见的消息中间件(MOM)
2014/01/08 面试题
高中生学习生活的自我评价
2013/10/09 职场文书
保护地球的标语
2014/06/17 职场文书
先进员工获奖感言
2014/08/14 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
大学生个人学年总结
2015/02/15 职场文书
道德与公民自我评价
2015/03/09 职场文书
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python