示例代码


NodeJS版 C#版 PHP版

统一参数列表


名称 必要 说明
data 是 见表格
external_company 是 见下文
sign 是 见下文
timer 否 见下文

简要描述

通过创建批次接口建立一个批次,用于存放 创建订单,待所有订单都创建完毕时,用关闭批次接口关闭这一批次。

注意:关闭批次后,这一批次将不允许再次创建订单!

 

 

data 示例

数据类型: JSON

名称 类型 必要 说明
batch_name String 是 批次名称

接口返回

数据类型: JSON

名称 类型 说明
success Int 是否成功(成功为1,失败为0)
message String 当失败时出现,为错误信息
id int 批次id success = 1, id = 111

data示例

数据类型: JSON

名称 类型 必要 说明
express_no String 否 订单号,如果没有则自动生成
orders Json 否 见表格
member_is_need_safe Int 是 是否需要保险
business_id Int 是 见表格
agency String 是 代理店名称
sender String 是 发件人
send_city String 否 发件城市/区域,如果是退回货物业务类型,必填
sender_address String 是 发件地址
sender_post_code String 是 发件邮编
sender_email String 是 发件人邮箱
telphone String 是 发件人电话
sheng String 是 收件人省
shi String 是 收件人市
address String 是 收件人地址
mobile String 是 收件人手机
post_code String 是 收件人邮编
items Int 是 包裹件数
to_name String 是 收件人
boxs Int 是 盒子数
weight Double 是 运单重量
unitprice Double 是 运单单价
package String 是 运单包装数量
tariff Double 是 运单关税
safety Double 是 运单保险
sendMethod int 否 1.派送 2.自提(如果是同城洲际业务类型的话,必传)
packageLengh int 否 体积 长度(不传默认为10)
packageHeight int 否 体积 高度(不传默认为10)
packageWidth int 否 体积 宽度(不传默认为10)

orders示例

数据类型: JSON

名称 类型 必要 说明
name String 是 商品名称
amount Double 是 商品数量

提交数据示例

数据类型: JSON

{
    "express_no":1111,
    "orders":[{
        "name":"aa",
        "amount":2,
        "unit":"AUD",
        "price":9
        },
        { 
            "name":"bb",
            "amount":3,
            "unit":"AUD",
            "price":13.5
        }],
    "no":"A",
    "member_is_need_safe":1,
    "business_id":1,
    "agency":"安安",
    "sender":"琇琇",
    "sender_address":"辽宁省 大连市",
    "sender_post_code":"10001",
    "sender_email":"aaa@163.com",
    "telphone":"10086",
    "sheng":"辽宁",
    "shi":"大连",
    "address":"中山区 大公街21号",
    "mobile":"10010",
    "post_code":"100000",
    "items":3,
    "to_name":"兔子",
    "boxs":3,
    "weight":100,
    "unitprice":100,
    "package":100,
    "tariff":100,
    "safety":100,
    "batch_id":8,
    "sendMethod":1,
    "packageLengh":1,
    "packageHeight":1,
    "packageWidth":1
}
            

接口返回

数据类型: JSON

名称 类型 说明
success Int 是否成功(成功为1,失败为0)
message String 当失败时出现,为错误信息
express_no String 单号,成功时出现


data 示例

数据类型: JSON

名称 类型 必要 说明
batch_name String 是 批次名称

接口返回

数据类型: JSON

名称 类型 说明
success Int 是否成功(成功为1,失败为0)
message String 当失败时出现,为错误信息

data 示例

数据类型: JSON

名称 类型 必要 说明
express_no String 是 中邮运单号

接口返回

数据类型: JSON

名称 类型 说明
success Int 是否成功(成功为1,失败为0)
message String 当失败时出现,为错误信息
weight String 重量,成功时出现
获取退回货物面单 / 接口地址 http://captureupload.30post.cn/api/bill/ReturnsLabel

data 示例

数据类型: JSON

名称 类型 必要 说明
express_no String 是 邮局单号

接口返回

数据类型: JSON

名称 类型 说明
success Int 是否成功(成功为1,失败为0)
message String 当失败时出现,为错误信息
Url string 面单访问路径
其他信息 & 代码示例

分公司与业务类型:


分公司 : no
ID 分公司 内单号
4 悉尼公司 A
10 墨尔本明扬 Y
9 堪培拉 K
7 阿德莱德 S
业务类型 : business_id
ID 业务名称
4 30.3特惠
3 邮政ECI
2 澳洲韵达
1 中邮小包

签名算法:


签名说明

timer: 指定格式的时间,签名过期时间

sign:数据签名

external_company:access key

sk:secret key



签名代码 (C#)

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)

测试 AK&SK


Access Key Secret Key
c2e2e01c-6c95-4146-99d6-815811755603 5fd68fbe-16a4-4851-bc56-3b1890a40a90

NodeJS版代码示例


PHP版代码示例