此接口支持API收款人信息修改/新增
| 测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/crossBorder/receiveInfoAddOrModify |
| 请求地址 | http://cbptrx.helipay.com/cbtrx/rest/crossBorder/receiveInfoAddOrModify |
| 提交方式 | 采用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) | 是 | RMBCROSS | 固定值 |
| 操作类型 | operationtype | String | 是 | 01 | 01新增 02修改 |
| 收款人姓名 | receiveName | String(10) | 是 | 张三 | |
| 国家或地区 | country | String(18) | 是 | USA | |
| 城市 | city | String(18) | 是 | 北京 | |
| 州或省份 | province | String(20) | 是 | ||
| 街道地址 | address | String(19) | 是 | ||
| 邮编 | postCode | String(40) | 是 | ||
| 币别 | currency | String(64) | 是 | USD,CAD | 可以多币别 不同币别用,进行分割 |
| 银行账号 | receiveAccountNo | String(20) | 是 | ||
| Swift Code | swiftCode | String | 是 | ||
| 银行名称 | bankName | String(40) | 是 | ||
| 银行地址 | bankAddress | String(20) | 是 | ||
| 收款人ID | receiveID | String(20) | 否 | 修改必填 | |
| ABA number/Routing number | ABAnumber | String | 否 | ||
| IBAN number | IBANnumber | String | 否 | IMEI | |
| BSB number | BSBnumber | String | 否 | ||
| 收款人协议生效日期 | validateReceive | String(40) | 否 | ||
| 收款人协议截止日期 | validateReceiveEnd | String(40) | 否 | ||
| 状态通知地址 | notifyUrl | String(50) | 否 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 返回码 | errorCode | String(20) | |||
| 返回信息 | errorMessage | String(64) | 是 | p_20170302185347 | |
| 收款人ID | receiveId | String(10) | 是 | 合利宝-跨境系统分配的收款人ID |
//收款人新增
@RequestMapping("/toReceiveInfoAdd")
public ModelAndView toAddRmbCrossReceiveInfo() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("rmbcross/rmbCrossReceiveInfoAdd");
return modelAndView;
}
@RequestMapping(value = "/receiveInfoAddInfo" , method = RequestMethod.POST)
public ModelAndView addRmbCrossReceiveInfo(@ModelAttribute @Valid ReceiveInfoModifyDTO receiveInfoModifyDTO, BindingResult bindingResult) throws UnsupportedEncodingException {
ModelAndView modelAndView = new ModelAndView();
if (bindingResult.hasErrors()) {
throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], bindingResult.getFieldError().getDefaultMessage());
}
if("02".equals(receiveInfoModifyDTO.getOperationtype())){
if (StringUtils.isBlank(receiveInfoModifyDTO.getReceiveID())){
throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], "修改类型 收款人ID必填");
}
}
HeliRequest result = HandleDataUtils.encodeAndSign(receiveInfoModifyDTO, receiveInfoModifyDTO.getProductCode(), receiveInfoModifyDTO.getPlatMerchantNo(), receiveInfoModifyDTO.getMerchantNo());
HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("receiveInfoModifyUrl"), JSONObject.toJSONString(result), HeliRequest.class);
ReceiveResponseForm receiveResponseForm = HandleDataUtils.decode(heliRequest, ReceiveResponseForm.class, receiveInfoModifyDTO.getProductCode(), receiveInfoModifyDTO.getPlatMerchantNo(), receiveInfoModifyDTO.getMerchantNo());
if (!CbDemoConstants.SUCCESS_CODE.equals(receiveResponseForm.getErrorCode())) {
throw new CommonSystemException(receiveResponseForm.getErrorCode(),receiveResponseForm.getErrorMessage());
}
logger.info("返回详细信息------------{}",receiveResponseForm.toString());
modelAndView.addObject("responseForm", receiveResponseForm);
modelAndView.setViewName("rmbcross/rmbCrossReceiveInfoResult");
return modelAndView;
}
| 测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/crossBorder/receiveInfoQuery |
| 请求地址 | http://cbptrx.helipay.com/cbtrx/rest/crossBorder/receiveInfoQuery |
| 提交方式 | 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8] |
| 签名算法 | UTF-8字符编码 SHA256签名 AES加密 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 产品编码 | productCode | String(20) | 是 | RMBCROSS | |
| 订单号 | orderNo | String(64) | 是 | p_20170302185347 | |
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
| 收款人ID | receiveID | String(20) | 是 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 产品编码 | productCode | String(20) | 是 | RMBCROSS | |
| 状态 | receiveStatus | String(10) | 是 | 当前收款人状态 | |
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
| 返回码 | errorCode | String(10) | 是 | 0000 | 0000 代表请求成功 |
| 返回信息 | errorMessage | String(200) | 否 | 成功 | 响应信息 错误信息 |
| 收款人ID | receiveId | String(200) | 是 | 当前收款人ID | |
| 审核备注 | auditRemark | String(20) | 否 | ||
| 收款人姓名 | receiveName | String(200) | 是 | 张三 | |
| 国家或地区 | country | String(200) | 否 | ||
| 城市 | city | String(18) | 否 | 北京 | |
| 州或省份 | province | String(20) | |||
| 街道地址 | address | String(19) | 是 | 222 BROADWAY NEW YORK NY 1003 US | |
| 邮编 | postCode | String(40) | 是 | 510000 | 邮编 |
| 币别 | currency(10) | String | 是 | USD | |
| 银行账号 | receiveAccountNo | String(20) | 是 | 6228480031588888888 | |
| Swift Code | swiftCode | String(40) | 是 | HASEHKHH | 8位或者11位字母或数字 |
| 银行名称 | bankName | String(40) | 是 | Hang Seng Bank Ltd | |
| 银行地址 | bankAddress | String(20) | 是 | 83 Des Voeux road Central, HongKong | |
| ABA number/Routing number | ABAnumber | String(20) | 否 | 101010011 | |
| IBAN number | IBANnumber | String(10) | 否 | IMEI | |
| BSB number | BSBnumber | String(50) | 否 | 6位字母或数字 | |
| 收款人协议生效日期 | validateReceive | String(40) | 否 | ||
| 收款人协议截止日期 | validateReceiveEnd | String(40) | 否 |
//收款人查询
@RequestMapping("/toReceiveInfoQuery")
public ModelAndView receiveInfoQuery() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("rmbcross/rmbCrossReceiveInfoQuery");
return modelAndView;
}
@RequestMapping(value = "/receiveInfoQuery" , method = RequestMethod.POST)
public ModelAndView rmbCrossReceiveInfoQuery(@ModelAttribute @Valid ReceiveInfoQueryDTO receiveInfoQueryDTO, 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(receiveInfoQueryDTO, receiveInfoQueryDTO.getProductCode(), receiveInfoQueryDTO.getPlatMerchantNo(), receiveInfoQueryDTO.getMerchantNo());
HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("receiveInfoQueryUrl"), JSONObject.toJSONString(result), HeliRequest.class);
ReceiveQueryResponseForm receiveResponseForm = HandleDataUtils.decode(heliRequest, ReceiveQueryResponseForm.class, receiveInfoQueryDTO.getProductCode(), receiveInfoQueryDTO.getPlatMerchantNo(), receiveInfoQueryDTO.getMerchantNo());
if (!CbDemoConstants.SUCCESS_CODE.equals(receiveResponseForm.getErrorCode())) {
throw new CommonSystemException(receiveResponseForm.getErrorCode(),receiveResponseForm.getErrorMessage());
}
logger.info("返回详细信息------------{}",receiveResponseForm.toString());
modelAndView.addObject("responseForm", receiveResponseForm);
modelAndView.setViewName("rmbcross/rmbCrossReceiveInfoQueryResult");
return modelAndView;
}
| 测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/crossBorder/receiveFileUpload |
| 请求地址 | https://cbptrx.helipay.com/cbtrx/rest/crossBorder/receiveFileUpload |
| 提交方式 | 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8] |
| 签名算法 | UTF-8字符编码 SHA256签名 AES加密 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 产品编码 | productCode | String(20) | 是 | RMBCROSS | |
| 商户订单号 | orderNo | String(64) | 是 | p_20170302185347 | |
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
| 收款人ID | receiveID | String(10) | 是 | 收款人ID | |
| 文件类型 | fileType | String(10) | 是 | zip/rar |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 产品编码 | productCode | String(20) | 是 | RMBCROSS | |
| 收款人ID | receiveId | String(64) | 是 | RE79462793YEUDMe100000018 | |
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
| 返回码 | errorCode | String(10) | 是 | 0000 | 0000 代表请求成功 |
| 返回信息 | errorMessage | String(200) | 是 | 成功 | 响应信息 错误信息 |
| 附件上传地址 | filePath | String(100) | 是 | 返回的附件上传地址 用put方式进行上传 | |
| token | token | String(40) | 是 | 返回的附件上传token 上传文件token一并上传 |
//收款人文件上传
@RequestMapping("/toReceiveInfoFileUpload")
public ModelAndView toRmbCrossReceiveInfoFileUpload() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("rmbcross/rmbCrossReceiveFile");
return modelAndView;
}
@RequestMapping(value = "/rmbCrossFileUpload" , method = RequestMethod.POST)
public ModelAndView rmbCrossFileUpload(@ModelAttribute @Valid ReceiveInfoFileUploadDTO queryForm, 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(queryForm, queryForm.getProductCode(), queryForm.getPlatMerchantNo(), queryForm.getMerchantNo());
HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("receiveInfoFileUpUrl"), JSONObject.toJSONString(result), HeliRequest.class);
ReceiveFileUploadResponseForm receiveFileUploadResponseForm = HandleDataUtils.decode(heliRequest, ReceiveFileUploadResponseForm.class, queryForm.getProductCode(), queryForm.getPlatMerchantNo(), queryForm.getMerchantNo());
if (!CbDemoConstants.SUCCESS_CODE.equals(receiveFileUploadResponseForm.getErrorCode())) {
throw new CommonSystemException(receiveFileUploadResponseForm.getErrorCode(),receiveFileUploadResponseForm.getErrorMessage());
}
logger.info("返回详细信息------------{}",receiveFileUploadResponseForm.toString());
modelAndView.addObject("responseForm", receiveFileUploadResponseForm);
modelAndView.setViewName("rmbcross/rmbCrossReceiveFileUploadResult");
return modelAndView;
}
| 错误码 | 错误码描述 | 解决方案 |
|---|---|---|