Appearance
SDK 快速上手
1. 获取密钥
登录运营平台(:10900)→ 商户管理 → 应用管理 → 重置密钥,得到 appSecret(32 位随机串)。
2. 初始化客户端
java
JeepayClient client = new JeepayClient(
"http://<服务器IP>:9216", // 支付网关
"你的appSecret"); // 商户应用密钥3. 完整流程示例
java
import com.alibaba.fastjson.JSONObject;
import com.jeepay.sdk.JeepayClient;
import com.jeepay.sdk.JeepayResponse;
import com.jeepay.sdk.SignUtils;
import com.jeepay.sdk.model.*;
import java.util.Map;
public class QuickStart {
public static void main(String[] args) {
JeepayClient client = new JeepayClient("http://<服务器IP>:9216", "你的appSecret");
String mchOrderNo = "QS-" + System.currentTimeMillis();
// 统一下单
JeepayResponse resp = client.unifiedOrder(new UnifiedOrderRequest()
.mchNo("M1690858842671").appId("appId-demo")
.mchOrderNo(mchOrderNo)
.wayCode("qr_cashier").amount(100L).currency("CNY")
.subject("测试商品").body("快速上手示例")
.notifyUrl("https://your.domain/notify")
.toParams());
System.out.println("payOrderId=" + resp.getString("payOrderId"));
System.out.println("payData=" + resp.getString("payData"));
// 查单
JeepayResponse q = client.queryOrder(new QueryOrderRequest()
.mchNo("M1690858842671").appId("appId-demo")
.mchOrderNo(mchOrderNo).toParams());
System.out.println("state=" + q.getByte("state"));
// 退款
client.refundOrder(new RefundOrderRequest()
.mchNo("M1690858842671").appId("appId-demo")
.mchOrderNo(mchOrderNo)
.mchRefundNo("RF-" + System.currentTimeMillis())
.refundAmount(100L).currency("CNY")
.refundReason("测试退款").toParams());
}
}4. 回调验签
java
// 支付成功后平台向 notifyUrl 发送 form 表单参数(含 sign)
Map<String, Object> params = ...; // 从 HttpServletRequest 解析
String sign = String.valueOf(params.get("sign"));
boolean pass = SignUtils.verifySign(params, appSecret, sign);
if (pass) {
// 校验金额与订单状态后,处理业务并响应 success
response.getWriter().print("success");
}Demo 工程
仓库自带可运行 Demo:/www/wwwroot/jeepay/demos/java(本地仓库 demos/java),演示统一下单、支付查单、回调验签三个场景。
bash
# Maven 方式
mvn -f demos/java/pom.xml compile exec:java -Dexec.mainClass=Main
# 修改 Main.java 顶部的 GATEWAY_URL / MCH_NO / APP_ID / APP_SECRET 后运行运行输出示例(未配置真实商户时,签名校验通过、业务侧返回商户不存在属正常现象):
text
[1] 统一下单 POST /api/pay/unifiedOrder
请求参数: {"mchNo":"M1690858842671","appId":"your-app-id",...}
下单结果: code=9999, msg=商户或商户应用不存在
[3] 回调验签演示(模拟支付成功异步通知参数)
平台下发签名: B822C46E7D73C293104A9A78FAFBFA40
本地验签结果: 通过5. 投诉接口
java
JeepayClient client = new JeepayClient("http://<服务器IP>:9216", appSecret);
// 分页查询(X-Api-Key,密钥为服务商投诉 API 密钥)
client.complaintList("服务商投诉API密钥",
new ComplaintQueryRequest().pageNumber(1).pageSize(10).toParams());
// 商户在线回复 / 完结(appSecret 签名)
client.complaintReply(appSecret, mchNo, appId, "202601050001", "已与用户协商处理完毕");
client.complaintFinish(appSecret, mchNo, appId, "202601050001");