绑卡以及交易. 首绑支付需要使用短验接口.下单未选择同步下发短信,发起交易时需要调用"首绑支付短信"接口进行短信验证
| 测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/pay/firstApply |
| 请求地址 | https://cbptrx.helipay.com/cbtrx/rest/pay/firstApply |
| 提交方式 | 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8] |
| 签名算法 | UTF-8字符编码 SHA256签名 AES加密 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
| 订单号 | orderNo | String(64) | 是 | p_20170302185347 | |
| 产品编码 | productCode | String(20) | 是 | QUICKPAY | 固定值 |
| 用户编号 | memberNo | String | 是 | ID9527 | |
| 用户姓名 | memberName | String(10) | 是 | 张三 | |
| 证件类型 | idCardType | String(18) | 是 | IDCARD | |
| 证件号码 | memberID | String(18) | 是 | 110101200001012999 | |
| 用户手机号 | memberMobile | String(20) | 是 | 13701234567 | |
| 卡号 | cardNo | String(19) | 是 | 622******9890707 | |
| 交易金额 | orderAmount | String(40) | 是 | 1.0 | |
| 交易币种 | currency(10) | String | 是 | CNY | |
| 商品数量 | goodsQuantity | String(20) | 是 | 1 | |
| 商品名称 | goodsName | String(40) | 是 | Mac | |
| 用户注册账号 | userAccount | String(40) | 是 | 18900000001 | |
| 应用类型 | appType | String(20) | 是 | IOS | IOS、AND(安卓客户端)、H5、WX、OTHER |
| 应用名 | appName | String(20) | 是 | 某宝 | |
| 业务场景 | dealSceneType | String(20) | 是 | QUICKPAY | |
| 终端类型 | terminalType | String(10) | 是 | IMEI | IMEI、 MAC、 UUID(针对 IOS 系统)、 OTHER |
| 终端标识 | terminalId | String(50) | 是 | 122121212121 | |
| 服务器通知回调地址 | serverCallbackUrl | String(40) | 是 | www.baidu.com | |
| 下单IP | orderIp | String(40) | 是 | 127.0.0.1 | |
| 是否同步下发短信 | sendValidateCode | String(10) | 是 | 是/否 | |
| 信用卡有效期年份 | expireYear | String(10) | 否 | 21 | |
| 信用卡有效期月份 | expireMonth | String(10) | 否 | 03 | |
| cvv2 | cvv2 | String(10) | 否 | ||
| 交易定位地址 | lbs | String(40) | 否 | ||
| 场景参数 | dealSceneParams | String(40) | 否 | ||
| 有效期单位 | periodUnit | String(20) | 否 | MINUTE | |
| 有效期 | period | String(20) | 否 | 30 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 产品编码 | productCode | String(20) | 是 | QUICKPAY | |
| 订单号 | orderNo | String(64) | 是 | p_20170302185347 | |
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
| 返回码 | errorCode | String(10) | 是 | 0000 | 0000 代表请求成功 |
| 返回信息 | errorMessage | String(200) | 否 | 成功 | 响应信息 错误信息 |
| 响应日期 | current | String(50) | 否 |
@RequestMapping(value = "/firstQuickPay", method = RequestMethod.POST)
public ModelAndView quickPay(@ModelAttribute @Valid FirstQuickPayRequestForm firstQuickPayRequestForm, BindingResult bindingResult) throws UnsupportedEncodingException {
ModelAndView modelAndView = new ModelAndView();
if (bindingResult.hasErrors()) {
throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], bindingResult.getFieldError().getDefaultMessage());
}
HeliRequest result = HandleDataUtils.encodeAndSign(firstQuickPayRequestForm,firstQuickPayRequestForm.getProductCode(),firstQuickPayRequestForm.getMerchantNo());
HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("firstQuickURL"), JSONObject.toJSONString(result), HeliRequest.class);
FirstQuickPayOrderResponseForm responseForm = HandleDataUtils.decode(heliRequest, FirstQuickPayOrderResponseForm.class,firstQuickPayRequestForm.getProductCode(),firstQuickPayRequestForm.getMerchantNo());
if (!CbDemoConstants.SUCCESS_CODE.equals(responseForm.getErrorCode())) {
throw new CommonSystemException(responseForm.getErrorCode(),responseForm.getErrorMessage());
}
logger.info(responseForm.getOrderNo());
modelAndView.addObject("responseForm", responseForm);
modelAndView.setViewName("firstpay/firstQuickPayResult");
return modelAndView;
}
| 测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/pay/firstApplyConfirmSMS |
| 请求地址 | https://cbptrx.helipay.com/cbtrx/rest/pay/firstApplyConfirmSMS |
| 提交方式 | 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8] |
| 签名算法 | UTF-8字符编码 SHA256签名 AES加密 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 产品编码 | productCode | String(20) | 是 | QUICKPAY | |
| 原申请订单号 | orderNo | String(64) | 是 | p_20170302185347 | 原绑卡申请订单号 |
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 产品编码 | productCode | String(20) | 是 | QUICKPAY | |
| 原申请订单号 | orderNo | String(64) | 是 | p_20170302185347 | 原绑卡申请订单号 |
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
| 返回码 | errorCode | String(10) | 是 | 0000 | 0000 代表请求成功 |
| 返回信息 | errorMessage | String(200) | 否 | 成功 | 响应信息 错误信息 |
@RequestMapping(value = "/firstQuickPayConfirmSms", method = RequestMethod.POST)
public ModelAndView quickPayConfirmSMS(@ModelAttribute @Valid NewQuickPayConfirmSMSRequestForm requestForm, BindingResult bindingResult) throws UnsupportedEncodingException {
ModelAndView modelAndView = new ModelAndView();
if (bindingResult.hasErrors()) {
throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], bindingResult.getFieldError().getDefaultMessage());
}
HeliRequest result = HandleDataUtils.encodeAndSign(requestForm,requestForm.getProductCode(),requestForm.getMerchantNo());
HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("firstQUickURLSMS"), JSONObject.toJSONString(result), HeliRequest.class);
NewQuickPayConfirmSMSResponseForm responseForm = HandleDataUtils.decode(heliRequest, NewQuickPayConfirmSMSResponseForm.class,requestForm.getProductCode(),requestForm.getMerchantNo());
if (!CbDemoConstants.SUCCESS_CODE.equals(responseForm.getErrorCode())) {
throw new CommonSystemException(responseForm.getErrorCode(),responseForm.getErrorMessage());
}
logger.info(responseForm.getOrderNo());
modelAndView.addObject("responseForm", responseForm);
modelAndView.setViewName("firstpay/firstReSendMsgResult");
return modelAndView;
}
| 测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/pay/firstApplyConfirm |
| 请求地址 | https://cbptrx.helipay.com/cbtrx/rest/pay/firstApplyConfirm |
| 提交方式 | 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8] |
| 签名算法 | UTF-8字符编码 SHA256签名 AES加密 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 产品编码 | productCode | String(20) | 是 | QUICKPAY | |
| 商户订单号 | orderNo | String(64) | 是 | p_20170302185347 | |
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
| 短信验证码 | smsCode | String(10) | 是 | 123456 | 短信验证码 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 产品编码 | productCode | String(20) | 是 | QUICKPAY | |
| 商户订单号 | orderNo | String(64) | 是 | p_20170302185347 | |
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
| 响应码 | retCode | String(10) | 否 | 0000 | 0000 代表请求成功 |
| 响应信息 | retMsg | String(200) | 否 | 成功 | 响应信息 错误信息 |
| 绑卡ID | bindId | String(40) | 否 |
@RequestMapping(value = "/firstQuickPayConfirm", method = RequestMethod.POST)
public ModelAndView quickPayConfirm(@ModelAttribute @Valid FirstQuickPayConfirmRequestForm requestForm, BindingResult bindingResult) throws UnsupportedEncodingException {
ModelAndView modelAndView = new ModelAndView();
if (bindingResult.hasErrors()) {
throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], bindingResult.getFieldError().getDefaultMessage());
}
HeliRequest result = HandleDataUtils.encodeAndSign(requestForm,requestForm.getProductCode(),requestForm.getMerchantNo());
HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("firstQuickConfirm"), JSONObject.toJSONString(result), HeliRequest.class);
FirstQuickPayConfirmResponseForm responseForm = HandleDataUtils.decode(heliRequest, FirstQuickPayConfirmResponseForm.class,requestForm.getProductCode(),requestForm.getMerchantNo());
if (!CbDemoConstants.SUCCESS_CODE.equals(responseForm.getErrorCode())){
throw new CommonSystemException(responseForm.getErrorCode(),responseForm.getErrorMessage());
}
logger.info(responseForm.getOrderNo());
modelAndView.addObject("responseForm", responseForm);
modelAndView.setViewName("firstpay/firstQuickPayConfirmResult");
return modelAndView;
}
| 错误码 | 错误码描述 | 解决方案 |
|---|---|---|