通过调用该接口,实现跨境云掌柜电子签章功能,在跳转手写签名页面手写成功后,请在签名列表页选择要使用的签名
测试请求地址 | 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; }
错误码 | 错误码描述 | 解决方案 |
---|---|---|