让支付触手可及 — 一个 jar 包搞定六种支付
⭐ 6.4K Star · 开源免费IJPay 是一个 Java 支付工具库,封装了微信支付、支付宝、QQ支付、京东支付、银联支付、PayPal 等常用支付方式的接口。它不依赖任何第三方 MVC 框架,仅作为工具使用,可以轻松嵌入到任何 Java 系统中,帮助你快速完成支付模块的开发。
对于一人公司和独立开发者来说,IJPay 能让你在半天内搞定全平台支付对接,不再需要花一周时间逐个阅读各平台的支付文档。
在项目的 pom.xml 中引入 IJPay 依赖。可按需引入单个支付模块,也可一次性引入全部:
<!-- 全部支付(推荐快速体验) -->
<dependency>
<groupId>com.github.javen205</groupId>
<artifactId>IJPay-All</artifactId>
<version>2.9.11</version>
</dependency>
<!-- 或按需引入,如仅微信支付 -->
<dependency>
<groupId>com.github.javen205</groupId>
<artifactId>IJPay-WxPay</artifactId>
<version>2.9.11</version>
</dependency>
以微信支付为例,配置你的商户号、AppID、API 密钥等信息:
WxPayApiConfig wxPayApiConfig = WxPayApiConfig.builder()
.appId("你的AppID")
.mchId("你的商户号")
.partnerKey("你的API密钥")
.certPath("证书路径")
.domain("https://api.mch.weixin.qq.com")
.build();
使用封装好的 API 发起统一下单,几行代码即可:
// 微信 Native 支付(扫码支付)
Map<String, String> params = UnifiedOrderModel.builder()
.appid(appId)
.mch_id(mchId)
.nonce_str(WxPayKit.generateStr())
.body("商品描述")
.out_trade_no("订单号")
.total_fee("100") // 单位:分
.spbill_create_ip("127.0.0.1")
.notify_url("https://你的域名/pay/notify")
.trade_type(TradeType.NATIVE.getTradeType())
.build()
.createSign(partnerKey, SignType.MD5);
String result = WxPayApi.pushOrder(false, params);
IJPay 提供了完整的 Demo 项目,可以直接运行体验:
不需要!IJPay 是纯工具库,不依赖任何 MVC 框架。你可以在 Spring Boot、JFinal、Solon 甚至纯 Servlet 项目中直接使用。
如果是新项目,推荐使用 V3 接口,安全性更高、功能更完善。如果是老项目升级,V2 接口同样支持,可以平滑过渡。
IJPay 本身不限制使用者身份,但各支付平台有自己的商户入驻门槛。微信支付需要企业或个体工商户资质,支付宝支持个人开发者接入部分功能。建议先在对应平台完成商户注册。
IJPay 封装了回调通知的验签和解析逻辑,只需在回调接口中调用 WxPayKit.verifyNotify() 即可自动完成签名验证和数据解析,非常方便。