在线支付系列【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实现,建议使用mavengradle引用本项目即可使用本SDK提供的各种支付相关的功能。

IJPay【JAVA SDK】

码云地址

不依赖任何第三方MVC框架,仅仅作为工具使用简单快速完成支付模块的开发,可轻松嵌入到任何系统里。

微信支付支持多商户多应用,普通商户模式与服务商商模式当然也支持境外商户、同时支持Api-v3Api-v2版本的接口。

支付宝支付支持多商户多应用,签名同时支持普通公钥方式与公钥证书方式。

jeepay【系统】

码云地址

Jeepay是一套适合互联网企业使用的开源支付系统,支持多渠道服务商和普通商户模式。已对接微信支付,支付宝,云闪付官方接口,支持聚合码支付

使用Spring BootAnt 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、后台服务等环境,和外部框架完全解耦。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部