工行聚合支付对接流程及测试

之前已经对接了支付宝微信银联之类的,这次说一下对接工行的聚合支付,首先是工行的接口文档详见工行开放平台地址,实现的主要是线下支付,所以对接的是二维码支付的相关内容,这是工行提供的二维码相关接口

工行聚合支付对接流程及测试_第1张图片

 在使用工行的聚合支付之前,需要先申请账号,一般需要商户号,APPID,二维码支付还需要一个e生活档案编号,签名采用的是rsa2,工行的公钥是在他们平台下载的,商户的公私钥可以自己生成然后配置在商户后台,使用之前需要引入工行的jar包,这样可以直接调用的

下单生成二维码的例子:

QrcodeGenerateRequestV2.QrcodeGenerateRequestV2Biz bizContent = new QrcodeGenerateRequestV2.QrcodeGenerateRequestV2Biz();
        //商户线下档案编号
        bizContent.setMerId(payAccountInfoDO.getMchId());
        //e生活档案编号
        bizContent.setStoreCode(payAccountInfoDO.getAppSecret());
        //商户系统订单号
        bizContent.setOutTradeNo(transOrderDO.getOutTradeNo());
        bizContent.setOrderAmt(fee.toString());
        bizContent.setTradeDate(DateUtil.toIntYMD(transOrderDO.getGmtCreate()));
        bizContent.setTradeTime(DateUtil.toIntHMS(transOrderDO.getGmtCreate()));
        //二维码有效期  秒   
        bizContent.setPayExpire("90");

        //生成订单IP
        bizContent.setTporderCreateIp("127.0.0.1");
        bizContent.setNotifyUrl(PayConfig.getIcbcCallbackIp() + IcbcPayConfig.NotifyUrl);//notifyflag为1时,必传,回调地址
        //是否通知
        bizContent.setNotifyFlag("1");
        System.out.println(bizContent.toString());
        QrcodeGenerateResponseV2 responseV2 = null;
        log.info("logId:{},outTradeNo:{},下单,请求工商报文:{}", logId, transOrderDO.getOutTradeNo(), JSONObject.toJSONString(bizContent));
       
            responseV2 = IcbcPayApiUtil.getGenerate(logId, payAccountInfoDO, bizContent);

组合生成二维码需要的参数,调用生成方法:

 //生成二维码
    public static QrcodeGenerateResponseV2 getGenerate(String logId, PayAccountInfoDO payAccountInfoDO, QrcodeGenerateRequestV2Biz bizContent) throws IcbcApiException {
        DefaultIcbcClient client = new DefaultIcbcClient(payAccountInfoDO.getAppId(), payAccountInfoDO.getSignType(), payAccountInfoDO.getPrivateRsa(), payAccountInfoDO.getProviderPublicRsa());
        QrcodeGenerateRequestV2 request = new QrcodeGenerateRequestV2();
        request.setServiceUrl(" https://gw.open.icbc.com.cn" +  "/api/qrcode/V2/generate");
        request.setBizContent(bizContent);
        QrcodeGenerateResponseV2 response = null;
        response = client.execute(request, IcbcPayConfig.getMsgId());
        return response;
    }

其他接口类似,先拼接参数再调用包的放法,接口文档都有详细说明的

以上

最后

有时候,同样一件事,我们可以去安慰别人,却不能说服自己

你可能感兴趣的:(三方对接,二维码支付)