商户基本信息变更

1、修订记录

修订记录 日期 说明 作者
1.0 2021.11.10 初稿 朱龙玲

2、业务说明

(1)接口说明

扫码服务商商户进件成功后,需要变更商户基本资料可以通过本接口和“商户变更图片上传"接口实现,变更任何信息都需上传“商户信息变更申请表”,如果变更营业执照相关信息,需上传“营业执照图“。

3、请求地址

环境 HTTPS请求地址
测试环境 https://appdev.ysepay.com/saas/org/changeMerInfo
正式环境 https://ouser.ysepay.com:6443/saas/org/changeMerInfo

4、请求参数说明

4.1、公共请求参数

参数 类型(长度) 必填 参数说明
ver String(3) Y 版本号 固定值1.0
src String(50) Y 由银盛生成的接入机构号,请联系银盛客户经理获取。示例值:ORG20210427160753
msgCode String(20) Y 接口代码 固定值Merchant
method String(30) Y 接口方法 固定值changeMerInfo
signType String(10) Y 报文签名算法,RSA、SM 注:应监管要求签名算法变更为国密,新接入商户请选择SM
charset String(10) Y 字符集 固定值UTF-8
reqFlowId String(20) Y 请求流水号,示例值:202110011944011101
注意:该字段不参与签名
signValue String Y 签名串,请参考”签名样例以及demo下载“。
data String Y 业务参数(des加密成密文字符串)

4.2、业务请求参数

data加密前的json数据明文字符串

注意:下方分类只是对字段进行名义上的归类,以帮助理解参数意思,无实际意义

分类 参数 类型(长度) 必填 参数说明
商户基本信息 mercId String(20) Y 银盛商户号
userShortName String(20) N 商户简称
(小微商户名称增加城市名称的校验,有门头(招牌),命名规则为“城市+门头名称”,无门头(招牌),命名规则为"城市+法人姓名+主营",其中城市录入规范为,如果是区的,就选地级市名称,如果是县市的选县市名称,也可以支持地级市或者县市名称。或者直接全部上送地市级名称)
contactsName String(40) N 联系人姓名
contactsPhone String(20) N 联系人电话
contactsEmail String(50) N 联系人邮箱
营业资质信息 businessLicence String(20) N 营业执照全称/商户名称(小微商户名称增加城市名称的校验,有门头(招牌),命名规则为"城市+门头名称",无门头(招牌),命名规则为"城市+法人姓名+主营",其中城市录入规范为,如果是区的,就选地级市名称,如果是县市的选县市名称,也可以支持地级市或者县市名称。 或者直接全部上送地市级名称)
registeredAddress String(500) N 注册地址
门店信息 businessAddress String(500) N 营业地址
法人信息 legalPersonName String(40) N 法人姓名
legalPersonId String(100) N 法人身份证号
legalPersonIdEdate String(8) N 法人身份证到期日期(格式20200101)
注:有效期永久则为29991231
变更申请表类型 applicationContractType String(1) N 1=纸质 2=电子
注:2电子不需要上传变更申请表,为空则默认是纸质

5.响应参数说明

银盛支付对商户的请求数据处理完成后,会将处理的结果数据同步回执给商户。

请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。

5.1、公共响应参数

参数 类型(长度) 必填 参数说明
ver String(3) Y 版本号 固定值1.0
src String(50) Y 由银盛生成的接入机构号,请联系银盛客户经理获取。示例值:ORG20210427160753
msgCode String(20) Y 接口代码 固定值Merchant
method String(30) Y 接口方法 固定值changeMerInfo
signType String(10) Y 报文签名算法,RSA、SM 注:应监管要求签名算法变更为国密,新接入商户请选择SM
charset String(10) Y 字符集 固定值UTF-8
reqFlowId String(20) Y 请求流水号,示例值:202110011944011101
注意:该字段不参与签名
signValue String Y 签名串,请参考”签名样例以及demo下载“。
data String Y 业务参数(JSON数据)

5.2、业务响应参数

data(JSON数据)

参数 类型(字节长度) 必填 参数说明
changeFlowId String(50) N 合作方系统变更流水,00-成功时返回
code String(2) Y 返回码(00-成功;50-超时;99-失败)
note String(100) Y 返回码说明,返回信息描述

6.示例

```java public static String changeMerInfo() throws Exception { /* 1、外层公有请求参数赋值 / Map params = new HashMap(); params.put("ver", "1.0");//固定值1.0 params.put("msgCode", "Merchant");//接口代码,详见文档 params.put("method", "changeMerInfo");//接口方法,详见文档 params.put("src","ORG20210927162704");// 由银盛生成的接入机构号,请联系银盛客户经理获取 params.put("signType", "RSA");//固定值RSA params.put("charset", Constants.CHARSET_UTF_8);//固定值UTF-8

    /** 2、业务参数data赋值: 业务参数说明详细见接口文档 */
    /** -----------组装业务参数开始 设置为null相当于map里面没有put这个参数,只是做参数的参考,具体按自己业务设置对应字段的值-------------*/
    Map<String,Object> dateParams = new HashMap<>();
    dateParams.put("mercId","826690041210008");//银盛商户号
    dateParams.put("businessLicence","胡氏科技");//营业执照全称
    dateParams.put("userShortName","胡氏科技");//商户简称
    dateParams.put("legalPersonId",null);//法人身份证号
    dateParams.put("registeredAddress",null);//注册地址
    dateParams.put("businessAddress",null);//营业地址
    dateParams.put("legalPersonName",null);//法人姓名
    dateParams.put("legalPersonIdEdate",null);//法人身份证到期日期
    dateParams.put("contactsPhone",null);//联系人电话
    dateParams.put("contactsEmail","14xxxxxx7@qq.com");//联系人邮箱
    dateParams.put("contactsName",null);//联系人姓名

    /** 3、业务参数加密: 业务参数说明详细见接口文档 */
    //加密密钥aeskey: 加密密钥证书入网申请后发放
    String aesKey = "A81F41DE7406CC1566579A751D93CA7A";
    String addMercData = JSONObject.toJSONString(dateParams);
    String creData = DesUtil.encryptExtraData(aesKey, "UTF-8", addMercData);
    params.put("data", creData);

    /** 4、根据请求参数生成签名 */
    //客户端私钥证书路径: 证书在入网流程中自己申请的
    String privateKeyFilePath = "D:/data/yulong_666.pfx";
    //客户端私钥密钥: 私钥密钥在入网流程中自己申请私钥证书时填写的
    String privateKeyPassword = "123456";
    String sign = YsfSignUtil.sign(params, privateKeyFilePath, privateKeyPassword);
    params.put("signValue", sign);
    //因为请求流水号(reqFlowId)不参与签名,在签名之后补充reqFlowId,请自己生成有意义的请求流水号
    params.put("reqFlowId", String.valueOf(System.currentTimeMillis()));

    /** 5、发送请求*/
    //扫码服务商“商户基本信息变更”修改地址,具体以文档为准
    String reqUrl = "https://appdev.ysepay.com/saas/org/changeMerInfo";
    String result = HttpClientUtil.sendPostJson(reqUrl,JSONObject.toJSONString(params));

    /** 6、结果验签 */
    JSONObject jsonObject = JSONObject.parseObject(result);
    // 获取签名串
    String sinaValue = jsonObject.getString("signValue");
    // 获取返回的业务参数(json数据)
    String respData = jsonObject.getString("data");
    Map<String, String> dataMap = null;
    if(!StringUtil.isEmpty(respData)){
        dataMap = JSONObject.parseObject(respData,Map.class);
    }
    //银盛公钥证书路径: 证书入网申请后发放
    String ysPublicKeyFilePath = "D:/data/businessgate.cer";
    //校验返回的业务参数是否与签名串匹配
    boolean flag = YsfSignUtil.rsaCheckContent(dataMap,sinaValue,ysPublicKeyFilePath);
    if(!flag){
        throw new Exception("check sign error");
    }
    return result;
}

```{"code":200,"message":"成功","data":null,"list":null}{"code":200,"message":"成功","data":null,"list":null}

results matching ""

    No results matching ""