概述

最近这段时间接了一个蓝牙车位锁的项目;项目中包括APP和微信小程序;其中涉及在线支付功能,这里记录下微信小程序在线支付完功能

小程序在线支付流程

1.微信小程序登陆微信获取code
调用接口wx.login(OBJECT)
// 登录
    wx.login({success: res => {wx.setStorageSync('logoRes', res)// 发送 res.code 到后台换取 openId, sessionKey, unionId
       }})

程序启动进行登录,把登录获取的信息缓存

2.微信小程序把第一步获取的code提交给第三方服务器
第三方接口通过微信小程序提交的code到微信服务器交换session_key 和 openid  这是微信获取 session_key 和 openid 的接口 https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
参见文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html#wxloginobject
3.小程序调用第三方程序下单接口
第三方程序接口做一些处理后调用微信服务器统一下单接口https://api.mch.weixin.qq.com/pay/unifiedorder   并且返回   prepay_id
参考资料: https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1
第三方服务器通过把第二部和第三步的接口获取到prepay_id
4.小程序通过第三步获取到prepay_id开始支付 
小程序调用接口wx.requestPayment(OBJECT)
参考文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-pay.html#wxrequestpaymentobject
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7&index=3
              util.httpClient.httpGet("/parklock/manager/android/ble2/pay/xcx-pay-apply-by-code!loadopenid.do", {lockerId: 20001,code: value.code}, function (data) {                    //ASCII码从小到大排序(字典序)var signA = "appId=" + appid + "&nonceStr=" + data.nonce_str + "&package=prepay_id=" + data.prepayId + "&signType=MD5&timeStamp=" + data.timeStamp;          //拼接上商户keyvar signB = signA + "&key=" + "uber7390fjeiafn84JFIEJFRE883FAKf";          //排序后进行md5var sign = MD5Util.hexMD5(signB).toUpperCase();wx.requestPayment({'timeStamp': data.timeStamp+"",'nonceStr': data.nonce_str,'package': 'prepay_id=' + data.prepayId,'signType': data.signType,'paySign': sign,'success': function (res) {console.log("支付成功")wx.navigateTo({url: '../unlock/unlock?code=789',})},'fail': function (res) {console.log("支付失败",res)}})})

欢迎关注微信公众号【千里授渔】免费获取教学视频。

QQ507545336

转载于:https://www.cnblogs.com/qlsy/p/wchat_pay.html

微信小程序开发之微信支付相关推荐

  1. 微信小程序开发(一) 微信登录流程

    文/YXJ 地址:http://blog.csdn.net/sk719887916/article/details/53761107 最近在研究微信小程序开发,非常有意思的一个东西.花了一点时间写了一 ...

  2. 微信小程序开发实现微信支付

    微信支付是时下最流行的交易支付方法之一,潜移默化推动着无现今社会的变革.小程序作为微信上的轻应用,同时也开放微信支付的接口,可以通过转账,扫二维码支付.要完成一次具体的订单支付需要完整的支付流程,具体 ...

  3. 微信小程序开发(Demo),微信公众号开发

    > 微信小程序  微信小程序,新的流量入口.  在微信的开发工具上编译小程序的代码.微信web开发者工具. sublime 和 webstorm.  微信小程序开发工具0.7.0版本(下载链接h ...

  4. 微信小程序开发:微信小程序生命周期总结

    前言 在微信小程序开发中,关于微信小程序API的使用是必备技能,但是关于微信小程序的生命周期也是首先要了解和掌握的知识点.尤其是现在的前端开发领域,关于前端的各种框架和技术都要会,而且微信小程序的语法 ...

  5. 微信小程序开发教程||微信小程序 小程序简介||微信小程序 开始||微信小程序 小程序代码构成

    微信小程序 小程序简介 小程序简介 小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 小程序技术发展史 ​小程序并非凭空冒出来的一个概念.当微信中的 ...

  6. 微信小程序开发|基于微信小程序的健身陪练系统的设计与实现

    作者主页:编程指南针 作者简介:Java领域优质创作者.CSDN博客专家 .CSDN内容合伙人.掘金特邀作者.阿里云博客专家.51CTO特邀作者.多年架构师设计经验.腾讯课堂常驻讲师 主要内容:Jav ...

  7. 微信小程序开发教程-微信小程序入门

    转自http://blog.jobbole.com/106049/ 微信应用号(小程序,「应用号」的新称呼)终于来了! 目前还处于内测阶段,微信只邀请了部分企业参与封测.想必大家都关心「小程序」的最终 ...

  8. 【零基础】学会微信小程序开发-上手微信开发者工具

    本篇文章,你将学会如何使用微信开发者工具开发微信小程序 1)首先,我们访问微信开发者工具下载地址,如下图所示,我们下载稳定版本,按你系统去选择Windows 或者macOS,我这里因为是Windows ...

  9. t微信小程序开发-获取微信运动步数

    官方API https://mp.weixin.qq.com/debug/wxadoc/dev/api/we-run.html#wxgetwerundataobject 步骤 最近做一个微信小程序需用 ...

最新文章

  1. Linux网络环境配置
  2. 一个AI设计的思考过程(旧文)
  3. OpenReports中文支持方案
  4. Windows上编译libpng
  5. 程序员需培养企业家式的能力
  6. sco linux crontab重启,crontab 详解
  7. java如何实现tcp传输图像_如何在java中实现TCP服务器和TCP客户端传输文件
  8. gitlab批量新增用户
  9. 单一职责原则 (Single Responsibility Principle,SRP)
  10. 苹果pns推送和唤醒
  11. Fragment中获取Activity的Context
  12. 密码学基础(五):常见名词解释和密码学标准
  13. 【笔记】【数字逻辑】可能是最详细的二进制、八进制、十进制、十六进制进制转换笔记
  14. 树莓派配置文件 config.txt - HDMI 热插拔
  15. Linux gzip压缩输出
  16. 通用视觉技术体系“书生”(INTERN)由七大模块组成
  17. 东南亚跨境一件代发好用的Shopee货代系统—星卓越
  18. 【CentOS7联网】保姆级手把手解决CentOS7的上网问题
  19. sqlserver 链接服务器 sql
  20. Android eclipse 程序调试

热门文章

  1. python接收邮件g_Python接收Gmail新邮件并发送到gtalk的方法
  2. 获取了网站源码有什么用_角点科技:用 Wordpress 建设企业网站需要准备些什么...
  3. php如何做浏览量,php+ajax实现的点击浏览量加1
  4. java字符串替换标点符号_替换/忽略字符串java中的标点符号
  5. 解决GPU模型训练的随机性
  6. php gd库画线,[PHP] GD库(十)绘制线段与圆弧 imageline、imagesetstyle 与 imagearc 函数...
  7. 动态规划之背包模型及其扩展应用
  8. c语言建立线性表(顺序储存,链式储存,循环,双向)全
  9. qt开发游戏必须要了解的数据类
  10. mysql将一个字符转换成多个字符_将分隔的字符串转换为mysql中的多个值