平台商发起名下子商户的结算
| 测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/platMerchant/subMerchantSettle | 
| 请求地址 | https://cbptrx.helipay.com/cbtrx/rest/platMerchant/subMerchantSettle | 
| 提交方式 | 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8] | 
| 签名算法 | UTF-8字符编码 SHA256签名 AES加密 | 
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 | 
|---|---|---|---|---|---|
| 商户编号 | merchantNo | String(10) | 是 | 商户编号 | |
| 平台商编号 | platMerchantNo | String(10) | 否 | 商户对应的平台商,不填写默认为商户编号 | 商户对应的平台商,不填写默认为商户编号 | 
| 订单号 | orderNo | String(64) | 是 | 请求订单号,商户唯一 | 商户唯一 | 
| 产品编码 | productCode | String(50) | 是 | PLATMERCHANTAPISETTLE | PLATMERCHANTAPISETTLE | 
| 结算金额 | settleAmount | double | 是 | 10.00 | 结算金额 | 
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 | 
|---|---|---|---|---|---|
| 产品编码 | productCode | String(20) | 是 | PLATMERCHANTAPISETTLE | |
| 商户订单号 | orderNo | String(64) | 是 | p_20170302185347 | 请求订单号 | 
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 | 
| 平台商户编号 | platMerchantNo | 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 | 
| 结算金额 | settleAmount | double | 是 | 结算金额 | |
| 结算状态 | settleStatus | String | 是 | 结算状态 | 
  @RequestMapping(value = "/querySubMerchantSettle")
    public ModelAndView querySubMerchantSettle(@ModelAttribute @Valid BaseDTO request, BindingResult result) {
        ModelAndView mav = new ModelAndView();
        if (result.hasErrors()) {
            throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], result.getFieldError().getDefaultMessage());
        }
        HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("querySubMerchantSettle"), JSONObject.toJSONString(encodeAndSign(request, request.getProductCode(), request.getPlatMerchantNo(), request.getMerchantNo())), HeliRequest.class);
        PlatMerchantAPISettleResponseForm responseForm = decode(heliRequest, PlatMerchantAPISettleResponseForm.class, request.getProductCode(), request.getPlatMerchantNo(), request.getMerchantNo());
        if (!CbDemoConstants.SUCCESS_CODE.equals(responseForm.getErrorCode())) {
            throw new CommonSystemException(responseForm.getErrorCode(), responseForm.getErrorMessage());
        }
        mav.setViewName("/plat/subMerchantSettleResult");
        mav.addObject("responseForm", responseForm);
        return mav;
    }
                                
                        
                                
                        
                                
                        | 错误码 | 错误码描述 | 解决方案 | 
|---|---|---|
子商户结算查询结果
| 测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/platMerchant/querySubMerchantSettle | 
| 请求地址 | https://cbptrx.helipay.com/cbtrx/rest/platMerchant/querySubMerchantSettle | 
| 提交方式 | 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8] | 
| 签名算法 | UTF-8字符编码 SHA256签名 AES加密 | 
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 | 
|---|---|---|---|---|---|
| 商户编号 | merchantNo | String(10) | 是 | 商户编号 | |
| 平台商编号 | platMerchantNo | String(10) | 否 | 商户对应的平台商,不填写默认为商户编号 | 商户对应的平台商,不填写默认为商户编号 | 
| 订单号 | orderNo | String(64) | 是 | 请求订单号,商户唯一 | 商户唯一 | 
| 产品编码 | productCode | String(50) | 是 | PLATMERCHANTAPISETTLE | PLATMERCHANTAPISETTLE | 
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 | 
|---|---|---|---|---|---|
| 产品编码 | productCode | String(20) | 是 | PLATMERCHANTAPISETTLE | |
| 商户订单号 | orderNo | String(64) | 是 | p_20170302185347 | 请求订单号 | 
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 | 
| 平台商户编号 | platMerchantNo | 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 | 
| 结算金额 | settleAmount | double | 是 | 结算金额 | |
| 结算状态 | settleStatus | String | 是 | 结算状态 | 
    @RequestMapping(value = "/querySubMerchantSettle")
    public ModelAndView querySubMerchantSettle(@ModelAttribute @Valid BaseDTO request, BindingResult result) {
        ModelAndView mav = new ModelAndView();
        if (result.hasErrors()) {
            throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], result.getFieldError().getDefaultMessage());
        }
        HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("querySubMerchantSettle"), JSONObject.toJSONString(encodeAndSign(request, request.getProductCode(), request.getPlatMerchantNo(), request.getMerchantNo())), HeliRequest.class);
        PlatMerchantAPISettleResponseForm responseForm = decode(heliRequest, PlatMerchantAPISettleResponseForm.class, request.getProductCode(), request.getPlatMerchantNo(), request.getMerchantNo());
        if (!CbDemoConstants.SUCCESS_CODE.equals(responseForm.getErrorCode())) {
            throw new CommonSystemException(responseForm.getErrorCode(), responseForm.getErrorMessage());
        }
        mav.setViewName("/plat/subMerchantSettleResult");
        mav.addObject("responseForm", responseForm);
        return mav;
    }
                                
                            
                                
                            
                                
                            | 错误码 | 错误码描述 | 解决方案 | 
|---|---|---|
子商户产品及费率修改
| 测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/platMerchant/modifySubMerchantProductAndFee | 
| 请求地址 | https://cbptrx.helipay.com/cbtrx/rest/platMerchant/modifySubMerchantProductAndFee | 
| 提交方式 | 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8] | 
| 签名算法 | UTF-8字符编码 SHA256签名 AES加密 | 
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 | 
|---|---|---|---|---|---|
| 商户编号 | merchantNo | String(10) | 是 | 商户编号 | |
| 平台商编号 | platMerchantNo | String(10) | 否 | 商户对应的平台商,不填写默认为商户编号 | 商户对应的平台商,不填写默认为商户编号 | 
| 订单号 | orderNo | String(64) | 是 | 请求订单号,商户唯一 | 商户唯一 | 
| 产品编码 | productCode | String(50) | 是 | PLATMERCHANTAPISETTLE | PLATMERCHANTAPISETTLE | 
| 子商户编号 | subMerchantNo | String(10) | 是 | ||
| 待修改产品编码 | openProduct[index].productCode | String(20) | 是 | ||
| 待修改产品比例费率 | openProduct[index].percentageCost | String(20) | 是 | ||
| 待修改产品单笔手续费 | openProduct[index].singleCost | String(20) | 是 | ||
| 待修改产品最小手续费 | openProduct[index].minCost | String(20) | 是 | ||
| 待修改产品最小手续费最大手续费 | openProduct[index].maxCost | String(20) | 是 | 
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 | 
|---|---|---|---|---|---|
| 产品编码 | productCode | String(20) | 是 | PLATMERCHANTREGIST | |
| 商户订单号 | orderNo | String(64) | 是 | p_20170302185347 | 请求订单号 | 
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 | 
| 平台商户编号 | platMerchantNo | 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 | 
    @RequestMapping(value = "/modifySubMerchantProductAndFee")
    public ModelAndView modifySubMerchantProductAndFee(@ModelAttribute @Valid SubMerchantProductAndFeeModifyRequestForm request, BindingResult result) {
        ModelAndView mav = new ModelAndView();
        if (result.hasErrors()) {
            throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], result.getFieldError().getDefaultMessage());
        }
        if(StringUtils.isBlank(request.getPlatMerchantNo())){
            throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], CommonSystemException.ILLEGAL_DATA_REQUEST[1]);
        }
        HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("modifySubMerchantProductAndFee"), JSONObject.toJSONString(encodeAndSign(request, request.getProductCode(), request.getPlatMerchantNo(), request.getMerchantNo())), HeliRequest.class);
        SubMerchantProductAndFeeModifyResponseForm responseForm = decode(heliRequest, SubMerchantProductAndFeeModifyResponseForm.class, request.getProductCode(), request.getPlatMerchantNo(), request.getMerchantNo());
        if (!CbDemoConstants.SUCCESS_CODE.equals(responseForm.getErrorCode())) {
            throw new CommonSystemException(responseForm.getErrorCode(), responseForm.getErrorMessage());
        }
        mav.setViewName("/plat/modifySubMerchantProductAndFeeResult");
        mav.addObject("responseForm", responseForm);
        return mav;
    }
                                
                            
                                
                            
                                
                            | 错误码 | 错误码描述 | 解决方案 | 
|---|---|---|