图片上传
1、修订记录
修订记录 | 日期 | 说明 | 作者 |
---|---|---|---|
1.0 | 2021.11.10 | 初稿 | 薛晨 |
2、业务说明
(1)接口说明
图片上传是将商户相关图片传输给银盛,此接口同类型的图片只能传一次,建议图片串行上传(一张一张的上传),避免被限流,不支持修改
3、请求地址
环境 | HTTPS请求地址 |
---|---|
测试环境 | https://appdev.ysepay.com/saas/org/uploadPic |
正式环境 | https://ouser.ysepay.com:6443/saas/org/uploadPic |
4、请求参数说明
4.1、公共请求参数
参数 | 类型(长度) | 必填 | 参数说明 | |
---|---|---|---|---|
reqFlowId | String(20) | Y | 请求流水号 示例值:202110011944011101,注:该字段不参与签名 | |
file | File | Y | 图片 图片大小:不超过1M 图片类型:jpg、jpeg、png、 bmp、gif |
|
picType | String(2) | Y | 图片类型 类型编码请参考附录8,根据注册的商户模式不同,上传的图片不同 营业证明文件的可选范围: 个体户:营业执照; 企业:营业执照; 事业单位:事业单位法人证书; 政府机关:事业单位法人证书 或 其他证明文件; 社会组织:民办非企业单位登记证书 或 基金会法人登记证书 或 其他证明文件。 |
|
sysFlowId | String(50) | Y | 合作方系统流水(商户进件接口返回) 示例:12202110111409447515387 | |
signValue | String | Y | 签名串,请参考"签名样例以及demo下载" |
5、响应参数说明
银盛支付对商户的请求数据处理完成后,会将处理的结果数据同步回执给商户。
请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。
5.1、公共响应参数
参数 | 类型(字节长度) | 必填 | 参数说明 |
---|---|---|---|
reqFlowId | String(20) | Y | 请求流水号 示例值:202110011944011101,注:该字段不参与签名 |
signValue | String(128) | Y | 签名串,请参考"签名样例以及demo下载" |
data | String | Y | 业务参数(JSON数据) |
5.2、业务响应参数
data(JSON数据)
参数 | 类型(字节长度) | 必填 | 参数说明 |
---|---|---|---|
code | String(2) | Y | 返回码 00-成功; 50-超时; 99-失败 |
note | String(100) | Y | 返回码说明 |
sysFlowId | String(50) | Y | 合作方系统流水 示例:12202110111409447515387 |
6、样例
```
public String uploadPic() throws Exception {
/* 1、组装请求参数/
//业务参数: 业务参数说明详细见接口文档
HashMap
//图片文件转换为byte数组,用于上传
File file = new File("D:/data/test.jpg");
byte[] bytesArray = new byte[(int) file.length()];
FileInputStream fis = new FileInputStream(file);
fis.read(bytesArray);
fis.close();
/*2、对数据进行加签,并存入请求数据*/
//客户端私钥证书路径: 证书在入网流程中自己申请的
String privateKeyFilePath = "D:/datas/yulong_666.pfx";
//客户端私钥密钥: 私钥密钥在入网流程中自己申请私钥证书时填写的
String privateKeyPassword = "123456";
//请求流水号: 根据自己要求生成,生成有意义的请求流水号
String reqFlowId = String.valueOf(System.currentTimeMillis());
String sign = YsfSignUtil.sign(param, privateKeyFilePath, privateKeyPassword);
param.put("signValue", sign);
param.put("reqFlowId", reqFlowId);
/*3、发送请求*/
//扫码服务商“商户资料变更”修改地址,具体以文档为准
String reqUrl = "http://orgmerc.ysepay.com:8880/saas/org/uploadPic";
String result = HttpClientUtil.sendPostFile(reqUrl,param,bytesArray,file.getName(),"file");
/*4、结果验签*/
//银盛公钥证书路径: 证书入网申请后发放
String ysPublicKeyFilePath = "D:/datas/businessgate.cer";
JSONObject jsonObject = JSONObject.parseObject(result);
// 加签值
String sinaValue = jsonObject.getString("signValue");
// 加签内容
String respData = jsonObject.getString("data");
Map<String, String> dataMap = null;
if(!StringUtil.isEmpty(respData)){
dataMap = JSONObject.parseObject(respData,Map.class);
}
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}