微信实名认证开户意愿申请
1.修订记录
修订 |
日期 |
说明 |
作者 |
V0.1 |
2020/11/10 |
新接口参数定义 |
宁华雄 |
V0.2 |
2021/12/27 |
支持国密 |
王晶 |
V0.3 |
2022/06/22 |
微信实名认证新增 |
刘雷 |
V0.4 |
2022/06/23 |
微信实名认证新增法人证件地址 |
刘雷 |
V0.5 |
2022/08/09 |
微信实名认证新增业务返回码和业务返回描述 |
林竞 |
2.接口说明
(1)场景说明
1、微信实名认证开户意愿申请
(2)接口说明
1、微信实名认证接口(开户意愿申请单)-V3.0版本
3.请求地址
4.请求参数说明
4.1 公共请求参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
method |
String(1,128) |
Y |
接口名称。示例值:ysepay.authenticate.wx.apply |
partner_id |
String(1,20) |
Y |
商户在银盛支付平台开设的用户号[商户号] |
timestamp |
String(1,19) |
Y |
发送请求的时间,格式"yyyy-MM-dd HH:mm:ss",示例值:2020-07-24 03:07:50 |
charset |
String(1,10) |
Y |
商户网站使用的编码格式,如utf-8、gbk、gb2312等。示例值:GBK |
sign_type |
String(1,10) |
Y |
签名类型,RSA/SM |
sign |
String(1,256) |
Y |
签名字符串,再用Base64编码 |
version |
String(1,3) |
Y |
接口版本3.0,当前版本3.0 |
biz_content |
String |
Y |
业务请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递 |
4.2 业务请求参数
参数名biz_content,值为一个json格式对象,下面列表描述json对象的值
参数 |
类型(字节长度) |
必填 |
参数说明 |
usercode |
String(1,50) |
Y |
商户号 |
cust_name |
String(1,100) |
Y |
1)商户名称必须与商家营业执照上的名称一致。2)若个体工商户营业执照没有商家名称或者名称为“”或者“**”,则商户名称应填 “个体户XXX”(XXX为营业执照上经营者姓名)。3)若商家为小微商户,商户名称应填 “商户_XXX”(XXX为小微商户身份证上的姓名) |
contact_cert_type |
String(1,2) |
Y |
联系人证件类型支持类型请参照第7小节 |
contact_cert_no |
String(1,80) |
Y |
联系人证件号,请加密传输 注:如果签名方式为RSA,则用DES加密,密钥Src用户号前8位,不足8位前补空;如果签名方式为SM,则用SM加密。建议法人作为商家联系人,联系人微信实名的身份证号需要与服务商提交商户认证申请时的联系人身份证号一致。 |
legal_cert_initial |
String(8,8) |
Y |
企业法人身份证证件有效开始日期,格式为yyyyMMdd。 |
legal_cert_expire |
String(8,8) |
Y |
企业法人身份证证件有效期结束日期,格式为yyyyMMdd。此时间为29991231默认长期有效 |
bus_license_initial |
String(8,8) |
N |
营业执照有效开始日期,格式为yyyyMMdd。当长期有效时取当前时间即可,客户类型为企业、个体时必填 |
bus_license_expire |
String(8,8) |
N |
营业执照有效结束日期,格式为yyyyMMdd。此时间为29991231默认长期有效,客户类型为企业、个体时必填 |
store_type |
String(0,2) |
N |
小微经营类型,(00):门店场所,(01):流动经营/便民服务,(02):线上商品/服务交易,客户类型为小微商户时必填 |
store_name |
String(1,100) |
N |
(00):门店场所:填写门店名称。(01):流动经营/便民服务:填写经营/服务名称。(02):线上商品/服务交易:填写线上店铺名称。示例值:杭州小笼包,客户类型为小微商户时必填 |
book_type |
String |
N |
CERTIFICATE_TYPE_2388:事业单位法人证书,CERTIFICATE_TYPE_2389:统一社会信用代码证书,CERTIFICATE_TYPE_2390:有偿服务许可证(军队医院适用),CERTIFICATE_TYPE_2391:医疗机构执业许可证(军队医院适用),CERTIFICATE_TYPE_2392:企业营业执照(挂靠企业的党组织适用),CERTIFICATE_TYPE_2393:组织机构代码证(政府机关适用),CERTIFICATE_TYPE_2394:社会团体法人登记证书,CERTIFICATE_TYPE_2395:民办非企业单位登记证书,CERTIFICATE_TYPE_2396:基金会法人登记证书,CERTIFICATE_TYPE_2399:宗教活动场所登记证,CERTIFICATE_TYPE_2400:其他证书/批文/证明 |
hot_line |
String |
N |
客服电话 |
beneficiary_infos |
List |
N |
受益人信息 |
finance_institution |
FinanceInstitutionRequest |
N |
金融许可证 |
identification_info |
IdentificationInfoRequest |
Y |
法人身份信息 |
mer_contact_info |
MerContactInfoRequest |
Y |
联系人信息,联系人是商户的联系人,将接收开户信息及日常重要管理信息,请确定联系人为商户法定代表人或经营者再进行操作。如联系人非商户法定代表人或经营者,请提交经办人身份证件。 |
special_operation |
SpecialOperationRequest |
N |
经营许可证信息 |
token |
String(1,50) |
N |
图片token值,客户类型为小微商户时必填 |
4.3 受益人信息 BeneficiaryInfoRequest
参数 |
类型(字节长度) |
参数说明 |
必填 |
备注 |
ubo_id_type |
String |
证件类型 |
是 |
填写受益人的证件类型。证件类型:00:身份证;04:户口簿;06:外国护照;07:港澳通行证;08:台胞通行证; |
token |
String |
每个受益人对应一个token,用于获取对应受益人证件照片 00 为身份证人像面,30 为身份证国徽面 |
是 |
|
ubo_name |
String |
受益人姓名 |
是 |
|
ubo_idnumber |
String |
证件号码 |
是 |
|
address |
String |
证件居住地址 |
是 |
请按照证件上住址填写,若证件上无住址则按照实际址填写 |
ubo_idcard_validdate_begin |
String |
证件有效日期开始日期 |
是 |
请填写证件的有效期开始期格式yyyy-MM-dd |
ubo_idcard_validdate_end |
String |
证件有效日期结束日期 |
是 |
请填写证件的有效期结束日格式yyyy-MM-dd,若为永久,此时间为2999-12-3 |
4.4 金融许可证 FinanceInstitutionRequest
4.5 法人身份信息 IdentificationInfoRequest
参数 |
类型(字节长度) |
参数说明 |
必填 |
备注 |
id_holder_type |
String |
证件持有人类型 |
否 |
1. 主体类型为政府机关、事业单位时选传:(1)若上传的是法人证件,则不需要上传该字段。(2)若因特殊情况,无法提供法人证件时,可上传经办人。(经办人:经商户授权办理微信支付业务的人员,授权范围包括但不限于签约,入驻过程需完成账户验证)。2. 主体类型为企业、个体户、社会组织时,默认为经营者/法人,不需要上传该字段。LEGAL:经营者/法人SUPER:经办人.示例值:LEGAL |
address |
String |
证件居住地址 |
否 |
企业必填 |
参数 |
类型(字节长度) |
参数说明 |
必填 |
备注 |
mer_contact_type |
String |
联系人类型 |
是 |
联系人类型:1、主体为“小微/个人卖家 ”,可选择:65:经营者/法人。2、主体为“个体工商户/企业/政府机关/事业单位/社会组织”,可选择:65:经营者/法人、66:经办人。必填项,校验联系人与法人信息是否一致,一致的则为65:经营者/法人 ,不一致时,校验商户类型是否为个体、企业、事业单位、政府机关、社会组织,如不是则报错,如是则为66:经办人; |
id_type_cd |
String |
联系人证件类型 |
是 |
1、若联系人类型为“法人”,则该姓名需与法人代表证件类型一致。 2、若联系人类型为“经办人”,则可填写实际经办人的证件类型。证件类型见附录 |
id_validdate_begin |
String |
联系人证件有效期开始时间 |
否 |
联系人为经办人时必填,格式 yyyy-MM-dd 如:2019-06-06。 |
id_validdate_end |
String |
联系人证件有效期结束时间 |
否 |
联系人为经办人时必填,格式 yyyy-MM-dd 如:2019-06-06。若为永久,此时间为2999-12-31 |
4.7 经营许可证信息 SpecialOperationRequest
5.响应参数说明
银盛支付对商户的请求数据处理完成后,会将处理的结果数据同步回执给商户。
请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。
5.1 公共响应参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
sign |
String |
Y |
签名字符串,Base64编码 |
ysepay_authenticate_wx_apply_response |
String |
Y |
业务响应参数的集合,最大长度不限 |
5.2 业务响应参数
若以上资料报备系统若已存在的情况下,业务请求方仍通过接口上送至银盛报备系统的情况下,若符合提交申请单要求,银盛报备系统更新本地资料并提交申请单。
参数 |
类型(字节长度) |
必填 |
参数说明 |
code |
String |
Y |
响应代码,只代表通讯状态 |
msg |
String |
Y |
响应代码描述 |
apply_no |
String |
Y |
申请单编号,请求失败时,返回null,此时需要通过业务编号调用【查询微信实名认证申请单状态】接口查询失败原因 |
send_channel_apply_no |
String |
Y |
业务编号 |
mch_code |
String |
Y |
报备返回码,00成功,07失败,其他阻断情况不会返回 |
mch_note |
String |
Y |
报备失败原因 |
银盛支付对商户的请求数据处理完成后,会将处理的最终结果数据异步回执给商户。
6.样例
6.1 SDK调用示例
- 银盛将与服务端交互的接口封装在开发工具包(SDK)中,开发者无需自行实现同服务端交互的复杂逻辑,直接将SDK导入自己的工程后,通过sdk示例代码实现同银盛服务端的交互。
@Test
public void applyWxAuthor() throws Exception {
OnlineReqDataVo req = new OnlineReqDataVo();
String reqUrl = "https://openapi.ysepay.com/gateway.do";
String privateKeyFilePath = "D:\\openRSA\\hyfz_test2.pfx";
String privateKeyPassworde = "123456";
String publicKeyFilePath = "D:\\openRSA\\businessgate.cer";
String partnerId = "hyfz_test2";
req.setPrivateKeyFilePath(privateKeyFilePath);
req.setPrivateKeyPassword(privateKeyPassworde);
req.setYsPublicKeyFilePath(publicKeyFilePath);
req.setReqUrl(reqUrl);
req.setPartnerId(partnerId);
Map<String,Object> bizContentMap = new HashMap<>();
bizContentMap.put("usercode","hyfz_test2");
bizContentMap.put("cust_name","龙行百货");
bizContentMap.put("contact_cert_type","00");
bizContentMap.put("contact_cert_no",SrcDesUtil.encryptData(partnerId,"430626199701215716"));
bizContentMap.put("legal_cert_initial","20250905");
bizContentMap.put("legal_cert_expire","29991231");
bizContentMap.put("bus_license_initial",null);
bizContentMap.put("bus_license_expire",null);
bizContentMap.put("store_type",null);
bizContentMap.put("store_name",null);
bizContentMap.put("token",null);
req.setParamData(bizContentMap);
logger.info("微信实名认证开户意愿申请请求入参为:"+ JSONObject.toJSONString(req));
String result = null;
try{
result = WxAuthorApi.applyWxAuthor(req);
}catch (Exception e){
logger.info("微信实名认证开户意愿申请失败:"+e.getCause().getMessage());
e.printStackTrace();
}
}
7.证件类别
类型 |
描述 |
类型 |
描述 |
00 |
公民身份证正面 |
12 |
军事院校学员证 |
01 |
中国护照 |
13 |
武装警察身份证 |
02 |
军人身份证 |
14 |
军官证 |
03 |
警官证 |
15 |
文职干部证 |
04 |
户口簿 |
16 |
军人士兵证 |
05 |
临时身份证 |
17 |
武警士兵证 |
06 |
外国护照 |
18 |
其他证件 |
07 |
港澳通行证 |
19 |
营业执照 |
08 |
台胞通行证 |
20 |
税务登记证 |
09 |
离休干部荣誉证 |
30 |
公民身份证反面 |
10 |
军官退休证 |
31 |
客户协议 |
11 |
文职干部退休证 |
32 |
授权书 |
8.附录:图片上传
8.1 图片上传口令获取
8.1.1 图片上传口令获取
8.1.2.请求公共参数说明
请求参数是商户在与银盛支付进行数据交互时,提供给银盛支付的请求数据,以便银盛支付根据这些数据进一步处理。本文档中的所定义的三个接口,请求头部均要求按照此表格烈出的参数给出。
参数 |
类型(字节长度) |
必填 |
参数说明 |
method |
String(1,128) |
Y |
接口名称。获取上传地址接口:ysepay.merchant.register.token.get |
partner_id |
String(1,20) |
Y |
商户在银盛支付平台开设的用户号[商户号] |
timestamp |
String(1,19) |
Y |
发送请求的时间,格式"yyyy-MM-dd HH:mm:ss",示例值:2020-07-24 03:07:50 |
charset |
String(1,10) |
Y |
商户网站使用的编码格式,如utf-8、gbk、gb2312等。示例值:GBK |
sign_type |
String(1,10) |
Y |
签名类型,RSA/SM |
sign |
String(1,256) |
Y |
签名字符串,再用Base64编码 |
notify_url |
String(190) |
Y |
银盛支付服务器主动通知商户网站里指定的页面http路径。示例值:http://api.test.ysepay.net/atinterface/receive_return.htm |
version |
String(1,3) |
Y |
接口版本,示例值:3.0 |
biz_content |
String |
Y |
业务请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递 |
8.1.3.图片上传口令获取
参数名biz_content,值为一个json格式对象,下面业务参数的列表描述json对象的值,每一个请求的biz_content都请按业务参数列表来填写):
该请求为空参数(但是biz_content依然要求按照json格式填写),每次请求都会获取到一个 TOKEN(口令)字符串,您需要在有效时间内,凭此TOKEN上传图片文件至银盛文件服务器中以备注册使用。TOKEN有效时间为120s,一个TOKEN可以上传N张类型不同的图片文件,同类型的图片文件将以最近一次上传为准,为了提高注册成功率,请一次性将需要提高的图片信息全部上传。
图片上传完毕之后请发起商户注册请求,进行注册。申请接口中的token属性是您上传文件时使用的TOKEN值,您需要记住。
8.1.4. 响应参数说明说明
银盛支付对商户的请求数据处理完成后,会将处理的结果数据同步回执给商户。
请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。
8.1.4. 1 公共响应参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
sign |
String |
Y |
签名字符串,Base64编码 |
ysepay_merchant_register_token_get_response |
String |
Y |
业务响应参数的集合,最大长度不限 |
8.1.4. 2 业务响应参数
参数 |
类型(字节长度) |
必填 |
参数说明 |
code |
String |
Y |
响应代码 |
msg |
String |
Y |
响应代码描述 |
token |
String(32) |
Y |
token |
token_status |
String(20) |
Y |
获取TOKEN返回的状态,指示业务进度,TOKEN_GET_SUCCESS获取成功;TOKEN_GET_NULL获取失败 |
8.2.文件上传服务-图片上传
8.2.1.图片上传注意事项
为确保商户申请成功率,请按照以下注意事项检查图片后再上传:
1.基本要求:图像文字清晰,人眼可辨别;对比度、亮度适中;尽量不要有背景,即证件充满图片,如果不能保证没有背景,请选择纯黑背景而且背景不宜过多。
2.对扫描图像的要求:扫描时选择分辨率300dpi,不能低于150 dpi,分辨率最好不要过高。
3.对拍摄图像的要求:拍摄时注意光照的影响,尽量避免反光和黑影,尤其是证件有薄膜覆盖的时候;拍摄时做好聚焦,以免图像模糊不清;拍摄时将证件放正;尽量不要使拍摄角度倾斜过大,以免造成图像变形;拍摄时请不要选择过高的分辨率拍摄,一方面造成图片过大,不利于传输,一方面分辨率过高也会影响识别率。拍摄时可以选择1280*960分辨率拍摄,低一些的分辨率也可以选择,但是要确保图像文字清晰
4.为确保商户申请响应速度,建议图片大小在1M内.
8.2.2.图片上传地址:
8.2.3.请求图片上传参数
请求参数是商户在与银盛支付进行数据交互时,提供给银盛支付的请求数据,以便银盛支付根据这些数据进一步处理。
参数 |
类型(字节长度) |
必填 |
参数说明 |
superUsercode |
String(1,20) |
Y |
商户号 |
picType |
String(1,2) |
Y |
图片类型,8.2.5节 附表1 |
picFile |
|
Y |
通过body的mutipartfile类型上传 |
token |
String(1,50) |
Y |
token值 |
8.2.4.响应参数说明
银盛支付对商户的请求数据处理完成后,会将处理的结果数据同步回执给商户。返回对象UploadPicResult 详细定义
请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。
参数 |
类型(字节长度) |
必填 |
参数说明 |
isSuccess |
boolean |
Y |
是否成功 不可空 true:成功;false:失败 |
errorCode |
String(1,4) |
N |
错误码 失败时不可空 |
errorMsg |
String(1,200) |
N |
错误信息 失败时不可空 |
token |
String(1,50) |
N |
token值 成功时不可空 |
8.2.5.图片文件的类型
类型 |
描述 |
34 |
门头照-----(00):门店场所:提交门店门口照片,要求招牌清晰可见。(01)流动经营/便民服务:提交经营/服务现场照片。(02)线上商品/服务交易:提交店铺首页截图。 |
50 |
经营场所图------(00):门店场所:提交店内环境照片。(01)流动经营/便民服务:可提交另一张经营/服务现场照片。(02)线上商品/服务交易:提交店铺管理后台截图。 |
00 |
为身份证人像面 |
30 |
为身份证国徽面 |
33 |
手持身份证正扫面照 |
37 |
银行卡照片或开户许可证 |
25 |
组织机构代码证 |
c0 |
法人身份证正反面复印件 |
c1 |
营业执照复印件 |
c2 |
单位函 |
c4 |
服务协议复印件(盖公章)/原件扫描件 |
4b |
BD与门头照合影 |
5b |
BD与门店摇摇乐海报合影 |
6b |
平台入驻照片(微信) |
7b |
业务办理授权函 |
8b |
金融机构许可证图片1 |
3c |
金融机构许可证图片2 |
4c |
金融机构许可证图片3 |
5c |
金融机构许可证图片4 |
6c |
金融机构许可证图片5 |
9b |
联系人证件正面照片 |
1c |
联系人证件反面照片 |
2c |
行业经营许可证资质照片1 |
7c |
行业经营许可证资质照片2 |
8c |
行业经营许可证资质照片3 |
9c |
行业经营许可证资质照片4 |
1d |
行业经营许可证资质照片5 |
2d |
行业经营许可证资质照片6 |
附表1 图片类型的必要性,打钩为必填项:
序号 |
类别 |
小微商户 |
企业商户 |
个体商户 |
1 |
门头照 |
√ |
|
2 |
经营场所图 |
√ |