Python实现JD京东授权后物流轨迹查询接口(对接青龙系统对外开放接口)

本文介绍如何使用Python对接京东青龙系统对外开放的物流查询接口,首先需要在京东开放平台申请AppKey和AppSecret,然后通过这些凭证进行授权,实现物流轨迹的实时获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自研系统对接京东宙斯平台JOS网址:http://jos.jd.com/
对接青龙系统对外开放接口:AppKey AppSecret 需要去开放平台申请 才能获取到

通过code获取access_token:
https://open-oauth.jd.com/oauth2/access_token?app_key= XXXXX &app_secret= XXXXX &grant_type=authorization_code&code= XXXXX
详细介绍可以查看:
https://jos.jd.com/commondoc?listId=306

下面展示一些 内联代码片

import hashlib
import json
import pymysql
import requests
import smtplib
import datetime
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
TimeStamp = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
AppKey='###'
AppSecret='###'
token='###'       #token 需要去京东授权才能拿到

def JDlog(lpid):
    buy_param_json={
        "customerCode":"021K***",#注册的时候会有商家编码
        "waybillCode":lpid
    }

    buy_param_json_string = json.dumps(buy_param_json)
    #print(buy_param_json_string)
    #print(buy_param_json.get('waybillCode'))
    access_token=token
    app_key=AppKey
    method='jingdong.ldop.receive.trace.get'
    timestamp=TimeStamp
    v=2.0
    param = AppSecret+'360buy_param_json'+buy_param_json_string+'access_token'+access_token+'app_key'+app_key+'method'+method+'timestamp'+timestamp+'v'+str(v)+AppSecret

    sign_md5 = hashlib.md5(str(param).encode("utf-8")).hexdigest().upper()  #MD5加密
    #print(sign_md5)
    data_value = []
    url = 'https://api.jd.com/routerjson'
    Params = {
        'access_token':token,
        'app_key':AppKey,
        'method':'jingdong.ldop.receive.trace.get',
        'v':'2.0',
        'sign':sign_md5,
        '360buy_param_json':buy_param_json_string,
        'timestamp':TimeStamp
    }
    r = requests.post(url, data=Params)
    #print(r.text)
    if list(r.json().keys())[0] == 'error_response' :
        if r.json()["error_response"]["code"] == '19':
            print(r.json()["error_response"]["zh_desc"])
            ####如果token过期的话 会有邮件预警#####
            """
            'JD——koen过期',"需要重新去授权具体的获取查看页面:https://oauth.jd.com/oauth/authorize?response_type=code&client_id=#########&redirect_uri=urn:ietf:wg:oauth:2.0:oob&state=1212")
       print("京东提示的错误码:" + r.json()["error_response"]["code"] + "   " + r.json()["error_response"]["zh_desc"]
            """

    elif list(r.json().keys())[0] == 'jingdong_ldop_receive_trace_get_responce':#执行成功的判断
        #已经拿到了物流轨迹 需要进行分析
        data = r.json()["jingdong_ldop_receive_trace_get_responce"]["querytrace_result"]
        #print(data)

        for i in range(len(data.get('data'))):
            # print(ll.get('data')[i])
            dict = {}
            dict["lpid"] = data.get('data')[i].get('waybillCode')
            dict["rema"] = data.get('data')[i].get('opeTitle')
            dict["tims"] = data.get('data')[i].get('opeTime')
            dict["desb"] = data.get('data')[i].get('opeRemark')
            data_value.append(dict)

        #print(data_value)
    else:
        pass
        #print(list(r.json().keys())[0])
    return data_value
// 输入快递单号进行校验是否已经刷新成功
a = JDlog('JDV*******')
print(a)
通用接口实现类LinkJOS 扩展于:public class LinkJOS extends LinkOAuth2(LinkOAuth2 extends JspEasy) 构造函数 LinkJOS(HttpServletRequest request,HttpServletResponse response) 京东JOS接口访问函数 public String link2(String link,String method,Bag sys,Bag apps,String appSecret,String file,String FileField) 作用:访问京东JOS平台的所有接口 参数: String link,京东JOS平台接口访问地址,目前固定为:https://api.jd.com/routerjson String method,向京东JOS平台提交数据时的方法,需要应用级别参数时建议用POST方法,不需要时用GET(参见后边的实例) Bag sys,系统级别参数书包(一般只需在接口参数文件中放入接口方法即可,参见后边的实例) Bag apps,应用级别参数书包(在接口参数文件中放入必须的应用级别参数,若不需要应用级别参数时直接用new Bag(-1)构造一个空书包即可,参见后边的实例) String appSecret,应用证书中的App Secret,前边已经设置,固定用"@{pPage:app_secret}"即可 String file,调用上传文件接口上传文件(如图片)到京东JOS平台时的文件全名(含相对路径,如:images/logo.png),不是调用上传文件接口时为空字符串即可(参见后边的实例) String FileField,调用上传文件接口上传文件(如图片)到京东JOS平台时的字段名,配合前边的参数,不是调用上传文件接口时为空字符串即可(参见后边的实例) 返回为京东JOS平台接口对应的JSON格式的字符串 JSON文本解析方法 public void parseJson(String json) 作用:解析京东JOS平台接口返回的JSON格式的字符串,并根据内容生成N个对应的书包 参数:String json,京东JOS平台接口返回的JSON格式的字符串 根据JSON文本的内容在系统中生成N个书包,根书包名称为j0,下一层的josn文本内容生成的书包名称用上一层的Key放在上一层的书名中,下边用实例说明寻找对应书包的方法: 如店铺信息查询接口jingdong.vender.shop.query返回的json文本为 { "jingdong_vender_shop_query_responce": { "shop_jos_result": { "open_time": "", "shop_id": "", "category_main_name": "", "category_main": "", "vender_id": "", "brief": "", "logo_url": "", "shop_name": "" } } } 找出店铺信息书包名的方法如下 @{j0:jingdong_vender_shop_query_responce} @{@{pPage:bag}:shop_jos_result} 这时候的@{pPage:bag}即为需要的店铺信息书包名 具体用法请阅读下载包中的《京东卖家如何快速开发网店工具软件》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值