简介
为了提⾼客户接⼊的便捷性,本系统提供 SDK ⽅式介⼊,使⽤本 SDK 将极⼤的简化开发者的⼯作,开发者将⽆需考虑通信、签名、 验签等,只需要关注业务参数的输⼊。
版本记录
版本 | 日期 | 版本说明 |
v1.0.0 | 2025/05/22 | 初始版本 |
版本要求
JDK版本 8.0及以上
SDK包结构说明
- ystpay-java-sdk-*.jar 为待添加到项⽬中的⽂件;
- ystpay-java-sdk-demo-*-sources.jar 为示例DEMO项⽬,供接⼊时参考使⽤;
使⽤⽅法
1、将 ystpay-java-sdk-demo-*-sources.jar 解压缩后,内容整体复制到您的项⽬⼯程内;
2、在您的项⽬创建 SDK 初始化的⼊⼝⽂件,完成如下配置:
2.1 进⾏相关环境及调试参数的配置
// SDK初始化
# debug 模式,开启后有详细的日志
BasePayConfig.debug = false;
# prodMode 模式,默认为生产模式
# MODE_PROD = "prod"; // 生产环境
# MODE_TEST = "test"; // 线上联调环境(针对商户联调测试)
BasePay.prodMode = BasePay.MODE_PROD;
MerConfig merConfig = new MerConfig();
merConfig.setAppId(应用号);
merConfig.setPrivateKey(私钥);
merConfig.setPublicKey(公钥);
merConfig.setEncryptKey(加解密 key);
2.2 完成 sdk 初始化
# 加载 SDK 初始化文件
BasePayConfig.initWithMerConfig(merConfig);
3、在业务代码中进⾏ SDK 的调⽤
3.1 基本必要参数封装
#基本参数封装
// 构建会员注册请求
MemberRegisterReq memberRegisterReq = new MemberRegisterReq();
// 请求流水号
memberRegisterReq.setReqTraceNum(SequenceTools.getReqSeqId32());
// 商户会员号
memberRegisterReq .setSignNum("gejunqing");
// 会员类型
memberRegisterReq .setMemberType("3");
// 会员角色
memberRegisterReq.setMemberRole("二级商户");
3.2 ⾮必要参数、可扩展参数封装
拓展参数 (可选)
memberRegisterReq.addExtendInfo("key1", "value1");
3.3 发起业务请求
#发起请求
Map<String, Object> response = BasePayClient.request(memberRegisterReq)
4、其他调⽤⽅式
为了应对接⼝变化后sdk更新的滞后性,以及sdk使⽤习惯不同等因素;
同时提供灵活可扩展的调⽤⽅式
# 构建会员注册请求
JSONObject dataMap = new JSONObject();
// 请求流水号
dataMap.put("reqTraceNum", SequenceTools.getReqSeqId32());
// 商户会员号
dataMap.put("signNum", "gejunqing");
// 会员类型
dataMap.put("memberType", "3");
// 会员角色
dataMap.put("memberRole", "二级商户");
System.out.println("构建会员注册请求: " + JSON.toJSONString(dataMap));
#发起请求
Map<String, Object> response = BasePayClient.request(TransCode.CODE_1001.getCode() , dataMap);
5、银⾏卡、证件号、银⾏卡有效期,银⾏卡CVV2等信息加解密:
为了安全性考虑,接⼝参数敏感数据需要进⾏密⽂,及调⽤⽅拿到密⽂后进⾏明⽂显示,对此,需要使⽤ SDK 提供的加解密⼯具如下:
工具类文件: com.allinpay.ystpay.sdk.core.utils.SM4Utils
SM4加密方法: encryptEcb(明文 ,加解密 key);
SM4解密方法: decryptEcb(密文 ,加解密 key);
附件
sdk文件下载附件:[附件]java版本sdk附件_20250611.zip