python快递鸟获取中通面单

import requests
import hashlib
import base64
import json

# 请求url --正式地址
Url = "https://api.kdniao.com/api/EOrderService"
# 用户ID,快递鸟提供,注意保管,不要泄漏
# 即用户ID,登录快递鸟官网会员中心获取 https://www.kdniao.com/UserCenter/v4/UserHome.aspx
EBusinessID = "1311064"
# API key,快递鸟提供,注意保管,不要泄漏
# 即API key,登录快递鸟官网会员中心获取 https://www.kdniao.com/UserCenter/v4/UserHome.aspx
ApiKey = "9fae1305-3f0c-4d91-8312-e94fd74fa749"


def md5(n):
    md5 = hashlib.md5()
    md5.update(str(n).encode("utf-8"))
    return md5.hexdigest()
# md5加密


def getSign(n):
    md5Data = md5(json.dumps(n)+ApiKey)
    res = str(base64.b64encode(md5Data.encode("utf-8")), "utf-8")
    return res
# 签名


def getParams():
    # 请求接口指令
    RequestType = "1007"
    # 组装应用级参数
    RequestData = {
        "OrderCode": "ZTO012657018199", #自定义的订单编号
        "ShipperCode": "ZTO", #快递公司编码
        "CustomerName": "ZTO2061631234567890", #电子面单账号
        "CustomerPwd": "W0123456", #电子面单密码
        "PayType": 1, #运费支付方式:1-现付,2-到付,3-月结
        "ExpType": 1, #1表示普通订单,2表示线下订单
        "Sender": {
            "Name": "ceshi",
            "Mobile": "17600588787",
            "ProvinceName": "上海",
            "CityName": "上海市",
            "ExpAreaName": "青浦区",
            "Address": "明珠路"
        },
        "Receiver": {
            "Name": "Yann",
            "Mobile": "15018442396",
            "ProvinceName": "北京",
            "CityName": "北京市",
            "ExpAreaName": "朝阳区",
            "Address": "三里屯街道"
        },
        "Commodity": [
            {
                "GoodsName": "鞋子", #物品名称
                "Goodsquantity": 1, #物品数量
                "GoodsWeight": 1.0 #物品重量
            }
        ],
        "AddService": [
            {
                "Name": "INSURE", #增值服务名称
                "Value": "1000" #增值服务值
            }
        ],
        "Weight": 1.0,
        "Quantity": 1, #包裹数量,默认设置为1即可
        "IsReturnPrintTemplate": 0, #是否返回电子面单模板:0-不需要,1-需要
        "Remark": "小心轻放" #物品备注
    }
    # 组装系统级参数
    data = {
        "RequestData": json.dumps(RequestData),
        "RequestType": RequestType,
        "EBusinessID": EBusinessID,
        "DataSign": getSign(RequestData),
        "DataType": 2 #返回数据类型均为JSON格式
    }
    return data
# 请求参数


def post(url, data):
    res = requests.post(url, data)
    return res.text
# 发送post请求


def getResult():
    # 以form表单形式提交post请求,post请求体中包含了应用级参数和系统级参数
    result = post(Url, getParams())
    print(result)
# 输出结果


getResult()

 

上一篇:login加密(MD5)全面java文档


下一篇:前方高能 看小伙是怎么表白粉丝的