商户变更图片上传
1、修订记录
修订记录 | 日期 | 说明 | 作者 |
---|---|---|---|
1.0 | 2021.11.10 | 初稿 | 朱龙玲 |
2、业务说明
(1)接口说明
服务商修改已成功进件的商户信息后,需要调用此接口上传对应的图片信息以及”商户变更申请表“。如:调用"商户信息变更接口"变更了营业执照相关信息,需要再调用这个接口上传新的营业执照。
注:此接口只支持变更以下图片类型A001 营业执照,A002 法人身份证正面,A003 法人身份证反面A009 手持身份证合影照片,A004结算账户正面,A005 结算账户反面,B008 商户信息变更申请表图片
3、请求地址
环境 | HTTPS请求地址 |
---|---|
测试环境 | https://appdev.ysepay.com/saas/org/changeMerPic |
正式环境 | https://ouser.ysepay.com:6443/saas/org/changeMerPic |
4、请求参数说明
4.1、公共请求参数
参数 | 类型(长度) | 必填 | 参数说明 |
---|---|---|---|
picFile | File | Y | 图片 图片大小:不超过 1M 图片类型:jpg、jpeg、png、bmp、gif |
picType | String(2) | Y | 图片类型,只允许变更以下类型 类型编码:A001 营业执照,A002 法人身份证正面,A003 法人身份证反面,A004 结算账户正面,A005 结算账户反面,A009 手持身份证合影照片,A011开户许可证,A013非法人身份证头像面,A014非法人身份证国徽面, B005法人/非法人结算授权书,B008 商户信息变更申请表.示例:A002 |
reqFlowId | String(20) | Y | 请求流水号,示例值:202110011944011101 注意:该字段不参与签名 |
signValue | String | Y | 签名串,请参考”签名样例以及demo下载“。 |
changeFlowId | String(50) | Y | 合作方系统变更流水,信息变更接口返回 |
5.响应参数说明
银盛支付对商户的请求数据处理完成后,会将处理的结果数据同步回执给商户。
请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。
5.1、公共响应参数
参数 | 类型(长度) | 必填 | 参数说明 |
---|---|---|---|
reqFlowId | String(20) | Y | 请求流水号,示例值:202110011944011101 注意:该字段不参与签名 |
signValue | String | Y | 签名串,请参考”签名样例以及demo下载“。 |
data | String | Y | 业务参数(JSON数据) |
5.2、业务响应参数
data(JSON数据)
参数 | 类型(字节长度) | 必填 | 参数说明 |
---|---|---|---|
code | String(2) | Y | 返回码(00-成功;50-超时;99-失败) |
note | String(100) | Y | 返回码说明,返回信息描述 |
6.示例
```java
public static String changeMerPic() throws Exception {
/* 1、请求参数赋值 /
Map
//图片文件转换为byte数组,用于上传
File file = new File("D:/data/test.png");
byte[] bytesArray = new byte[(int) file.length()];
FileInputStream fis = new FileInputStream(file);
fis.read(bytesArray);
fis.close();
/** 2、根据请求参数生成签名 */
//客户端私钥证书路径: 证书在入网流程中自己申请的
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()));
/** 3、发送请求*/
//扫码服务商“商户变更图片上传”修改地址,具体以文档为准
String reqUrl = "https://appdev.ysepay.com/saas/org/changeMerPic";
String result = HttpClientUtil.sendPostJson(reqUrl,JSONObject.toJSONString(params));
/** 4、结果验签 */
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}