在线支付系列【19】微信支付开源框架汇总介绍
有道无术,术尚可求,有术无道,止于术。
文章目录
- 前言
- 开源框架
- WxJava【JAVA SDK 推荐】
- pay-java-parent【JAVA SDK】
- IJPay【JAVA SDK】
- jeepay【系统】
- WeChatDeveloper【PHP】
- WeiXinMPSDK【.NET】
前言
在之前的文档中,我们完成了使用官方SDK集成Native支付的所有API使用案例。
官方SDK作为基础集成平台,为了适应各种应用框架,使用起来还是比较麻烦。比如:
- 需要自己集成
API,提供服务类 - 请求参数、返回对象没有封装为
JAVA对象,需要自己解析 V3版本没有提供统一下单API- 没有提供
Spring Boot启动器,需要自己集成Spring Boot
针对上述问题,简化开发,有许多开源的支付框架可以使用,下面会一一介绍。
开源框架
WxJava【JAVA SDK 推荐】
码云地址
WxJava是一款微信Java开发工具包,支持包括微信支付、开放平台、公众号、企业微信/企业号、小程序等微信功能模块的后端开发。
集成微信支付V3时,引入以下依赖:
<dependency><groupId>com.github.binarywanggroupId><artifactId>wx-java-pay-spring-boot-starterartifactId><version>4.4.8.Bversion>dependency>
添加配置:
wx:pay:appId: wx74862e0dfcfxxxxxx # 应用IDmchId: 15589xxxxx #商户idapiV3Key: UDuLFDcmy5Eb6o0xxxxx #V3密钥certSerialNo: 34345964330B66427xxxxx #商户证书序列privateKeyPath: classpath:cert/apiclient_key.pem #apiclient_key.pem证书文件的绝对路径或者以classpath:开头的类路径privateCertPath: classpath:cert/apiclient_cert.pem #apiclient_cert.pem证书文件的绝对路径或者以classpath:开头的类路径
然后就可以直接使用框架提供的API进行各种下单、查单、退款操作了。
@Operation(summary = "统一下单/(V3)")@PostMapping("/native")public R<?> nativeOrder(String userId, String goodsId) throws Exception {try {// 1. 创建商户订单OrderEntity mchOrder = orderService.saveOrder(userId, goodsId);GoodsEntity goods = goodsService.getById(mchOrder.getGoodId());// 2. 组装支付参数,创建支付订单WxPayUnifiedOrderV3Request orderRequest = new WxPayUnifiedOrderV3Request();orderRequest.setDescription(goods.getShopName() + "-" + goods.getName()); // 商品描述:示例值:Image形象店-深圳腾大-QQ公仔WxPayUnifiedOrderV3Request.Amount amount = new WxPayUnifiedOrderV3Request.Amount();amount.setTotal(1); // 订单金额信息orderRequest.setAmount(amount);orderRequest.setOutTradeNo(mchOrder.getOutTradeNo()); // 商户订单号,商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一orderRequest.setNotifyUrl("https://8da1-120-227-23-190.jp.ngrok.io/pay/wechat/notify"); // 通知地址// 3. 发起V3 NATIVE支付WxPayUnifiedOrderV3Result wxPayUnifiedOrderV3Result = wxPayService.unifiedOrderV3(TradeTypeEnum.NATIVE, orderRequest);log.info("NATIVE支付成功,返回二维码" + wxPayUnifiedOrderV3Result.getCodeUrl());// 4. 省略后续操作return R.success(wxPayUnifiedOrderV3Result);} catch (Exception e) {log.error("微信支付失败!,原因:{}", e.getMessage());e.printStackTrace();return R.fail();}}@Operation(summary = "查询订单/(V3)")@GetMapping("/queryOrder")public R<WxPayOrderQueryV3Result> queryOrder(@RequestParam(required = false) String transactionId,@RequestParam(required = false) String outTradeNo)throws WxPayException {WxPayOrderQueryV3Result wxPayOrderQueryV3Result = this.wxPayService.queryOrderV3(transactionId, outTradeNo);return R.success(wxPayOrderQueryV3Result);}
打印日志如下:

pay-java-parent【JAVA SDK】
码云地址
全能第三方支付对接Java开发工具包,优雅的轻量级支付模块集成支付对接支付整合:微信、支付宝、银联、友店、富友、跨境支付、paypal、payoneer、易极付。
支持多种支付类型多支付账户,支付与业务完全剥离,简单几行代码即可实现支付,简单快速完成支付模块的开发,可轻松嵌入到任何系统里。
目前仅是一个开发工具包,只提供简单Web实现,建议使用maven或gradle引用本项目即可使用本SDK提供的各种支付相关的功能。
IJPay【JAVA SDK】
码云地址
不依赖任何第三方MVC框架,仅仅作为工具使用简单快速完成支付模块的开发,可轻松嵌入到任何系统里。
微信支付支持多商户多应用,普通商户模式与服务商商模式当然也支持境外商户、同时支持Api-v3与Api-v2版本的接口。
支付宝支付支持多商户多应用,签名同时支持普通公钥方式与公钥证书方式。
jeepay【系统】
码云地址
Jeepay是一套适合互联网企业使用的开源支付系统,支持多渠道服务商和普通商户模式。已对接微信支付,支付宝,云闪付官方接口,支持聚合码支付。
使用Spring Boot和Ant Design Vue开发,集成Spring Security实现权限管理功能,是一套非常实用的web开发框架。
WeChatDeveloper【PHP】
码云地址
WeChatDeveloper 是一款PHP集成支付框架,基于 wechat-php-sdk 重构,优化并完善。
功能描述:
- 微信小程序,服务端接口支持
- 微信认证服务号,服务端接口支持
- 微信支付(账单、卡券、红包、退款、转账、App支付、JSAPI支付、Web支付、扫码支付等)
- 支付宝支付(账单、转账、App支付、刷卡支付、扫码支付、Web支付、Wap支付等)
WeiXinMPSDK【.NET】
码云地址
Senparc.Weixin SDK 是目前使用率最高的微信 .NET SDK,也是国内最受欢迎的 .NET 开源项目之一。
可以方便快速地开发微信全平台的应用(包括微信公众号、小程序、小游戏、企业号、开放平台、微信支付、JS-SDK、微信硬件/蓝牙,等等)。
目前已经支持几乎所有微信平台模块和接口,并同时支持.NET 3.5 / 4.0 / 4.5 / .NET Standard 2.x / .NET Core 2.x / .NET Core 3.x / .NET 6.0多种框架,同时兼容所有 MVC、Razor、WebApi、Console(命令行)、桌面应用(.exe)、Blazor、MAUI、后台服务等环境,和外部框架完全解耦。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
