文章目录

  • 一、业务流程图
  • 二、微信支付流程
  • 三、签名和验签
  • 总结

一、业务流程图

先盗一张微信官方文档的流程图,嘿嘿

二、微信支付流程

  • 导入依赖
<!--微信支付-->
<dependency><groupId>com.github.wechatpay-apiv3</groupId><artifactId>wechatpay-apache-httpclient</artifactId><version>0.2.2</version>
</dependency>
  • 统一下单:调用统一下单接口,返回一个预支付交易会话标识
  • 调起微信支付:微信小程序端根据预支付标识(当然还有小程序id、随机字符串等其他参数,这些参数最好由后端统一返回,详情见具体代码)调起微信支付
  • 微信支付操作:调起微信支付之后就可以做输入密码、确认支付等操作了
  • 回调接口中做业务逻辑操作:在统一下单的时候需要给微信服务端提供一个回调接口,微信服务端会通过这个接口将支付状态返回给我们,我们通过这个状态做具体的业务业务逻辑操作,比如将微信支付状态更新为支付成功等
  • 手动获取微信支付状态:如果因为某些原因导致微信服务端未能及时调用回调接口,我们可以去手动拉去微信支付状态,以保证订单状态的准确性。

三、签名和验签

调用微信支付接口都需要做签名验证,将拼接好的签名放进请求头中;微信在调用我们的回调接口时候也会有签名,我们也需要做相应的验签,以保证我们的回调接口是微信服务端调用。具体签名拼接方式以及验签方式下边代码会有具体实现,并且如果使用wechatpay-apache-httpclien也可以不用做签名和验签,sdk里会帮我们完成这些操作。具体的实现方式也可以看看sdk中的具体实现https://github.com/wechatpay-apiv3/wechatpay-apache-httpclient
但是,我还是想说一说拼接签名时候踩过的坑。

  • 所有接口需要的参数名以及参数类型一定要完全按照api文档去定义;否则如果与验签有关的参数会提示签名错误,与验签无关的参数统一下单接口正常,但是
    小程序端在用预支付编码拉起微信支付的时候输入完密码就会一致加载 最后提示系统繁忙。

    切记!切记!切记!切记!切记!切记!切记!
    切记!切记!切记!切记!切记!切记!切记!
    切记!切记!切记!切记!切记!切记!切记!
  • 构造签名串时候,行尾以 \n结束,包括最后一行。如果参数本身以\n结束或者请求主题为空,也需要附加一个\n。
  • URL部分是绝对路径,比如你要调用获取微信支付平台证书接口,路径必须是/v3/certificates,而不能是https://api.mch.weixin.qq.com/v3/certificates

总结

第一次发博客,写的不好,请大家多多包涵,并且本人也是一只菜鸡,所以如果有什么不对的地方欢迎多多指教,在这里我也要感谢微信昵称为Shing的大佬(由于怕微信账号公布出来之后大佬被骚扰,这里就用昵称了),在我做微信支付期间给我很多帮助。最后附上微信支付代码的git地址https://gitee.com/zk_first_gitee/wechat-pay-v3.git

微信小程序支付V3(Java版)相关推荐

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

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

  2. 微信小程序支付(java后端)

    微信支付文档传送门:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3 1.开发工具: idea+springclou ...

  3. 微信小程序商城(Java版)

    技术选型 1 后端使用技术 1.1 springframework4.3.7.RELEASE 1.2 mybatis3.4.1 1.3 shiro1.3.2 1.4 servlet3.1.0 1.5 ...

  4. 微信支付V3 小程序支付API Java版

    本文目的:快速接通微信支付V3 无需关注细节,实现支付功能,修改配置即可调用 文章目录 接入准备 微信支付流程整理(小程序版) 一.导入微信支付扩展包 二.微信支付工具类 1.签名工具类 2.微信支付 ...

  5. JAVA程序红包_微信小程序红包(Java版)

    文章更新说明: 1.小程序源码,特简单,仅仅一个按钮点击时间,里面传递的package等参数是服务端请求返回参数,贴出来的就是核心,源码地址暂无法访问.(2020-03-11) 2.文章留言可当日回复 ...

  6. 微信小程序支付(基于Java实现微信JSAPI支付):支付,提现,退款

    添加WXpayCommon类用以具体实现相关功能 1 package com.karat.cn.wxCommon; 2 3 import java.io.IOException; 4 import j ...

  7. 微信小程序支付流程(Java后端)

    微信小程序支付(Java后端) 一.小程序支付的交互图如下 按住ctrl点击 微信支付平台开发文档 二.准备工作 第一步:在pom文件中导入微信支付SDK 有可能自动下载不了,可以到微信支付平台下载手 ...

  8. 微信小程序商城 (后台JAVA)

    微信小程序商城(Java版) 技术选型 1 后端使用技术 1.1 springframework4.3.7.RELEASE 1.2 mybatis3.4.1 1.3 shiro1.3.2 1.4 se ...

  9. 微信支付,小程序支付V3

    简介: 微信支付的文档就不吐槽了,记录下微信支付,小程序支付的实现 开发前准备 账号申请,公钥私钥啥的去官网开发指引-小程序支付 | 微信支付商户平台文档中心 (qq.com) 核心代码 下单及拉起支 ...

  10. 微信小程序支付java服务端集成采坑总结

    先上个微信小程序支付官方文档地址: https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_7&index=8 重点看 ...

最新文章

  1. 强化学习大规模应用还远吗?Youtube推荐已强势上线
  2. Java按钮哪个方法响应_当用户点击按钮时,Java程序采用什么方法来响应?()
  3. php文件在网页,php文件读取到网页中
  4. java自动雨刷系统,安装雨量传感器实现自动大灯/自动雨刷(详细方法)多图!!
  5. asp.net访问sqlserver获取数据、IsPostBack属性和VS可视化调试的概念
  6. redis客户端-服务端协议(RESP协议)
  7. 汉字与区位码(2) - 分析
  8. Yahei Consolas Hybrid------解决eclipse中文汉字太小问题
  9. [文摘20071127]推销场上的十种失败的推销员
  10. springboot输出日志到文件配置
  11. 孙玄:“玄姐”,特立独行的架构师
  12. linux运行python乱码_linux下python中文乱码解决方案
  13. t分布 u分布 卡方分布_三大抽样分布:卡方分布,t分布和F分布的简单理解
  14. 分享最近发现的几个实用 chrome/edge 扩展和油猴脚本
  15. 36岁老码农现身说法
  16. 张小龙-年薪近3亿的微信之父,他是如何做到的?
  17. TeamViewer远程服务器管理工具使用哪些端口
  18. PPT 优质模板(所有的风格不low)
  19. 青年歌手姚贝娜乳腺癌复发去世
  20. Android 状态栏沉浸式效果

热门文章

  1. Android自定义组件之日历控件-精美日历实现(内容、样式可扩展)
  2. flutter打包出错了,有大神帮忙看看吗?
  3. 实物补贴和货币补贴的权衡
  4. 嘉应大学黄林鑫计算机学院,嘉应学院学子参加第十届全国大学生数学竞赛获佳绩...
  5. JAVA基础之设计模式和枚举
  6. dockerfile使用DEBIAN_FRONTEND
  7. 了解App启动时间测试方法
  8. cortana连不上网络_Alexa,为什么Cortana仍在我的计算机上?
  9. 2018213969 冉雨晨 对cookie与session的了解
  10. 短视频SDK接入(2)---环境搭建