此接口支持API牌价信息查看
| 测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/crossBorder/priceQueryApi |
| 请求地址 | https://cbptrx.helipay.com/cbtrx/rest/crossBorder/priceQueryApi |
| 提交方式 | 采用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 | 固定值 |
| 商户卖出币种 | sellCurrency | String | 是 | CNY | 人民币 |
| 商户买入币种 | buyCurrency | String | 是 | USD |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 返回码 | errorCode | String(20) | |||
| 返回信息 | errorMessage | String(64) | 是 | p_20170302185347 | |
| 商户编号 | merchantNo | String | 是 | ||
| 卖出币种 | sellCurrency | String | |||
| 买入币种 | buyCurrency | String | |||
| 牌价 | quotation | String | 是 | 689.65 | 实时提供给商户的牌价 |
| 报价时间 | createDate | Date | 是 |
/**
* 查询牌价
*/
@RequestMapping("/toQueryQuotation")
public ModelAndView toQueryQuotation() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("rmbcross/rmbCrossQuotationInfoQuery");
return modelAndView;
}
@RequestMapping(value = "/queryQuotation" , method = RequestMethod.POST)
public ModelAndView rmbCrossQuotationQuery(@ModelAttribute @Valid RmbCrossQuotationQueryDTO rmbCrossQuotationQueryDTO, 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(rmbCrossQuotationQueryDTO, rmbCrossQuotationQueryDTO.getProductCode(), rmbCrossQuotationQueryDTO.getPlatMerchantNo(), rmbCrossQuotationQueryDTO.getMerchantNo());
HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("queryQuotationQueryUrl"), JSONObject.toJSONString(result), HeliRequest.class);
RmbCrossQuotationResponseForm rmbCrossQuotationResponseForm = HandleDataUtils.decode(heliRequest, RmbCrossQuotationResponseForm.class, rmbCrossQuotationQueryDTO.getProductCode(), rmbCrossQuotationQueryDTO.getPlatMerchantNo(), rmbCrossQuotationQueryDTO.getMerchantNo());
if (!CbDemoConstants.SUCCESS_CODE.equals(rmbCrossQuotationResponseForm.getErrorCode())) {
throw new CommonSystemException(rmbCrossQuotationResponseForm.getErrorCode(),rmbCrossQuotationResponseForm.getErrorMessage());
}
logger.info("返回详细信息------------{}",rmbCrossQuotationResponseForm.toString());
modelAndView.addObject("responseForm", rmbCrossQuotationResponseForm);
modelAndView.setViewName("rmbcross/rmbCrossQuotationInfoResult");
return modelAndView;
}
| 测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/crossBorder/lockRemit |
| 请求地址 | https://cbptrx.helipay.com/cbtrx/rest/crossBorder/lockRemit |
| 提交方式 | 采用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 | 合利宝-跨境系统分配的商户编号 |
| 锁汇模式 | lockRemitStyle | String | 是 | 01 | 01:即时锁汇(发起跨境汇款订单后,再进行锁汇) 02:提前锁汇 |
| 跨境汇款订单号 | rmbCrossOrderNo | String | 是 | RE34060YMe10000018 | 跨境主订单号 |
| 商户卖出币种 | sellCurrency | String | 否 | 即时锁汇留空,提前锁汇必填 | |
| 商户卖出金额 | sellAmount | String | 否 | 即时锁汇留空,提前锁汇必填 | |
| 商户买入币种 | buyCurrency | String | 否 | 即时锁汇留空,提前锁汇必填 | |
| 商户买入金额 | buyAmount | String | 否 | 即时锁汇留空,提前锁汇必填;且卖出金额与买入金额只能填写其中一项 | |
| 交割日期 | segmentationDate | String | 否 | 交割日期 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 返回码 | errorCode | String | 是 | 0000 | |
| 返回信息 | errorMessage | String | 是 | 成功 | |
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
| 请求流水号 | requestSerNo | String(10) | 是 | 2019072500001 | 商户请求合利宝锁汇订单号 |
| 锁汇模式 | lockRemitStyle | String | 是 | 01 | 01:即时锁汇(发起跨境汇款订单后,进行锁汇) 02:提前锁汇 |
| 跨境汇款订单号 | rmbCrossOrderNo | String | 否 | 跨境汇款订单号 | |
| 卖出币种 | sellCurrency | String | 否 | CNY | 即时锁汇为CNH;提前锁汇为商户填写的卖出币种 |
| 卖出金额 | sellAmount | String | 否 | 100 | 即时锁汇为跨境汇款订单对应的“到岸金额”;提前锁汇为商户填写的卖出金额 |
| 买入币种 | buyCurrency | String | 否 | USD | 即时锁汇为跨境汇款订单对应的“到岸币别”;提前锁汇为商户填写的买入币种 |
| 买入金额 | buyAmount | String | 否 | 即时锁汇为跨境汇款订单对应的“订单金额”;提前锁汇为商户填写的买入金额 | |
| 交割时间 | deliveryDate | Date | 否 | 交割时间 | |
| 牌价 | quotation | String | 是 | 689.65 | 商户锁定的实时牌价 |
| 牌价锁定日期 | quotationLockDate | Date | 是 | 牌价锁定日期 |
/**
* 锁汇
*/
@RequestMapping("/toLockRemit")
public ModelAndView toLockRemit() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("rmbcross/rmbCrossLockRemit");
return modelAndView;
}
@RequestMapping(value = "/lockRemit" , method = RequestMethod.POST)
public ModelAndView rmbLockRemit(@ModelAttribute @Valid RmbCrossLockRemitDTO rmbCrossLockRemitDTO, 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(rmbCrossLockRemitDTO, rmbCrossLockRemitDTO.getProductCode(), rmbCrossLockRemitDTO.getPlatMerchantNo(), rmbCrossLockRemitDTO.getMerchantNo());
HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("lockRemitQuotationQueryUrl"), JSONObject.toJSONString(result), HeliRequest.class);
RmbCrossLockRemitResponseForm rmbCrossQuotationResponseForm = HandleDataUtils.decode(heliRequest, RmbCrossLockRemitResponseForm.class, rmbCrossLockRemitDTO.getProductCode(), rmbCrossLockRemitDTO.getPlatMerchantNo(), rmbCrossLockRemitDTO.getMerchantNo());
if (!CbDemoConstants.SUCCESS_CODE.equals(rmbCrossQuotationResponseForm.getErrorCode())) {
throw new CommonSystemException(rmbCrossQuotationResponseForm.getErrorCode(),rmbCrossQuotationResponseForm.getErrorMessage());
}
logger.info("返回详细信息------------{}",rmbCrossQuotationResponseForm.toString());
modelAndView.addObject("responseForm", rmbCrossQuotationResponseForm);
modelAndView.setViewName("rmbcross/rmbCrossLockRemitResult");
return modelAndView;
}
| 错误码 | 错误码描述 | 解决方案 |
|---|---|---|