名称 | 必要 | 类型 | 说明 |
---|---|---|---|
external_company | 是 | string | 见下文 |
sign | 是 | string | 见下文 |
timer | 否 | string | 见下文 |
名称 | 必要 | 类型 | 说明 |
---|---|---|---|
i_namecn | 是 | string | 姓名 |
i_idcard | 是 | string | 身份证号 |
i_mobile | 是 | string | 手机号 |
i_cardphoto | 是 | string | 正面图片 3M之内 |
i_cardphotob | 是 | string | 反面图片 3M之内 |
i_cardphotoc | 否 | string | 手绘签名图 |
i_address | 否 | string | 地址 |
i_for_expressno | 否 | string | 绑定单号 |
i_origin | 否 | string | 第三方来源标识 |
ii_isBC | 否 | int | 是否为BS 1是 0否 |
{"success":1,"message":""}
名称 | 必要 | 类型 | 说明 |
---|---|---|---|
external_company | 是 | string | 见下文 |
sign | 是 | string | 见下文 |
timer | 否 | string | 见下文 |
名称 | 必要 | 类型 | 说明 |
---|---|---|---|
i_namecn | 是 | string | 姓名 |
i_mobile | 是 | string | 手机号 |
searchType | 是 | int | 固定为1 |
{
"success": true,
"message": "上传成功",
"data": {
"i_sysid": 950122,
"i_namecn": "姓名",
"i_mobile": "13888888888",
"i_idcard": "xxxxxxxxxxxxxxxxxxxx",
"i_cardphoto": "http://declare.30post.cn/uploadimages/201705/xxxxxxxxxxxxxxxxxxxx-A.jpg",
"i_cardphotob": "http://declare.30post.cn/uploadimages/201705/xxxxxxxxxxxxxxxxxxxx-B.jpg",
"i_cardphotoc": "http://declare.30post.cn/uploadimages/201705/xxxxxxxxxxxxxxxxxxxx-C.jpg",
"i_cardphotoboth": "http://captureupload.30post.cn/api/IDCard/CombinePic?cid=950122&external_company=xxxxxxxxxxxxxxxxxxxx&sign=cf0cfcc9e7e2cb092b40f4ca8793285b&timer=2017-05-26 12:52:36",
"i_datetime": "2014-1-1 00:00:00",
"i_lastupdate": "2014-1-1 00:00:00",
"i_address": "123123",
"i_for_expressno": "",
"i_isFalseiD": 0,
"i_origin": "1",
"i_isBC": 1
}
}
ID | 分公司 | 内单号 |
---|---|---|
4 | 悉尼公司 | A |
10 | 墨尔本明扬 | Y |
9 | 堪培拉 | K |
7 | 阿德莱德 | S |
ID | 业务名称 |
---|---|
4 | 30.3特惠 |
3 | 邮政ECI |
2 | 澳洲韵达 |
1 | 中邮小包 |
timer: 指定格式的时间,签名过期时间
sign:数据签名
external_company:access key
sk:secret key
public static string MD5(string context)
{
byte[] ret = Encoding.Default.GetBytes(context);
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] output = md5.ComputeHash(ret);
return BitConverter.ToString(output).Replace("-", "");
}
public static string Generate(IDictionary<string, object> data, DateTime? expire, string sk)
{
SortedDictionary<string, object> sort = new SortedDictionary<string, object>(data);
StringBuilder ret = new StringBuilder();
foreach (KeyValuePair<string, object> item in sort)
{
ret.Append(item.Key.ToString().ToLower());
ret.Append("{$$}");
ret.Append(item.Value.ToString());
ret.Append("{$$$}");
}
if (expire.HasValue)
{
ret.Append(string.Format("{0:yyyy-MM-dd HH:mm:ss}", expire));
}
ret.Append("{$$$$}");
ret.Append(sk);
string sign = MD5(ret.ToString()).ToLower();
return sign;
}
var data = new Dictionary() {
{ "data", "{batch_name:'AAAAAA'}" },
{ "external_company", "系统分配AK" },
};
var timer = DateTime.Now.AddMinutes(5);
data.Add("sign", Generate(data, timer, "系统分配SK"));
data.Add("timer", timer);
var ret = RequestHelper.Post("http://captureupload.30post.cn/api/bill/closebatch", data, Encoding.UTF8);
签名具体生成步骤
第一步:对参数按照key value的格式,并按照参数名ASCII字典序排序拼接,生成的字符串如下如下:
stringA="data{$$}当前接口请求的json数据{$$$}external_company{$$}分配的ak{$$$}yyyy-MM-dd HH:mm:ss{$$$$}分配的sk";
第二步:MD5计算前面的字符串得出签名:
sign=MD5(stringA)
Access Key | Secret Key |
---|---|
c2e2e01c-6c95-4146-99d6-815811755603 | 5fd68fbe-16a4-4851-bc56-3b1890a40a90 |