在线支付系列【19】微信支付开源框架汇总介绍 以你之姓@ 2023-10-09 15:33 48阅读 0赞 > **有道无术,术尚可求,有术无道,止于术。** #### 文章目录 #### * * 前言 * 开源框架 * * 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 推荐】 #### [码云地址][Link 1] `WxJava`是一款微信`Java`开发工具包,支持包括**微信支付、开放平台、公众号、企业微信/企业号、小程序**等微信功能模块的后端开发。 集成微信支付`V3`时,引入以下依赖: <dependency> <groupId>com.github.binarywang</groupId> <artifactId>wx-java-pay-spring-boot-starter</artifactId> <version>4.4.8.B</version> </dependency> 添加配置: wx: pay: appId: wx74862e0dfcfxxxxxx # 应用ID mchId: 15589xxxxx #商户id apiV3Key: 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); } **打印日志如下:** ![在这里插入图片描述][f6f0162e014941cba957524a842ba698.png] #### pay-java-parent【JAVA SDK】 #### [码云地址][Link 2] 全能第三方支付对接`Java`开发工具包,优雅的轻量级支付模块集成支付对接支付整合:**微信、支付宝、银联、友店、富友、跨境支付、paypal、payoneer、易极付**。 支持多种支付类型多支付账户,支付与业务完全剥离,简单几行代码即可实现支付,简单快速完成支付模块的开发,可轻松嵌入到任何系统里。 目前仅是一个开发工具包,只提供简单`Web`实现,建议使用`maven`或`gradle`引用本项目即可使用本`SDK`提供的各种支付相关的功能。 #### IJPay【JAVA SDK】 #### [码云地址][Link 3] 不依赖任何第三方`MVC`框架,仅仅作为工具使用简单快速完成支付模块的开发,可轻松嵌入到任何系统里。 **微信支付**支持多商户多应用,普通商户模式与服务商商模式当然也支持境外商户、同时支持`Api-v3`与`Api-v2`版本的接口。 **支付宝支付**支持多商户多应用,签名同时支持普通公钥方式与公钥证书方式。 #### jeepay【系统】 #### [码云地址][Link 4] `Jeepay`是一套适合互联网企业使用的**开源支付系统**,支持多渠道服务商和普通商户模式。已对接**微信支付,支付宝,云闪付**官方接口,支持**聚合码支付**。 使用`Spring Boot`和`Ant Design Vue`开发,集成`Spring Security`实现权限管理功能,是一套非常实用的`web`开发框架。 #### WeChatDeveloper【PHP】 #### [码云地址][Link 5] `WeChatDeveloper` 是一款`PHP`集成支付框架,基于`wechat-php-sdk` 重构,优化并完善。 **功能描述:** * 微信小程序,服务端接口支持 * 微信认证服务号,服务端接口支持 * 微信支付(账单、卡券、红包、退款、转账、App支付、JSAPI支付、Web支付、扫码支付等) * 支付宝支付(账单、转账、App支付、刷卡支付、扫码支付、Web支付、Wap支付等) #### WeiXinMPSDK【.NET】 #### [码云地址][Link 6] `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、`后台服务等环境,和外部框架完全解耦。 [Link 1]: https://gitee.com/binary/weixin-java-tools [f6f0162e014941cba957524a842ba698.png]: https://img-blog.csdnimg.cn/f6f0162e014941cba957524a842ba698.png [Link 2]: https://gitee.com/egzosn/pay-java-parent [Link 3]: https://gitee.com/javen205/IJPay [Link 4]: https://gitee.com/jeequan/jeepay [Link 5]: https://gitee.com/zoujingli/WeChatDeveloper [Link 6]: https://gitee.com/JeffreySu/WeiXinMPSDK
相关 在线支付系列【20】微信支付服务商介绍 > 有道无术,术尚可求,有术无道,止于术。 文章目录 概述 三大服务 支付服务 经营服务 雨点打透心脏的1/2处/ 2023年10月09日 15:34/ 0 赞/ 91 阅读
相关 在线支付系列【19】微信支付开源框架汇总介绍 > 有道无术,术尚可求,有术无道,止于术。 文章目录 前言 开源框架 WxJava【JAVA SDK 推荐】 以你之姓@/ 2023年10月09日 15:33/ 0 赞/ 49 阅读
相关 在线支付系列【14】微信支付实战篇之Native支付下单 > 有道无术,术尚可求,有术无道,止于术。 文章目录 Native支付 产品介绍 业务流程图 深藏阁楼爱情的钟/ 2023年10月09日 15:28/ 0 赞/ 342 阅读
相关 在线支付系列【11】微信支付之文档中心介绍 > 有道无术,术尚可求,有术无道,止于术。 文章目录 前言 文档中心 商户 指引文档 叁歲伎倆/ 2023年10月09日 15:28/ 0 赞/ 309 阅读
相关 在线支付系列【10】微信支付接入前准备 > 有道无术,术尚可求,有术无道,止于术。 文章目录 前言 1. 获取基本参数 商户号(mchid) àì夳堔傛蜴生んèń/ 2023年10月09日 15:27/ 0 赞/ 78 阅读
相关 在线支付系列【9】微信支付之申请微信公众号 > 有道无术,术尚可求,有术无道,止于术。 文章目录 前言 申请微信公众号 前言 由于微信支付的产品体系全部搭载于微信的社交体系之上, 迈不过友情╰/ 2023年10月09日 15:26/ 0 赞/ 41 阅读
相关 在线支付系列【7】微信支付接入指引 > 有道无术,术尚可求,有术无道,止于术。 文章目录 接入模式 直连模式 服务商模式 接入指引 柔情只为你懂/ 2023年10月09日 15:26/ 0 赞/ 51 阅读
相关 在线支付系列【8】微信支付之注册商户号 > 有道无术,术尚可求,有术无道,止于术。 文章目录 前言 注册商户号 1. 微信扫码登录 2. 创 Bertha 。/ 2023年10月09日 15:23/ 0 赞/ 101 阅读
相关 在线支付系列【6】微信支付产品简介 > 有道无术,术尚可求,有术无道,止于术。 文章目录 微信支付 商户、服务商 行业解决方案 平台开放能力 ゞ 浴缸里的玫瑰/ 2023年10月09日 15:23/ 0 赞/ 45 阅读
相关 在线支付系列【2】支付宝和微信支付发展史 > 有道无术,术尚可求,有术无道,止于术。 文章目录 支付宝 发展史 起步阶段 た 入场券/ 2023年10月09日 15:20/ 0 赞/ 125 阅读
还没有评论,来说两句吧...