使用此接口发起网银支付
| 测试请求地址 | 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()));
}
| 错误码 | 错误码描述 | 解决方案 |
|---|---|---|