跨境系统-网银下单

接口描述

使用此接口发起网银支付

流程图

基本信息

测试请求地址 https://cbtrxtest.helipay.com/cbtrx/rest/pay/online
请求地址 https://cbptrx.helipay.com/cbtrx/rest/pay/online
提交方式 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8]
签名算法 UTF-8字符编码 SHA256签名 AES加密

请求参数

名称 参数 类型 必填 示例值 说明
产品编码 productCode String(20) ONLINEB2B ONLINEB2B 或 ONLINEB2C
商户订单号 orderNo String(64) p_20170302185347 商户系统内部订单号,同一商户号下订单号唯一
商户编号 merchantNo String(10) Me10000002 合利宝-跨境系统分配的商户编号
订单金额 orderAmount Number(10.2) 0.01 单位:元
用户姓名 memberName String(10) 张三
用户身份证号 memberID String(18) 110101200001012999
用户手机号 memberMobile String(20) 13701234567
银行编码 bankCode String(20) ICBC/CCB 银行编码,详细信息参见附录
业务类型 business String(5) B2C/B2B 对公/对私
下单ip orderIp String(15) 1.1.1.1
商品描述 goodsName String(400) Iphone7
有效期 period String(6) 1 默认为7
有效期单位 periodUnit String(10) HOUR YEAR/MONTH/DAY/HOUR/MINUTE/SECOND;默认为DAY
服务器回调地址 serverCallbackUrl String(300) http://www.456.com
页面回调地址 pageCallbackUrl String(300) http://www.123.com
借贷类型 onlineCardType String(15) DEBIT/CREDIT 借/贷
平台商户编号 platMerchantNo String(10) 如下说明 电商平台商户所属的平台商编号
分账请求参数明细 shareList List(100) 如下说明 若商户开通分账产品,且本次交易需要分账,则此参数必填

分账请求参数明细

名称 参数 类型 必填 示例值 说明
排序参数 index Integer 1 用于交易加密参数排序,不能重复
分账账户编号 shareMerchantNo String(10) Me10000002
分账金额 shareAmount Number(10.2) 0.01 单位:元
所有明细分账金额相加必须等于交易金额
主账户分账金额必须大于交易手续费

响应参数

名称 参数 类型 必填 示例值 说明
产品编码 productCode String(20) ONLINEB2B ONLINEB2B 或 ONLINEB2C
商户订单号 orderNo String(64) p_20170302185347
商户编号 merchantNo String(10) Me10000002 合利宝-跨境系统分配的商户编号
平台流水号 serialNumber String(32) 201702241400010002 合利宝-跨境系统生成的唯一交易流水号
响应码 errorCode String(10) 0000 0000 代表请求成功
响应信息 errorMessage String(200) 成功 响应信息 错误信息
响应时间 current String(20) 2018-04-01 12:00:00 格式yyyy-MM-dd HH:mm:ss
html redirectUrl String 在浏览器可以自动提交的html

代码示例

  @Test
    public void onlinePay() {
        RemoteServiceImpl remoteService = new RemoteServiceImpl();
        HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("onlinePayUrl"), installDto(), HeliRequest.class);
        OnlinePayResponseForm form = decode(heliRequest, OnlinePayResponseForm.class,heliRequest.getProductCode(),heliRequest.getMerchantNo());
        logger.info("#####解密后的内容为{}", form.toString());
    }

    public static String installDto() {
        OnlinePayRequestFrom onlinePayRequestFrom = new OnlinePayRequestFrom();
        //必填项
        onlinePayRequestFrom.setMemberMobile("13612345678");
        //付款人姓名
        onlinePayRequestFrom.setMemberName("");
        onlinePayRequestFrom.setMemberID("123456789987654321");
        onlinePayRequestFrom.setMerchantNo(LoadPropertiesUtils.getProperty("merchantNo"));
        //产品编码设置为ONLINEB2B
        onlinePayRequestFrom.setProductCode(ProductEnumType.ONLINEB2B.name());
        onlinePayRequestFrom.setBankCode("CMBCHINA");
        onlinePayRequestFrom.setOrderNo("ONLINE2314233456");
        //订单金额
        onlinePayRequestFrom.setOrderAmount(new BigDecimal(""));
        onlinePayRequestFrom.setBusiness(BusinessType.B2C.name());
        //选填项
        onlinePayRequestFrom.setOrderIp("127.0.0.1");
        //商品名称
        onlinePayRequestFrom.setGoodsName("");
        onlinePayRequestFrom.setPeriod("30");
        onlinePayRequestFrom.setPeriodUnit("MINUTE");
        onlinePayRequestFrom.setPageCallbackUrl("www.456.com");
        onlinePayRequestFrom.setServerCallbackUrl("www.456.com");
        onlinePayRequestFrom.setOnlineCardType(OnlineCardType.DEBIT.name());
        return JSONObject.toJSONString(encodeAndSign(onlinePayRequestFrom,onlinePayRequestFrom.getProductCode(),onlinePayRequestFrom.getMerchantNo()));
    }
                                

                                

                                

错误码

错误码 错误码描述 解决方案