赞
踩
有道无术,术尚可求,有术无道,止于术。
在之前的文档中,我们完成了使用官方SDK
集成Native支付
的所有API
使用案例。
官方SDK
作为基础集成平台,为了适应各种应用框架,使用起来还是比较麻烦。比如:
API
,提供服务类JAVA
对象,需要自己解析V3版本
没有提供统一下单API
Spring Boot
启动器,需要自己集成Spring Boot
针对上述问题,简化开发,有许多开源的支付框架可以使用,下面会一一介绍。
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); }
打印日志如下:
全能第三方支付对接Java
开发工具包,优雅的轻量级支付模块集成支付对接支付整合:微信、支付宝、银联、友店、富友、跨境支付、paypal、payoneer、易极付。
支持多种支付类型多支付账户,支付与业务完全剥离,简单几行代码即可实现支付,简单快速完成支付模块的开发,可轻松嵌入到任何系统里。
目前仅是一个开发工具包,只提供简单Web
实现,建议使用maven
或gradle
引用本项目即可使用本SDK
提供的各种支付相关的功能。
不依赖任何第三方MVC
框架,仅仅作为工具使用简单快速完成支付模块的开发,可轻松嵌入到任何系统里。
微信支付支持多商户多应用,普通商户模式与服务商商模式当然也支持境外商户、同时支持Api-v3
与Api-v2
版本的接口。
支付宝支付支持多商户多应用,签名同时支持普通公钥方式与公钥证书方式。
Jeepay
是一套适合互联网企业使用的开源支付系统,支持多渠道服务商和普通商户模式。已对接微信支付,支付宝,云闪付官方接口,支持聚合码支付。
使用Spring Boot
和Ant Design Vue
开发,集成Spring Security
实现权限管理功能,是一套非常实用的web
开发框架。
WeChatDeveloper
是一款PHP
集成支付框架,基于 wechat-php-sdk
重构,优化并完善。
功能描述:
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、
后台服务等环境,和外部框架完全解耦。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。