微信小程序与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 相关文章推荐
我遇到的参数传递中 双引号单引号嵌套问题
Feb 11 Javascript
Ajax执行顺序流程及回调问题分析
Dec 10 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
Mar 11 Javascript
javascript获取flash版本号的方法
Nov 20 Javascript
推荐一款jQuery插件模板
Jan 09 Javascript
深入浅析JavaScript中prototype和proto的关系
Nov 15 Javascript
老生常谈onBlur事件与onfocus事件(js)
Jul 09 Javascript
Vue自定义指令介绍(2)
Dec 08 Javascript
微信小程序 wx.uploadFile无法上传解决办法
Dec 14 Javascript
angular和BootStrap3实现购物车功能
Jan 25 Javascript
微信小程序 聊天室简单实现
Apr 19 Javascript
Nest.js散列与加密实例详解
Feb 24 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
老照片 - 几十年前的收音机与人
2021/03/02 无线电
thinkPHP下ueditor的使用方法详解
2015/12/26 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
25个非常棒的jQuery滑块插件和教程小结
2011/09/02 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
2016/08/25 Javascript
angular源码学习第一篇 setupModuleLoader方法
2016/10/20 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
2017/07/21 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
Python爬取附近餐馆信息代码示例
2017/12/09 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
Python并行分布式框架Celery详解
2018/10/15 Python
windows下numpy下载与安装图文教程
2019/04/02 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
详解Python修复遥感影像条带的两种方式
2020/02/23 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
Maxpeedingrods美国:高性能汽车零件
2020/02/14 全球购物
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
小学优秀辅导员事迹材料
2014/05/11 职场文书
班级出游活动计划书
2014/08/15 职场文书
2014年学校国庆主题活动方案
2014/09/16 职场文书
2014年党员个人工作总结
2014/12/02 职场文书
2015年服务员工作总结
2015/04/08 职场文书
朋友离别感言
2015/08/04 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python
Python绘制地图神器folium的新人入门指南
2021/05/23 Python
vue3.0 数字翻牌组件的使用方法详解
2022/04/20 Vue.js