通过调用该接口,实现跨境云掌柜电子签章功能,在跳转手写签名页面手写成功后,请在签名列表页选择要使用的签名
| 测试请求地址 | https://cbtrxtest.helipay.com/cbtrx/rest/signContract |
| 请求地址 | https://cbptrx.helipay.com/cbtrx/rest/signContract |
| 提交方式 | 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8] |
| 签名算法 | UTF-8字符编码 SHA256签名 AES加密 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 商户编号 | merchantNo | String(15) | 是 | C18xxxxxxxxx | 合利宝-跨境系统分配的商户编号 |
| 商户订单号 | orderNo | String(64) | 是 | p_20170302185347 | |
| 产品编码 | productCode | String(20) | 是 | SIGNCONTRACT | 固定值 |
| 邮箱 | String(50) | 是 | xxx@helipay.com | 申请合同的商户邮箱 | |
| 手机号 | phone | String(11) | 是 | 18888888888 | 申请合同的商户手机号 |
| 法人身份证号 | legalPersonID | String(30) | 是 | 申请合同的商户身份证号 | |
| 法人姓名 | legalPerson | String(18) | 是 | 申请合同的商户法人姓名 | |
| 商户签约名 | signName | String(50) | 是 | XXX公司 | 公司名称 |
| 商户地址 | address | String(100) | 是 | XXX路xxx号 | 商户地址 |
| 平台商户编号 | platMerchantNo | String(10) | 是 | 如下说明 | 电商平台商户所属的平台商编号 |
| 名称 | 参数 | 类型 | 必填 | 示例值 | 说明 |
|---|---|---|---|---|---|
| 产品编码 | productCode | String(20) | 是 | SIGNCONTRACT | |
| 商户订单号 | orderNo | String(64) | 是 | p_20170302185347 | |
| 商户编号 | merchantNo | String(10) | 是 | Me10000002 | 合利宝-跨境系统分配的商户编号 |
| 响应码 | errorCode | String(10) | 是 | 0000 | 0000 代表请求成功 |
| 响应信息 | errorMessage | String(200) | 否 | 成功 | 响应信息 错误信息 |
| 响应时间 | current | String(20) | 是 | 2018-04-01 12:00:00 | 格式yyyy-MM-dd HH:mm:ss |
| 访问地址 | redirectUrl | String(200) | 否 | https://api.ecloudsign.cn/ecs/signApiPage/signPage | 使用手机访问的添加手写签名页面 |
| 合同文档文档编号 | contractNum | String | 否 | E974F633D20162C3 | 易云章对应的合同文档编号 |
@RequestMapping(value = "/doSignContract", method = RequestMethod.POST)
public ModelAndView doSignContract(@ModelAttribute @Valid SignContractRequestForm 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.getPlatMerchantNo(),requestForm.getMerchantNo());
HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("signContractUrl"), JSONObject.toJSONString(result), HeliRequest.class);
SignContractResponseForm responseForm = HandleDataUtils.decode(heliRequest, SignContractResponseForm.class,requestForm.getProductCode(),requestForm.getPlatMerchantNo(),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("signContract/signContractResult");
return modelAndView;
}
| 错误码 | 错误码描述 | 解决方案 |
|---|---|---|