为了Java微信支付V3开发包,我找出了微信支付文档至少六个错误
2023-09-11 14:18:43 时间
1. 前言
最近忙的一批,难得今天有喘气的机会就赶紧把最近在开发中的一些成果分享出来。前几日分享了自己写的一个微信支付V3的开发包payment-spring-boot-starter,就忙里偷闲完善了一波。
别忘记给个Star啊,有问题提ISSUE。
那么都完善了哪些内容呢?我来一一介绍。
2. Maven 中央仓库
是的,不用再自行编译打包部署了,我已经提交到Maven中央仓库了。最新的坐标是:
<dependency>
<groupId>cn.felord</groupId>
<artifactId>payment-spring-boot-starter</artifactId>
<version>1.0.1.RELEASE</version>
</dependency>
这才算有了点正经开源项目的样子。
3. 功能更加完善
在上次分享中仅仅实现了微信支付的代金券能力,这次加入了更多的微信支付能力:
- 微信支付V3的基础支付-直连模式优化。
- 实现微信支付V3的合单支付。
同时自行实现了多商户、多APPID的多租户模式。后续微信支付分等功能也将接入进来。
4. 完善样例
大部分同学还是喜欢拿来就用,那么我又编写了一个DEMO项目,比如微信支付回调的控制器代码:
/**
* 微信支付成功回调.
* <p>
* 无需开发者判断,只有扣款成功微信才会回调此接口
*
* @param wechatpaySerial the wechatpay serial
* @param wechatpaySignature the wechatpay signature
* @param wechatpayTimestamp the wechatpay timestamp
* @param wechatpayNonce the wechatpay nonce
* @param request the request
* @return the map
*/
@SneakyThrows
@PostMapping("/transaction")
public Map<String, ?> transactionCallback(
@RequestHeader("Wechatpay-Serial") String wechatpaySerial,
@RequestHeader("Wechatpay-Signature") String wechatpaySignature,
@RequestHeader("Wechatpay-Timestamp") String wechatpayTimestamp,
@RequestHeader("Wechatpay-Nonce") String wechatpayNonce,
HttpServletRequest request) {
String body = request.getReader().lines().collect(Collectors.joining());
// 对请求头进行验签 以确保是微信服务器的调用
ResponseSignVerifyParams params = new ResponseSignVerifyParams();
params.setWechatpaySerial(wechatpaySerial);
params.setWechatpaySignature(wechatpaySignature);
params.setWechatpayTimestamp(wechatpayTimestamp);
params.setWechatpayNonce(wechatpayNonce);
params.setBody(body);
return wechatApiProvider.callback(TENANT_ID).transactionCallback(params, data -> {
//TODO 对回调解析的结果进行消费
});
}
基本就是抄来就能用的。还有更多请参阅 payment-spring-boot-samples项目:
地址:https://github.com/NotFound403/payment-spring-boot-samples
请注意保护敏感参数的安全,不要泄露出去。
5. 文档
写文档确实是一个枯燥的事情,参考了其它一些开源项目的样子弄了个像模像样的文档:
地址是:https://notfound403.github.io/payment-spring-boot
快速接入指南、JavaDoc、踩坑分享都在文档里面了。如果有什么需要完善的地方可以提交ISSUE。
今天的分享就到这里,如果你在微信支付中遇到了什么问题可以留言提问,我愿意提供力所能及的帮助,分享使我快乐。
关注公众号:Felordcn 获取更多资讯
相关文章
- java集合(3)- Java中的equals和hashCode方法详解
- is java.lang.NoClassDefFoundError: org/springframework/dao/support/DaoSupport错误原因
- 作为JAVA开发工程师,这些基本常识你都知道吗
- Java RESTful Web Service实战(第2版) 1.4 Jersey项目概要
- java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 错误
- 致命错误: 在类路径或引导类路径中找不到程序包 java.lang
- Java项目(前端vue后台java微服务)在线考试系统(java+vue+springboot+mysql+maven)
- 2018No-java面试知识
- Java开发环境的搭建以及使用eclipse从头一步步创建java项目
- Java 包详细讲解
- Java多重选择结构,超详细整理,适合新手入门
- 《Java EE 7精粹》—— 2.9 错误映射
- Error running 'dt-assets-monitor [clean]': Cannot run program "C:Program Files (x86)Javajdk1.8.0_73binjava.exe" (in directory "E:codedt-assets-monitor")
- 启动tomcat出现内存溢出错误 java.lang.OutOfMemoryError: PermGen space
- Java线程锁,synchronized、wait、notify详解--java 管程
- java程序编译打包出错 the version cannot be empty错误分析
- elasticsearch之JAVA环境变量报错:could not find java; set JAVA_HOME or ensure java is in PATH
- Java J2EE读取配置文件
- java并发中的Synchronized关键词
- 【华为OD机试真题 java、jsNode、c++】异常的打卡记录【2022 Q4 100分】
- java web 自定义错误页面 完整jsp错误页面代码(同时写错误日志) error.jsp
- 华为OD机试 -数组排序(Java) | 机试题+算法思路+考点+代码解析 【2023】
- Eclipse迅速执行:Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
- java.lang.OutOfMemoryError: Java heap space错误及处理办法(收集整理、转)
- python vs java的rsa加密
- Java读取写入文件,正则,读取路径
- 解决Java整合minio错误:S3 API Request made to Console port. S3 Requests should be sent to API port