编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

「分享体验」汇付聚合支付自助接入解决方案快捷支付接口代码详解

wxchong 2024-08-02 08:54:02 开源技术 10 ℃ 0 评论

今天,我先讲一下汇付天下聚合支付自助接入解决方案里的快捷支付接

口代码,一方面给自己做一个记录,方便日后查看,另一方面也是方便一些基础

不是很强的技术人员在对接汇付天下支付的时候,省去一些码代码的时间。

下面是快捷支付接口代码:

JAVA 代码示例:

首先将需要收集的参数都写成 json 格式的字符串。

String valueObj = "{

"version": "10",

"cmd_id": "123123",

"mer_cust_id": "123123123123",//入驻商户 id

"user_cust_id": "321321321321321",//入驻商户下级商户 ID

"order_id": "1234567",//订单编号

"order_date": "20180327",

"trans_amt": "6.95",

"bind_card_id": "1000000085",//商户已绑定绑定卡号

"sms_code": "111111",//短信验证码

"div_detail": "[{'divCustId':'123123123123','divAcctId':'45841','

divAmt':'6.92','divFreezeFg':'01'},{'divCustId':'321321321321','divAcct

Id':'12345','divAmt':'0.03','divFreezeFg':'00'}]",//分账串信息

"bg_ret_url": "http://192.168.100.110:8001/npayCallBack/asyncHand

le.json",//地址可以询问对方运营

"ret_url": "",

"mer_priv": "test",

"extension": "test"

}";

String testUrl = "http://192.168.100.110:8083/npay/merchantRequest";//

地址可以询问对方运营

// 加签用 pfx文件

String pfxFileName = "888888-汇付测试商户.pfx";

// 加签用密码

String pfxFilePwd = "888888";

// 进行 base64转换

String base64RequestParams = Base64.encodeBase64String(valueObj.getBytes

(Charset.forName("utf-8")));

// 加签

SignResult signResult = CFCASignature.signature("/app/etc/product/" + p

fxFileName, pfxFilePwd,base64RequestParams, "utf-8");

String checkValue = signResult.getSign();

String cmdId = "123";//交易指令 ID

String merCustId = "123123123123";//入驻商户 id

String version = "10";

String contentType = "application/x-www-form-urlencoded";

String charset = "UTF-8";

String postStr = "cmd_id=" + cmdId + "&version=" + version + "&mer_cust_

id=" + merCustId + "&check_value=" + checkValue;

jodd.http.HttpRequest httpRequest = jodd.http.HttpRequest.post(testUr

l).charset(charset);

jodd.http.HttpResponse httpResponse = httpRequest.contentType(contentTy

pe).body(postStr).send();

String body = httpResponse.bodyText();

//响应解密

JSONObject jsonObject = JSON.parseObject(body);

String sign = jsonObject.getString("check_value");

String cerName = "CFCA_ACS_OCA31.cer";//文件可以询问对方运营

VerifyResult verifyResult = CFCASignature.verifyMerSign("100001", sign,

"utf-8", "/app/etc/product/" + cerName);

String content = new String(verifyResult.getContent(), Charset.forName("

utf-8"));

String decrptyContent = new String(Base64.decodeBase64(content), Charse

t.forName("utf-8"));

成功响应:

{

"cmd_id": "123",

"resp_code": "123000",

"resp_desc": "交易成功",

"mer_cust_id" : "123123123123",

"order_date": "20180327",

"order_id": "10000000001",

.......

}

失败响应:

{

"cmd_id": "123",

"resp_code": "123003",

"resp_desc": "交易失败",

"mer_cust_id" : "123123123123",

"order_date": "20180327",

"order_id": "10000000001",

.......

}

加签方法:

private static String sign(String valueObj) {

// 加签用 pfx文件

String pfxFileName = "888888-汇付测试商户.pfx";

// 加签用密码

String pfxFilePwd = "888888";

// 进行 base64转换

String base64RequestParams = Base64.encodeBase64String(valueObj.getBytes

(Charset.forName("utf-8")));

// 加签

SignResult signResult = CFCASignature.signature("/app/etc/product/" + pf

xFileName, pfxFilePwd,base64RequestParams, "utf-8");

if ("000".equals(signResult.getCode())) {

return signResult.getSign();

} else {

return "加签失败";

}

}

好了,今天就记录到这里,相关的报错信息在接口文档中也有,根据提示

调试吧。所有的接口编号、接口名称、提示都在页面上,用起来非常方便。个人

认为这是其宣称"全程自助对接"的关键之处,这些也许能帮对接使用支付的公司

减少不少开发、运营的成本。

详细可以了解:https://poc.cloudpnr.com/portal/

帖子来源于:https://blog.csdn.net/xiucaiyao/article/details/82660680

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表