Appearance
概述
需要联系管理员索要账号和密码
各语言使用multipart/form-data POST上传文件图片到微信开发平台服务器,微信开发平台服务器返回json解析数据
授权
请求接口需要在headers头中设置Accesstoken,Accesstoken需要调用方自己生成 Accesstoken生成方式:通过AES CBC模式加密 用户名|密码|秒为单位时间戳
js版
javascript
var ts = Math.round(new Date().getTime() / 1000).toString();
var data = "账号|密码|"+ts;
var key = CryptoJS.enc.Latin1.parse('');//16位字符联系作者索要
var iv = CryptoJS.enc.Latin1.parse('');//16位字符联系作者索要
//加密
var encrypted = CryptoJS.AES.encrypt(data, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
});
var accessToken = encrypted.toString();PHP版
php
$ts = time();
$encrypt = "账号|密码|".$ts;
$key = "";
$iv = "";
//加密函数
function mc_encrypt($encrypt, $mc_key, $iv) {
$passcrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $mc_key, trim($encrypt), MCRYPT_MODE_CBC, $iv); $encode = base64_encode($passcrypt);
return $encode;
}
$accessToken = mc_encrypt($encrypt,$key,$iv);JAVA版
java
//生成token方法
private static String Encrypt(String sstr, String skey, String siv) throws Exception {
if (skey == null) {
System.out.println("出错了");
return null;
}
if (skey.length() != 16) {
System.out.println("key is not 16 of length");
}
byte[] keyByte = skey.getBytes("utf-8");
SecretKeySpec keySpec = new SecretKeySpec(keyByte, "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); //算法/模式/补码方式
byte[] ivByte = siv.getBytes("utf-8");
IvParameterSpec iv = new IvParameterSpec(ivByte); //使用CBC模式,需要向量iv,增加加密算法的强度
cipher.init(Cipher.ENCRYPT_MODE, keySpec, iv);
byte[] encrype = cipher.doFinal(sstr.getBytes());
return Base64.getEncoder().encodeToString(encrype); //使用BASE64做转码功能,二次加密
}
//调用
String accessToken = Encrypt(code.toString(), key, vi);//生成请求方式:POST(HTTPS)
请求地址:
https://qyhtest.csc.com.cn/index.php?s=/addon/Bausecard/Mobile/possPicture [测试地址]
https://wechacha.csc.com.cn/addon/Bausecard/Mobile/possPicture [正式地址]
参数说明
加密参数说明
| 参数 | 是否必填 | 说明 |
|---|---|---|
| Accesstoken | 是 | 加密token 设置在http请求头里 |
| file | 是 | multipart/form-data POST上传 |
调用示例
js
$.ajax({
url: BCRUrl, //上传地址
type: 'POST',
cache: false,
headers: {
'Accesstoken': accessToken
},
data: new FormData($('#uploadForm')[0]), //表单数据
processData: false,
contentType: false,
success: function(data) {
alert(1);
console.log(data);
}
})返回参数说明
| key | 说明 |
|---|---|
| code | 状态码 |
| data | 数据汇总 |
| --address | 一个结构化的标示形式,表示物理地址 |
| --company | 公司名称 |
| --label | 个人或对象的物理邮件投递或交付地址。 |
| 电子邮箱通讯地址 | |
| --name | 姓名 |
| --Origin_address | 公司地址 |
| --Origin_postcode | 邮政编码 |
| --tel | 电话1 |
| --Tel2 | 电话2 |
| --title | 职位 |
| --url | 公司网址 |
| --imgurl | 图片远程地址 |
常见错误码
| Code 值 | 说明 |
|---|---|
| 200 | 正常识别 |
| 4001 | 密文失效 |
| 4002 | 图片上传失效 |
| 4003 | 账号或密码错误 |
| 4004 | 密文错误 |