一、注册京东开放平台账号(获取开发者身份)
打开 开放平台:
o0b.cn/anzexi
右上角 登录 / 注册 → 用京东商城账号登录(没有就注册)
进入 开发者中心 → 完成 实名认证:
个人:身份证正反面、人脸验证(1–2 小时审核)
企业:营业执照、法人信息(1–3 工作日)
二、创建应用(拿到 AppKey & AppSecret)
登录 → 进入 开发者中心 → 应用管理 → 创建新应用
填写信息(个人测试可简化):
个人测试随便填一个 https 地址(如
https://www.baidu.com)应用名称:如「商品数据工具」(唯一即可)
应用类型:选 工具应用 / 电商工具(个人测试)
应用描述:简单写用途(如 “商品详情查询、价格监控”)
授权回调地址(必填):
图标:可不上传
提交 → 等待审核(10 分钟~1 天,个人应用很快)
✅ 应用审核通过后:获取 AppKey & AppSecret
进入 我的应用 → 对应应用 → 应用详情 / 密钥管理
复制:
AppKey(应用 ID)
AppSecret(密钥,严格保密)
三、申请「商品详情 API」权限(必须)
应用管理 → 接口权限管理 / API 权限
添加权限 → 搜索:
商家接口(JOS):
jingdong.item.read.get(商品详情)联盟接口:
jd.union.open.goods.detail.query填写 用途说明(如 “商品信息查询、价格监控、非商用”)
提交 → 等待审核(1–3 工作日)
没有权限会报错:403 无权限/sub_code:isv.permission-denied
四、获取 AccessToken(两种方式)
方式 A:京东联盟接口(推荐个人 / 比价 / 选品)
Python 代码(直接运行)
import requestsimport hashlibimport time
APP_KEY = "你的AppKey"APP_SECRET = "你的AppSecret"API_URL = "https://api.jd.com/routerjson"def get_access_token():
params = {
"method": "jd.union.open.token.get",
"app_key": APP_KEY,
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"format": "json",
"v": "2.0",
"grant_type": "client_credentials"
}
# 签名
sorted_params = sorted(params.items())
sign_src = APP_SECRET + "".join(f"{k}{v}" for k, v in sorted_params) + APP_SECRET
params["sign"] = hashlib.md5(sign_src.encode()).hexdigest().upper()
resp = requests.post(API_URL, data=params)
result = resp.json()
# 解析
try:
token = result["jd_union_open_token_get_response"]["result"]["token"]
return token # 有效期24小时
except:
return "获取失败:" + str(result)if __name__ == "__main__":
print("Access Token:", get_access_token())方式 B:商家 JOS 接口(需店铺授权,ERP / 商家用)
构造授权 URL(浏览器打开)
https://oauth.jd.com/oauth/authorize? response_type=code& client_id=你的AppKey& redirect_uri=你的回调地址& scope=item_read
- 用店铺账号 授权 → 跳转回调地址,拿到
code - 用 code 换 AccessToken
def get_token_by_code(code):
url = "https://oauth.jd.com/oauth/token"
data = {
"grant_type": "authorization_code",
"code": code,
"client_id": APP_KEY,
"client_secret": APP_SECRET,
"redirect_uri": "你的回调地址"
}
resp = requests.post(url, data=data)
return resp.json() # 返回access_token、expires_in、refresh_token五、三要素汇总(调用必备)
AppKey:创建应用后自动生成
AppSecret:创建应用后自动生成(保密)
AccessToken:
联盟:
client_credentials模式(24 小时)商家:OAuth 授权码(30 天,需 refresh)
六、常见问题
- 应用审核不通过
名称 / 描述太随意 → 写清楚用途
回调地址不是 https → 必须 https
- 权限申请被拒
用途写清楚:仅用于商品详情查询、价格监控、非商用
- Token 过期
联盟:每 23 小时 自动刷新一次
商家:用
refresh_token续期