有道無術(shù),術(shù)尚可求,有術(shù)無道,止于術(shù)。
前言
在之前的文檔中,我們完成了使用官方SDK
集成Native支付
的所有API
使用案例。
官方SDK
作為基礎(chǔ)集成平臺,為了適應(yīng)各種應(yīng)用框架,使用起來還是比較麻煩。比如:
- 需要自己集成
API
,提供服務(wù)類 - 請求參數(shù)、返回對象沒有封裝為
JAVA
對象,需要自己解析 -
V3版本
沒有提供統(tǒng)一下單API
- 沒有提供
Spring Boot
啟動器,需要自己集成Spring Boot
針對上述問題,簡化開發(fā),有許多開源的支付框架可以使用,下面會一一介紹。
開源框架
WxJava【JAVA SDK 推薦】
碼云地址
WxJava
是一款微信Java
開發(fā)工具包,支持包括微信支付、開放平臺、公眾號、企業(yè)微信/企業(yè)號、小程序等微信功能模塊的后端開發(fā)。
集成微信支付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 # 應(yīng)用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 = "統(tǒng)一下單/(V3)")
@PostMapping("/native")
public R<?> nativeOrder(String userId, String goodsId) throws Exception {
try {
// 1. 創(chuàng)建商戶訂單
OrderEntity mchOrder = orderService.saveOrder(userId, goodsId);
GoodsEntity goods = goodsService.getById(mchOrder.getGoodId());
// 2. 組裝支付參數(shù),創(chuàng)建支付訂單
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()); // 商戶訂單號,商戶系統(tǒng)內(nèi)部訂單號,只能是數(shù)字、大小寫字母_-*且在同一個商戶號下唯一
orderRequest.setNotifyUrl("https://8da1-120-227-23-190.jp.ngrok.io/pay/wechat/notify"); // 通知地址
// 3. 發(fā)起V3 NATIVE支付
WxPayUnifiedOrderV3Result wxPayUnifiedOrderV3Result = wxPayService.unifiedOrderV3(TradeTypeEnum.NATIVE, orderRequest);
log.info("NATIVE支付成功,返回二維碼" + wxPayUnifiedOrderV3Result.getCodeUrl());
// 4. 省略后續(xù)操作
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
開發(fā)工具包,優(yōu)雅的輕量級支付模塊集成支付對接支付整合:微信、支付寶、銀聯(lián)、友店、富友、跨境支付、paypal、payoneer、易極付。
支持多種支付類型多支付賬戶,支付與業(yè)務(wù)完全剝離,簡單幾行代碼即可實現(xiàn)支付,簡單快速完成支付模塊的開發(fā),可輕松嵌入到任何系統(tǒng)里。
目前僅是一個開發(fā)工具包,只提供簡單Web
實現(xiàn),建議使用maven
或gradle
引用本項目即可使用本SDK
提供的各種支付相關(guān)的功能。
IJPay【JAVA SDK】
碼云地址
不依賴任何第三方MVC
框架,僅僅作為工具使用簡單快速完成支付模塊的開發(fā),可輕松嵌入到任何系統(tǒng)里。
微信支付支持多商戶多應(yīng)用,普通商戶模式與服務(wù)商商模式當然也支持境外商戶、同時支持Api-v3
與Api-v2
版本的接口。
支付寶支付支持多商戶多應(yīng)用,簽名同時支持普通公鑰方式與公鑰證書方式。
jeepay【系統(tǒng)】
碼云地址
Jeepay
是一套適合互聯(lián)網(wǎng)企業(yè)使用的開源支付系統(tǒng),支持多渠道服務(wù)商和普通商戶模式。已對接微信支付,支付寶,云閃付官方接口,支持聚合碼支付。
使用Spring Boot
和Ant Design Vue
開發(fā),集成Spring Security
實現(xiàn)權(quán)限管理功能,是一套非常實用的web
開發(fā)框架。
WeChatDeveloper【PHP】
碼云地址
WeChatDeveloper
是一款PHP
集成支付框架,基于 wechat-php-sdk
重構(gòu),優(yōu)化并完善。
功能描述:
- 微信小程序,服務(wù)端接口支持
- 微信認證服務(wù)號,服務(wù)端接口支持
- 微信支付(賬單、卡券、紅包、退款、轉(zhuǎn)賬、App支付、JSAPI支付、Web支付、掃碼支付等)
- 支付寶支付(賬單、轉(zhuǎn)賬、App支付、刷卡支付、掃碼支付、Web支付、Wap支付等)
WeiXinMPSDK【.NET】
碼云地址
Senparc.Weixin SDK
是目前使用率最高的微信 .NET SDK
,也是國內(nèi)最受歡迎的 .NET
開源項目之一。
可以方便快速地開發(fā)微信全平臺的應(yīng)用(包括微信公眾號、小程序、小游戲、企業(yè)號、開放平臺、微信支付、JS-SDK、微信硬件/藍牙,等等)。文章來源:http://www.zghlxwxcb.cn/news/detail-596604.html
目前已經(jīng)支持幾乎所有微信平臺模塊和接口,并同時支持.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(命令行)、桌面應(yīng)用(.exe)、Blazor、MAUI、
后臺服務(wù)等環(huán)境,和外部框架完全解耦。文章來源地址http://www.zghlxwxcb.cn/news/detail-596604.html
到了這里,關(guān)于在線支付系列【19】微信支付開源框架匯總介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!