Skip to content

概述

需要联系管理员索要账号和密码
各语言使用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请求头里
filemultipart/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个人或对象的物理邮件投递或交付地址。
--mail电子邮箱通讯地址
--name姓名
--Origin_address公司地址
--Origin_postcode邮政编码
--tel电话1
--Tel2电话2
--title职位
--url公司网址
--imgurl图片远程地址

常见错误码

Code 值说明
200正常识别
4001密文失效
4002图片上传失效
4003账号或密码错误
4004密文错误