从去年11月进公司到现在,算下来总共对接过三次微信小程序支付接口。
现就前端而言,总结一下开发微信小程序支付功能的流程。
1.调用预支付接口( openiduserid这两个必传,以及一些业务参数在这个时候也传到后台),得到交易码out_trade_no 和预支付码prepay_id
2.发送预支付码换回微信支付请求的系列参数:

    timeStamp: res.timeStamp,nonceStr: res.nonceStr,package: res.package,signType: 'MD5',paySign: res.sign,

3.调用微信支付接口

 wx.requestPayment({timeStamp: res.timeStamp,nonceStr: res.nonceStr,package: res.package,signType: 'MD5',paySign: res.sign,success: function (paymentRes) {console.log(paymentRes)if (paymentRes.errMsg == "requestPayment:ok") {  // 调用支付成功console.log("支付成功!")obj.applyAdviser();//业务函数,插入支付记录到数据库}},fail: function (paymentRes) {if (paymentRes.errMsg == "requestPayment:fail cancel") {appcom.showMsgFun(obj, "您取消了支付");console.log("您取消了支付")}}})

4.在success回调函数里执行业务函数

完整代码如下,部分参数根据自己业务调整

       var openid = wx.getStorageSync('openid');var userid = wx.getStorageSync('userInfo').uid;// 调用支付接口发起预支付appcom.reqFun(this, '', 'prepay', { //第1步:调用预支付接口,获取预支付码和交易码amount: this.data.amount,openid: openid, //微信openiduserid: userid,//用户idtype: 1,relation_id: this.data.lawyerId}, function (res, obj) {if (res.out_trade_no == 'error' || res.prepay_id == 'error') {console.log("res.out_trade_no或prepay_id参数错误");appcom.showMsgFun(obj, "支付功能暂时无法使用");setTimeout(function () {//跳转界面appcom.goLink('../index/index');}, 2000);return;}var prepayId = res.prepay_id;var outTradeNo = res.out_trade_no;appcom.reqFun(obj, '', 'gensig', {//第2步:发送预支付码,换回时间戳、签名等prepay_id: prepayId,//预支付码}, function (res, obj) {console.log(res)wx.requestPayment({//第3步:调用微信官方提供的支付接口timeStamp: res.timeStamp,nonceStr: res.nonceStr,package: res.package,signType: 'MD5',paySign: res.sign,success: function (paymentRes) {console.log(paymentRes)if (paymentRes.errMsg == "requestPayment:ok") {  // 调用支付成功console.log("支付成功!")obj.applyAdviser();第4步:业务函数,插入支付记录到数据库}},fail: function (paymentRes) {if (paymentRes.errMsg == "requestPayment:fail cancel") {appcom.showMsgFun(obj, "您取消了支付");console.log("您取消了支付")}}})}, '', 'GET', '')}, '', 'GET', '')

注:
扩展:未完成订单
当用户取消支付的时候,其实订单已经生成,此时将交易码保存,下一次传给后台继续此订单的支付。

微信小程序支付接口对接总结相关推荐

  1. 微信小程序支付-java对接微信

    一共是两个方法: 一个方法后台生成预支付订单,得到预支付交易会话标识prepay_id,传给前端,让前端调起小程序支付: 一个是支付回调 目录 一.生成预支付订单 注意: 二. 支付回调 一.生成预支 ...

  2. 关于使用nodejs搭建微信小程序支付接口

    前言 前段时间在开发一个微信小程序的时候需要用到支付功能,我就去看了下微信支付的官方文档,好家伙,微信官方只提供了java.php还有Go语言的sdk.PHP我会点吧,但又不是很会,做为一个菜鸡前端, ...

  3. 微信小程序支付接口报错:appid和openid不匹配

    一.接口地址 二.接口几个字段讲解 三.报错的原因 四.解决方法 一.接口地址 地址在 -> 微信官方文档 -> 微信支付 -> 小程序支付 -> 统一下单 对比 V2-旧版, ...

  4. 微信小程序支付接口的使用

    使用微信支付首先得有两点: 1.微信小程序需要用企业身份进行注册. 2.微信小程序绑定商户号,并且商户号与小程序进行绑定. 接下来进行开发: 我们基于云开发搭建支付接口: 点击与开发,获取环境ID 接 ...

  5. SpringBoot 搭建微信小程序支付(JSAPI) 纯后端

    一.支付流程 PS:做这个之前  ,先去下载官方的SDK吧  https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 1.首先要拿到 ...

  6. java实现微信小程序支付功能

    微信支付-开发者文档: https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_1.shtml 生成订单 /*** 生成订单*/@User@A ...

  7. SpringBoot对接微信小程序支付功能开发(一,下单功能)

    1,接入前准备: 接入模式选择直连模式: 申请小程序,得到APPID,并开通微信支付: 申请微信商户号,得到mchid,并绑定APPID: 配置商户API key,下载并配置商户证书,根据微信官方文档 ...

  8. SpringBoot对接微信小程序支付功能开发(二,支付回调功能)

    接着上一篇: SpringBoot对接微信小程序支付功能开发(一,下单功能) 在上一篇下单功能中我们有传支付结果回调地址. 下面是回调接口实现 package com.office.miniapp.c ...

  9. 微信小程序支付V3版本接口实现

    一.说明和前期准备(小程序的V3版本) 特别说明:遇到 java.security.InvalidKeyException: Illegal key size ******* getValidator ...

  10. python个人微信支付接口_Python实现微信小程序支付功能

    正文 由于最近自己在做小程序的支付,就在这里简单介绍一下讲一下用python做小程序支付这个流程.当然在进行开发之前还是建议读一下具体的流程,清楚支付的过程. 1.支付交互流程 2.获取openid( ...

最新文章

  1. YSlow使用指南_最新2.0使用指南中文版
  2. 简单入门循环神经网络RNN:时间序列数据的首选神经网络
  3. .net 学习 报错 Invalid temp directory in chart handler configuration [c:\TempImageFiles\]
  4. 安卓拒绝服务漏洞分析及漏洞检测
  5. qt设置行编辑器不可编辑
  6. 读书:《从零到百亿-Facebook创业故事》
  7. SpringBoot之Interceptor拦截器注入使用
  8. 服务器能用usb pe安装win7系统,另一种U盘(支持winPE,可以安装win7)安装ubuntu系统的方法...
  9. 在线txt转epub如何转换
  10. Norms for Vectors and Matrices
  11. 如何低成本快速积累用户,分享4种无脑式操作
  12. 通过PS把普通数码照片制作成素描照片
  13. 空腹不能吃的东西,可不仅仅是香蕉和柿子
  14. 网线、WiFi、路由器的介绍选择
  15. 5G FWA市场一跃而上,四信多款5G终端赋能FWA典型应用
  16. 尚硅谷 -夏磊高级8个sql-建表语句
  17. Vue3组件化开发(二)
  18. java局部变量赋值给全局变量,干货整理
  19. java sql进销存_[内附完整源码和文档] 基于Java和Sql Server 2008的陶瓷工厂进销存管理系统...
  20. [历年IT笔试题]暴风影音笔试题集锦

热门文章

  1. 黑盒测试VS白盒测试
  2. 对称多项式的牛顿公式即等幂和用初等多项式表示和证明
  3. ps入门第10天_ps色彩平衡ps色相饱和度
  4. 运算放大器---输入偏置电流(IB)
  5. 同样磁盘数,不同raid级别的随机IO性能差异对比
  6. iphone屏幕镜像如何全屏_苹果手机投到电视上能全屏嘛 具体怎样投屏呢
  7. Tips:PowerDesigner16.5 图表显示Code以及 Columns新增Commet显示
  8. 地平线开源网站源码Deepsoon v1.2.3
  9. DNS云学堂 | 行车不规范亲人两行泪,NS不规范运维两行泪
  10. kube-scheduler源码分析(三)之 scheduleOne