使用此接口发起对原交易的退款请求
| 测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/refund/refundApply |
| 请求地址 | https://cbptrx.helipay.com/cbtrx/rest/refund/refundApply |
| 提交方式 | 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8] |
| 签名算法 | UTF-8字符编码 SHA256签名 AES加密 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 原订单产品编码 | productCode | String(20) | 是 | 例:ONLINEB2C、ONLINEB2B、QUICKPAY等 | |
| 原订单号 | orderNo | String(64) | 是 | p_20170302185347 | 原交易订单号 |
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
| 退款请求订单号 | refundOrderNo | String(64) | 是 | refund_p_20170302185347 | |
| 退款金额 | refundAmount | Number(10.2) | 是 | 0.01 | 单位:元 |
| 退款备注 | refundDesc | String(128) | 否 | 备注 | 备注退款原因等信息 |
| 平台商户编号 | platMerchantNo | String(10) | 否 | 如下说明 | 电商平台商户所属的平台商编号 |
| 分账退款请求参数明细 | shareRefundList | List(100) | 否 | 如下说明 | 分账订单退款,必须填写分账退款明细 |
| 服务器回调地址 | refundNotifyAddress | String(128) | 是 | www.baidu.com | 服务器回调地址 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 排序参数 | index | Integer | 是 | 1 | 用于交易加密参数排序,不能重复 |
| 指定退款分账账户编号 | shareMerchantNo | String(10) | 是 | Me10000002 | |
| 退款金额 | refundAmount | Number(10.2) | 是 | 0.01 | 单位:元 所有分账退款明细金额相加必须等于总退款金额 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 响应码 | errorCode | String(10) | 是 | 0000 | 0000 代表请求成功 |
| 响应信息 | errorMessage | String(200) | 否 | 成功 | 响应信息 错误信息 |
| 原订单产品编码 | productCode | String(20) | 是 | ||
| 响应时间 | current | String(20) | 是 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
| 原订单号 | orderNo | String(64) | 是 | p_20170302185347 | |
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
| 退款汇总: | refundRecord | ||||
| 原订单请求号 | sourceOrderNo | String(64) | 否 | ||
| 原订单序列号 | sourceSerialNumber | String(32) | 否 | ||
| 原订单金额 | sourceOrderAmount | Number(10.2) | 否 | ||
| 原订单手续费 | sourceOrderFee | Number(10.2) | 否 | ||
| 原订单完成时间 | sourceOrderCompleteDate | String(20) | 否 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
| 已退款金额 | refundedAmount | Number(10.2) | 否 | ||
| 已退款手续费 | refundedFee | Number(10.2) | 否 | ||
| 退款次数 | refundCount | int | 否 | ||
| 最近退款时间 | latestRefundDate | String(20) | 否 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
| 退款明细: | detail | ||||
| 退款序列号 | serialNumber | String(64) | 否 | ||
| 退款请求号 | refundOrderNo | String(64) | 否 | ||
| 退款金额 | refundAmount | Number(10.2) | 否 | ||
| 退款手续费 | refundFee | Number(10.2) | 否 | ||
| 退款入账金额 | refundInAccountAmout | Number(10.2) | 否 | ||
| 创建时间 | createDate | String(20) | 否 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
| 退款完成时间 | completeDate | String(20) | 否 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
| 退款状态 | refundStatus | String(20) | 否 | INIT (初始化)、RECEIVE(接收)、DOING(处理中)、CLOSE(关闭)、SUCCESS(成功)、FAIL(失败) | |
| 退款描述 | refundDesc | String(128) | 否 | ||
ModelAndView modelAndView = new ModelAndView();
if (bindingResult.hasErrors()) {
throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], bindingResult.getFieldError().getDefaultMessage());
}
HeliRequest result = HandleDataUtils.encodeAndSign(refundForm,refundForm.getProductCode(),refundForm.getMerchantNo());
HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("orderRefundURL"), JSONObject.toJSONString(result), HeliRequest.class);
OrderRefundResponseForm orderRefundResponseForm = HandleDataUtils.decode(heliRequest, OrderRefundResponseForm.class,refundForm.getProductCode(),refundForm.getMerchantNo());
if (!CbDemoConstants.SUCCESS_CODE.equals(orderRefundResponseForm.getErrorCode())) {
throw new CommonSystemException(orderRefundResponseForm.getErrorCode(),orderRefundResponseForm.getErrorMessage());
}
logger.info("返回详细信息------------{}",orderRefundResponseForm.toString());
| 错误码 | 错误码描述 | 解决方案 |
|---|---|---|
使用此接口发起对退款请求的查询
| 测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/refund/queryRefund |
| 请求地址 | https://cbptrx.helipay.com/cbtrx/rest/refund/queryRefund |
| 提交方式 | 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8] |
| 签名算法 | UTF-8字符编码 SHA256签名 AES加密 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 原订单产品编码 | productCode | String(20) | 是 | 例:ONLINEB2C、ONLINEB2B、QUICKPAY等 | |
| 退款订单号 | orderNo | String(64) | 是 | p_20170302185347 | 原交易订单号 |
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
| 会员编号 | subMerchantNo | String(10) | 否 | Me10000021 | 商户的会员,如原交易与会员无关,可不填 |
| 平台商户编号 | platMerchantNo | String(10) | 否 | 如下说明 | 电商平台商户所属的平台商编号 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 响应码 | errorCode | String(10) | 是 | 0000 | 0000 代表请求成功 |
| 响应信息 | errorMessage | String(200) | 否 | 成功 | 响应信息 错误信息 |
| 原订单产品编码 | productCode | String(20) | 是 | ||
| 响应时间 | current | String(20) | 是 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
| 原订单号 | orderNo | String(64) | 是 | p_20170302185347 | |
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
| 退款汇总: | refundRecord | ||||
| 原订单请求号 | sourceOrderNo | String(64) | 否 | ||
| 原订单序列号 | sourceSerialNumber | String(32) | 否 | ||
| 原订单金额 | sourceOrderAmount | Number(10.2) | 否 | ||
| 原订单手续费 | sourceOrderFee | Number(10.2) | 否 | ||
| 原订单完成时间 | sourceOrderCompleteDate | String(20) | 否 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
| 已退款金额 | refundedAmount | Number(10.2) | 否 | ||
| 已退款手续费 | refundedFee | Number(10.2) | 否 | ||
| 退款次数 | refundCount | int | 否 | ||
| 最近退款时间 | latestRefundDate | String(20) | 否 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
| 退款明细: | detail | ||||
| 退款序列号 | serialNumber | String(64) | 否 | ||
| 退款请求号 | refundOrderNo | String(64) | 否 | ||
| 退款金额 | refundAmount | Number(10.2) | 否 | ||
| 退款手续费 | refundFee | Number(10.2) | 否 | ||
| 退款入账金额 | refundInAccountAmout | Number(10.2) | 否 | ||
| 创建时间 | createDate | String(20) | 否 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
| 退款完成时间 | completeDate | String(20) | 否 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
| 退款状态 | refundStatus | String(20) | 否 | INIT (初始化)、RECEIVE(接收)、DOING(处理中)、CLOSE(关闭)、SUCCESS(成功)、FAIL(失败) | |
| 退款描述 | refundDesc | String(128) | 否 | ||
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.getMerchantNo());
HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("orderRefundQueryURL"), JSONObject.toJSONString(result), HeliRequest.class);
OrderRefundResponseForm orderRefundResponseForm = HandleDataUtils.decode(heliRequest, OrderRefundResponseForm.class,queryForm.getProductCode(),queryForm.getMerchantNo());
if (!CbDemoConstants.SUCCESS_CODE.equals(orderRefundResponseForm.getErrorCode())) {
throw new CommonSystemException(orderRefundResponseForm.getErrorCode(),orderRefundResponseForm.getErrorMessage());
}
logger.info("返回详细信息------------{}",orderRefundResponseForm.toString());
| 错误码 | 错误码描述 | 解决方案 |
|---|---|---|