Skip to main content

企业自主注册接口

企业注册类接口只对部分客户开放,需要业务配合。对接前请和华住的商务沟通,签署补充协议

创建企业卡

接口地址:/external/company/createOnline

请求方式:POST

请求参数说明:
参数名 类型 参数说明 字段长度 是否必填 备注
cardId string 公司卡号 varchar(32) TMC模式的渠道卡或直连卡号
cardPassWord string 公司卡密码 varchar(50) TMC模式的渠道卡对应的验证码 或直连卡号对应的验证码
companyName string 企业名称 varchar(50)
companyTaxpayerId string 税号 varchar(50)
legalPerson string 法人姓名 varchar(20)
mailboxSuffix string 企业邮箱后缀 varchar(500) 多个邮箱用,隔开
address string 公司地址 varchar(100)
contactFullName string 联系人姓名 varchar(20)
contactMobile string 联系人手机 varchar(11)
contactEmail string 联系人邮箱 varchar(50)
contactSex string 性别 varchar(1) M:男
W:女
contactIdNoType string 证件类型 varchar(10) C01 居民身份证
C06 护照
C07 其他
contactIdNo string 证件号码 varchar(20)
idNoAttach string 联系人附件 varchar(200) 调用6.1.6图片上传接口返回的图片url
licenseAttach string 公司营业执照 varchar(200) 调用6.1.6图片上传接口返回的图片url
levelCode string 公司卡级别 varchar(1) B 金卡 公司注册资金≥3亿
C 玫瑰金 公司注册资金≥50万&<3亿
D 银卡 公司注册资金<50万 1.不传默认银卡 2.接口不支持直接开通铂金卡,可以先按照金卡提交,待和华住签完协议后联系商务升级
fillStatus varchar(1) A 已补全
C 不需要
vnoHeader string 来源渠道 varchar(10) 对接时华住提供
provinceCode string 所在省
cityCode string 所在市

请求示例:

{
"address": "上海市嘉定区丰华路200弄",
"cityCode": "10001",
"companyName": "建设商贸",
"companyTaxpayerId": "3432002720343",
"contactEmail": "121@qqq.com",
"contactFullName": "李四",
"contactIdNo": "JS-001",
"contactIdNoType": "C06",
"contactMobile": "13888890009",
"contactSex": "M",
"fillStatus": "C",
"idNoAttach": "",
"legalPerson": "张三",
"levelCode": "C",
"licenseAttach": "",
"mailboxSuffix": "jiansheshangmao@qqq.com",
"provinceCode": "",
"vnoHeader": "ZQGYPPP"
}
返回参数说明:
参数名 说明说明 类型 备注
code 状态码 string 200:处理成功
407:公司名称重复
403:公司已托管TMC 其他状态码为处理失败
message 返回描述 string 状态码不为200时返回失败描述
content 企业信息 ExternalCompanyDTO 状态码为200时返回企业外卡号
需对接方保存 后续操作华住企业卡需传入
ExternalCompanyDTO :
参数名 说明说明 类型 备注
cardNo 企业卡号 string 卡号请保存,后续绑定和查询需要
extCardNo 企业外卡号 string
status 状态 string W:待激活
I:启⽤
X:停⽤
启用状态的卡才可以绑定员工

返回示例

{
"code": "200",
"message": "成功",
"content":{
"cardNo":"VCENTCRM1032609419",
"extCardNo":"0023MD132",
"status":"W"
}
}

企业信息补全

接口地址:/external/company/completionOnline

请求方式:POST

请求参数说明:
参数名 类型 参数说明 字段长度 是否必填 备注
cardId string 公司卡号 varchar(32) TMC模式的渠道卡或直连卡号
cardPassWord string 公司卡密码 varchar(50) TMC模式的渠道卡对应的验证码 或直连卡号对应的验证码
cardNo string 企业卡号 varchar(20)
companyFund string 注册资金 varchar(10) 5 3亿以上
1 50万~3亿
100 小于50万
companyIndustr string 行业类型 varchar(10) 见下方行业类型说明
hasChinaTopFiveHundred bool 是否为中国500强企业 4 默认为false
hasWorldTopTwoThousand bool 是否为全球2000强企业 4 默认为false
hasCountryOrCauseUnit bool 是否为国家单位或国家事业单位 4 默认为false
hasCountryOwner bool 是否为市级及以上国有控股企业/实际利益人企业 4 默认为false
marketValue bigint 市值 15 默认为0
最多15位
monthAvgTravelBudget bigint 月均差旅预算 15 默认为0
最多15位
oneMonthTravelNumber bigint 单月差旅出行人次 15 默认为0
最多10位
yearEndTurnover bigint 年底营业额 10 默认为0
最多15位
fillStatus varchar(1) A 已补全
B 未补全
C 不需要
D 已升级
E 已拒绝
activityId string 来源渠道 varchar(10) 新对接的客户可忽略

行业类型说明:

编号 说明
200000 其他
200001 零售商业连锁
200002 户外体育用品
200003 现代农业
200004 餐饮连锁
200005 酒店连锁
200006 生物制药
200007 软件开发
200008 新能源
200009 新材料
200010 工业品制造
200011 航空服务
200012 医疗服务
200013 金融服务
200014 电信增值
200015 文化传播
200016 娱乐传媒
200017 互联网门户
200018 动漫开发
200019 网络游戏
200020 IT科技
200021 软件外包服务

请求示例:

{
"activityId": "ZQGYPPP",
"cardNo": "VCENTCRM1032609419",
"companyFund": "1",
"companyIndustr": "200020",
"fillStatus": "A",
"hasChinaTopFiveHundred": false,
"hasCountryOrCauseUnit": false,
"hasCountryOwner": false,
"hasWorldTopTwoThousand": false,
"marketValue": "",
"monthAvgTravelBudget": "1",
"oneMonthTravelNumber": "1",
"yearEndTurnover": "111"
}
返回参数说明:
参数名 说明说明 类型 备注
code 状态码 string 200:处理成功 其他状态码为处理失败
message 返回描述 string 状态码不为200时返回失败描述

返回示例

{
"code": "200",
"message": "成功",
"echoToken": "097abc9e-48d0-4f6e-98be-7f8bef8e3ef8"
}

用企业卡号查询企业信息

接口地址:/external/company/search

请求方式:GET

请求参数说明:
参数名 类型 参数说明 是否必填 备注
cardId string 公司卡号 TMC模式的渠道卡或直连卡号
cardPassWord string 公司卡密码 TMC模式的渠道卡对应的验证码 或直连卡号对应的验证码
cardNo string 企业卡号
activityId string 来源渠道 新对接的客户可忽略

请求示例:

/external/company/search?cardId=VCENTCRM1032611873&cardPassWord=026E5988-2FE9-46B3-A8E7-6D062BE041AC&cardNo=VCENTCRM1032611873
返回参数说明:
参数名 说明说明 类型 备注
code 状态码 string 200:处理成功 其他状态码为处理失败
message 返回描述 string 状态码不为200时返回失败描述
content 公司信息 DomainObj
DomainObj:
参数名 说明说明 类型 备注
name 企业名称 string
status 企业状态 string W:待激活
I:在用
X:停用
memberLevel 开卡等级 string C 企业金会员
D 企业银会员
J 企业玫瑰金会员
K 企业铂金会员

返回示例

{
"code": "200",
"message": "成功",
"content": {
"name": "广州市海珠区古老同红餐饮店",
"status": "I",
"memberLevel": "K"
},
"echoToken": "ec45dc97-e138-4e39-8717-47a1cc3791af"
}

企业信息变更(回调接口)

说明:

企业信息变更、企业卡升级/降级、新增托管关系、被托管企业卡停用、解绑时,我们会回调接口通知客户。客户收到回调通知后请调用查询企业信息更新本地信息

回调方式:POST

请求参数**说明**:
参数名 类型 是否返回 说明
encryptionType string 加密方式,固定为SHA-256
cardNo string 企业卡号
reqNo string 流水号
operationType string 通知类型
modify:信息更新
grade:等级变更
bind:绑定TMC
stop:卡下线
unbind:解绑TMC
timeMillis long 时间戳
sign string 签名

请求示例

{
"encryptionType": "SHA-256",
"cardNo": "VCENTCRM1032609419",
"reqNo": "1234512",
"timeMillis": "111111111",
"sign": "abcdsddsfaer121"
}
返回参数说明:

第三方接口收到通知处理成功后,需返回suceess字符串

sign签名生成规则如下:

按照参数首字母从小到大拼接生成待签名的字符串,并在最后拼接&merchantKey,merchantKey是密钥,由华住提供

例如:encryptionType=SHA-256&cardNo=abc&reqNo=srgvdnonrlen&timeMillis=1234567891&merchantKey

sign代码生成示例:

public class SignHelper {
/**
* 获取排序后的未签名字段
*
* @param o
* @return
*/
@SneakyThrows
public static String getUnSignedStr(Object o) {
ArrayList<String> list = new ArrayList<String>();
Class cls = o.getClass();
Field[] fileds = cls.getDeclaredFields();

try {
for (Field f : fileds) {
f.setAccessible(true);
if (f.get(o) != null) {
list.add(f.getName() + "=" + f.get(o) + "&");
}
}
} catch (IllegalAccessException e) {
throw new Exception("不存在代签名字段的属性", e);
}
int size = list.size();
String[] arrayToSort = list.toArray(new String[size]);
Arrays.sort(arrayToSort, String.CASE_INSENSITIVE_ORDER);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < size; i++) {
sb.append(arrayToSort[i]);
}
String result = sb.toString();
if (result.endsWith("&")) {
result = result.substring(0, result.length() - 1);
}
return result;
}

/**
* 签名
*
* @param strToSign
* @param merchantKey
* @return
*/
@SneakyThrows
public static String sign(String strToSign, String merchantKey) {
StringBuilder str = new StringBuilder(strToSign);
//假设已排序字符串为strToSign
//添加商户密钥
str.append("&").append(merchantKey);
// 创建加密对象
MessageDigest messageDigest;

try {

messageDigest = MessageDigest.getInstance("SHA-256");
// 传入要加密的字符串,按指定的字符集将字符串转换为字节流
messageDigest.update(str.toString().getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
throw new Exception("生成签名失败", e);
} catch (NoSuchAlgorithmException e1) {
throw new Exception("生成签名失败", e1);
}
byte byteBuffer[] = messageDigest.digest();
// 將 byte数组转换为16进制string
return bytesToHexString(byteBuffer);
}

/**
* bytesToHexString
*
* @param src
* @return
*/
public static String bytesToHexString(byte[] src) {
StringBuilder sb = new StringBuilder("");
if (src == null || src.length <= 0) {
return null;
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
sb.append(0);
}
sb.append(hv);
}
return sb.toString();
}
}

返回示例

suceess

用税号查询企业信息

接口地址:/external/company/searchList

请求方式:GET

请求参数说明:
参数名 类型 参数说明 是否必填 备注
cardId string 公司卡号 TMC模式的渠道卡或直连卡号
cardPassWord string 公司卡密码 TMC模式的渠道卡对应的验证码 或直连卡号对应的验证码
invoiceNo string 税号
activityId string 来源渠道 新对接的客户可忽略

请求示例:

/external/company/searchList?cardId=VCENTCRM1032611873&cardPassWord=026E5988-2FE9-46B3-A8E7-6D062BE041AC&invoiceNo=92440105MACBERFE9K
返回参数说明:
参数名 说明说明 类型 备注
code 状态码 string 200:处理成功 其他状态码为处理失败
message 返回描述 string 状态码不为200时返回失败描述
content 公司信息 List<DomainObj>
DomainObj:
参数名 说明说明 类型 备注
cardNo 企业卡号 string
name 企业名称 string
status 企业状态 string W:待激活
I:在用
X:停用
memberLevel 开卡等级 string C 企业金会员
D 企业银会员
J 企业玫瑰金会员
K 企业铂金会员

返回示例

{
"code": "200",
"message": "成功",
"content": [
{
"name": "广州市海珠区古老同红餐饮店",
"status": "I",
"memberLevel": "K"
}
],
"echoToken": "25991acd-4473-4430-95b6-1d1e9d29c578"
}

上传企业证照

接口地址:/external/uploadPicture

请求方式:POST

此接口配合6.1企业注册接口使用,在企业注册之前上传企业证照。每天限制最多调用200次

请求参数说明:
参数名 类型 参数说明 是否必填 备注
cardId string 公司卡号 TMC模式的渠道卡或直连卡号
cardPassWord string 公司卡密码 TMC模式的渠道卡对应的验证码 或直连卡号对应的验证码
file MultipartFile 文件 支持格式:jpg,jpeg,gif,bmp,png,xls,xlsx,pdf,doc,docx 文件最大限制5M
返回参数说明:
参数名 说明说明 类型 备注
code 状态码 string 200:处理成功 其他状态码为处理失败
message 返回描述 string 状态码不为200时返回失败描述
content 公司信息 string 文件对应的url。将返回值填入企业自主注册接口即可