美文网首页干货分享 | ...
聚合支付快捷支付接口代码详解

聚合支付快捷支付接口代码详解

作者: JosieS | 来源:发表于2018-09-17 17:15 被阅读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','divAcctId':'12345','divAmt':'0.03','divFreezeFg':'00'}]",//分账串信息

           "bg_ret_url": "http://192.168.100.110:8001/npayCallBack/asyncHandle.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")));

    // 加签

    SignResultsignResult  = CFCASignature.signature("/app/etc/product/" + pfxFileName,

    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(testUrl).charset(charset);

     jodd.http.HttpResponse httpResponse =httpRequest.contentType(contentType).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

    = newString(Base64.decodeBase64(content), Charset.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/" + pfxFileName, pfxFilePwd,base64RequestParams, "utf-8");

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

    return signResult.getSign();

    } else {

    return "加签失败";

    }

    }

            好了,今天就记录到这里,相关的报错信息在接口文档中也有,根据提示调试吧。所有的接口编号、接口名称、提示都在页面上,用起来非常方便。个人认为这是其宣称“全程自助对接”的关键之处,这些也许能帮对接使用支付的公司减少不少开发、运营的成本。

    文章来源:https://blog.csdn.net/xiucaiyao/article/details/82660680

    相关文章

      网友评论

        本文标题:聚合支付快捷支付接口代码详解

        本文链接:https://www.haomeiwen.com/subject/oturnftx.html