分享好友 最新资讯首页 最新资讯分类 切换频道
2020微信支付v3版本java对接详细流程手机自带浏览器「2020微信支付v3版本java对接详细流程」
2025-02-12 23:32

~首先吐槽下腾讯的文档,自己根据文档看,对于没有对接经验的来说,根本看不懂,什么乱起八糟的,心里一万个草泥马。
其次,特别是对接的数据加密解密,传递格式那些是最让人想疯的东西。所以已经有大佬把这些基础的数据对接做了整合,就在gitee上,ijPay。ijPay我们只需要关注的只有给对象设置参数,发起请求,处理响应数据,就完事,很方便。此篇文章就基于此展开对接的讲解。

此篇博客大体内容:
1.ijPay 配置配置文件的讲解
2.公众号和商户平台配置的讲解
3.本地直接测试对接微信支付的方式
4.微信支付v3版nativePay
5.微信支付v3版jsApiPay
6.微信支付v3版h5Pay
7.微信支付通用退订
8.微信支付通用退订查询
8.附前后端直接copy的代码

1.gitee开源支付对接源码(ijpay)地址
2.ijpay官方文档地址
3.我的对接代码点击下载,配置好直接运行即可

ps:ijpay中可以自己读代码,再根据腾讯的文档,摸索(ijpay注释较少,v3的退订使用的v2的退定接口,v3没有提供对应的代码,自己需要参照v2,并且退订参照有坑,后面会说).也可以花599元让ijpay的作者给你在线帮助

整体对接流程概括如下

  1. 肯定是先下载ijpay源码到本地
    ijpay整合了许多支付,这里我们只讲解微信支付v3的对接,那么我自己是另外新建了一个springboot项目,然后把源码里面的微信v3支付的代码拷贝到新项目里面做测试的,缺什么依赖,根据报红的提示,自己引入,这里不做详细说明.

在这里插入图片描述

2.【 微信支付v3版本证书下载】和【配置配置文件】

这里先说下公众号和商户平台的关系,公众号的支付依附于商户平台,所以公众号和商户平台要做关联处理:
登陆商户平台–>产品中心–>AppID账号管理
关联过程,自行百度咯,不做过多讲解

1).证书的下载
登陆商户平台–>账户中心–>api安全–>API安全
然后生成证书,最终会生成3个文件
在这里插入图片描述
生成流程:
自行查看官方文档

2).证书copy到【新项目】的文件夹中
我这边是放在了srcmain esourcescert目录下
在这里插入图片描述

3).设置api秘钥和apiv3秘钥
登陆商户平台–>账户中心–>api安全–>设置api秘钥/设置apiv3秘钥
保存好,后面要用到

4).设置配置文件 wxpay_v3.properties
在这里插入图片描述
在这里插入图片描述

ps:这里讲下配置文件的参数如果获取
appId:登陆微信公众平台–>开发–>基本配置–>开发者ID(AppID)
keyPath: 对应apiclient_key.pem所在路径
certPath: 对应apiclient_cert.pem所在路径
certP12Path: 对应apiclient_cert.p12所在路径(退订的时候用的这个!)
platformCertPath: 【平台证书】访问v3支付提供的接口获取,下面会讲
mchId: 登陆商户平台–>账户中心–>商户信息–>微信支付商户号
apiKey3: 参考上面的设置api秘钥和apiv3秘钥
apiKey: 参考上面的设置api秘钥和apiv3秘钥
domain: 项目域名
关于项目域名,我这边用的natapp做的本地内网映射,可以直接在本地做支付测试,因为natapp代理的域名都是备案了的,非常方便,这里推荐下,不然去服务器上测试,太麻烦了.
natapp官方链接地址 自己看natapp的文档或者帮助,这里不做过多讲解

5).获取平台证书,也就是上图的platformCert.pem文件
启动服务,本地访问接口: localhost/v3/get
这里会请求腾讯接口,拿到平台证书,并保存到配置文件所配置的路径下(注意文件名在配置文件一开始就要配好)
配置文件到这里就配好了

  1. 支付对接(直连商户模式)

ps:v3微信支付官方文档
基础支付–>【直连模式】和【服务商模式】的区别?
1.接口对接的角度来说,就访问的地址不同,和传递的参数有差别,实现的效果是一样的,响应的参数的处理方式是一样的
2.从现实逻辑来讲,
直连模式是公众号直接对接商户平台,发起支付,
关系为: 公众号–>商户平台
服务商模式是基于直连,商户平台又把支付授权给服务商,
关系为: 公众号–>商户平台–>服务商
用服务商模式,貌似有返点啥的,没有深入研究,有兴趣自行百度,两者对接方式差不多,只是传递的参数有些许差别.但相应参数的处理是一样的,此篇博客只讲直连方式,服务商模式可以自行举一反三.

用大佬的写好的代码,根本不用关心什么加密解密什么的,配置文件配好,调接口就完事了QAQ
不同的支付的应用场景:
1.nativePay(电脑生成二维码,手机扫码支付)
1.jsApiPay(微信自带浏览器中或者说公众号里面,唤起微信支付)
1.h5Pay(手机普通浏览器中,唤起微信支付)
注意:
1.传递参数根据官方文档来看,ijpay源码可能在服务商和直连商户两种模式的代码只提供了其一,灵活斟酌
2.登陆商户平台–>产品中心–>我的产品–>开通nativePay
其它的支付看需要开通,具体操作,百度啊QAQ,后面就不提示开通支付这个事情了,自己可以先提前开通了都,h5pay开通需要审核,并且注意第一个域名没有限制,第二个域名必须填写商户备案的域名,自行查看商户信息对应的域名是啥,复制粘贴
大概流程:
请求iJPay接口,拿到二维码生成链接–>用生成二维码的js,生成支付码–>扫码支付

官方文档:
在这里插入图片描述
在这里插入图片描述
响应参数示例

 

1).发起支付请求,获取二维码链接地址
请求接口(com.example.wxpay.controller.wxpay.WxPayV3Controller#nativePay):

 

2).响应参数

 

3).生成二维码(qrcode.min.js)

 

在这里插入图片描述
支付成功后会有一个回调通知,在一开始传递的参数里面
在这里插入图片描述
ijpay里面也是写好了的
在这里插入图片描述
通知的对接自行看ijpay打印的参数,做自己的逻辑处理
com.example.wxpay.controller.wxpay.WxPayV3Controller#payNotify

防止有像评论里那个一样,看不懂全限定类名,我再解释一下,回调通知ijpay写好了的,就在WxPayV3Controller中的payNotify方法
防止有像评论里那个一样,还是理解不到,你直接在WxPayV3Controller中ctrl+f搜索:@RequestMapping(value = “/payNotify”
遇到这种奇葩,表示无语

注意:
1.微信支付后台:配置jsApiPay的支付目录,我配置的 本地映射的代理域名+‘/’
---->登陆直连商户平台–>产品中心–>开发配置–>支付配置–>JSAPI支付
2.公众号需要配置:
---->1.JS接口安全域名 2.网页授权域名 3.校验秘钥txt需要下载放到授权域名目录下
---->登陆微信公众号–>设置与开发–>公众号设置–>功能设置

大概流程:
拿到微信用户的openId–>调用ijpay接口(传入openId)–>响应 唤起微信支付的json数据–>基于响应json,前端js二次请求腾讯接口–>唤起支付

官方文档(jsApiPay下单)
在这里插入图片描述
在这里插入图片描述
官方文档(jsApiPay唤起支付)
在这里插入图片描述
在这里插入图片描述
1).拿到微信用户的openId

参考自博客:java-微信公众号菜单跳转网页获取openid

就拿openId这一步就挺麻烦
大概流程:
公众号菜单点击–>自定义请求接口1(请求腾讯拿到code)–>重定向自到定义接口2(根据code请求腾讯拿到openId)–>重定向到自定义html页面,拿到微信用户openId,初始化调用上述接口…(你也可以在网页里面发起ajax请求,这里做测试,主要是对接成功,自己灵活应用.)

详情请下载我已经对接好了的代码即可

公众号菜单配置

在这里插入图片描述
请求的接口为
http://域名/wxgzh/redirecttocashout
对应控制器:com.example.wxpay.controller.wxpay.WxGZHController#redirectToCashout

开发者密码(AppSecret)
公众号后台–>开发–>基本配置–>开发者密码(AppSecret)

公众号网页授权设置
参考上述的参考博客↑↑

通知处理同上

注意:
貌似iJPay源码只提供了服务商模式,自行修改传递的参数,和请求的api接口地址
貌似在本地也能做测试,并不是必须在商户备案了的域名下才行
大概流程:
请求iJPay接口–>请求腾讯接口–>响应 唤起支付的url地址–>重定向或者前端跳转url–>唤起微信支付

官方文档(h5Pay下单)

在这里插入图片描述
在这里插入图片描述
官方文档(h5Pay唤起支付)
在这里插入图片描述

详情请下载我已经对接好了的代码即可

h5支付比较简单,后续是退订,有点小坑

  1. 退订对接(通用)

ps:前面说了,v2和v3都是用的v2的退订api,iJpay代码中v3没有提供退订的代码,需要自己根据v2的代码,仿写一个.
提前把仿写的坑说了:
算了懒得说,我直接吧我的代码贴出来吧,v2和v3的代码逻辑差别有点大,毕竟不是同时写的.
大概流程:
前端输入订单号,发起退订请求–>响应结果–>完事儿

详情请下载我已经对接好了的代码即可

ps:以上皆为自己的对接经验,有理解的不够深刻的地方,多多包涵.如果博客还有不详细或者错误的地方,欢迎评论告诉我

最新文章
永康数控刀粒回收
电话: QQ: 何先生 我公司交易便捷,长期面向各模具厂,五金加工厂,机械加工厂,模胚厂,不分生产厂家 个人,销售,加工,只要
下月起,广州居民阶梯电价开启“夏季模式”,电费怎么算?
日前,广州气象部门宣布,根据《气候季节划分》标准判定,2025年广州于4月8日入夏。随着气温的升高,空调等制冷设备使用频率大幅
大件宠物用品出海破局!借本地化履约穿透东南亚宠物市场
当季风掠过东南亚群岛,当地的宠物经济正以年均近10%的增速疾驰在黄金赛道上。市场规模突破200亿美元的浪潮背后,不仅是消费升级
海森林再冲A股:零售突围成关键
假发品牌海森林近期重新提交A股主板上市辅导备案,此前曾于2023年因政策变化终止IPO。公司表示,随着2024年6月融资政策放开,已
“被裁员后,我做了一款游戏打脸了所有人”
文/黑猫导语做游戏对我来说是荒野求生,也是救命稻草从年初到年尾,游戏行业裁员的新闻似乎就没有间断过。寒冬还没有过去,但一
华为ADS硬件加码,主动安全能力提升了多少?
在2025款已于昨日正式上市,这款车除了设计没怎么变,其他哪哪儿都进行了大幅度升级。但我们更关注的是这套全新架构的智能驾驶硬
主控拆解 | 小米汽车智驾/智能座舱控制器
来源:车规半导体硬件、@杨长顺维修家、快科技等综合整理 | 首图图源:网络全文 1500+ 字,预计阅读 15-20 分钟10月29日小米15
区检察院开展未成年人自护教育活动,共筑成长安全屏障
近日,黄浦区金陵中学内气氛热烈,一场聚焦未成年人自护教育的活动在此火热开展。此次活动由黄浦区检察院牵头组织,区委网信办、
榆阳区年度好校长|榆林市第七小学校长周文龙
周文龙,中共党员,榆阳区“优秀教师”“学科带头人”“先进教育工作者”,榆林市“教学能手”,陕西省“课改新秀”。作为教育工
在老茶馆档案中,成都人最常喝哪种茶?|珍档⑮
在成都老茶馆档案的记载中,成都人最常喝哪一种茶?答案一定是花茶。这种茶叶不仅入口清香,且价格便宜。除此之外,茶馆还有春茶