📌 接口概述 pdd.erp.order.sync
pdd.erp.order.sync 用于把 ERP 系统中的订单物流 / 运单信息回传到拼多多打单系统,
以实现自动打印快递单、发票及订单状态跟踪。这是一个商家后台写接口(数据往外推),
不返回商品列表,无法用于「商品推荐 / 猜你喜欢」场景。
💡 因此本站首页「猜你喜欢的」区块的拼多多橱窗并未使用本接口,而是走
多多客商品接口(pdd.ddk.* 系列),由服务端代理
/api/pdd/guess 调用,密钥保存在服务器 .pdd_config.json,绝不暴露到前端。
当前该通道尚未放行,详见下方「实测结论」与「当前阻塞点」。
🧪 接口可用性实测结论 2026-09-22 · 直连网关验证
以下结果由本站服务端持 client_id + client_secret 直连
gw-api.pinduoduo.com 实测取得(非文档推测)。判读要点:21002 表示
已过鉴权(只缺参数);20031 表示接口存在但无权限包;
50001 非多多客 表示需绑定多多进宝 duoId;10017 表示接口名不存在。
| 接口 | 实测结果 | 含义 |
pdd.time.get | ✅ 成功 | 密钥有效、MD5 大写签名正确 |
pdd.goods.cats.get | ✅ 成功 | 真实返回商品类目(如"男装"cat_id 239) |
pdd.goods.opt.get | ✅ 成功 | 真实返回属性字典(如"食品"opt_id 1) |
pdd.mall.info.get · pdd.order.list.get · pdd.goods.list.get
pdd.goods.detail.get · pdd.goods.spec.id.get · pdd.logistics.companies.get
pdd.erp.order.sync · pdd.refund.list.increment.get | 20031 无权限 | 接口族存在且类型兼容,但应用未开通任何权限包(pdd.erp.order.sync 亦在此列) |
pdd.ddk.goods.search · pdd.ddk.goods.recommend.get · pdd.ddk.goods.detail
pdd.ddk.goods.pid.query · pdd.ddk.mall.goods.list.get
pdd.ddk.goods.basic.info.get · pdd.ddk.rp.prom.url.generate · pdd.ddk.theme.goods.search · pdd.ddk.order.detail.get | 50001 非多多客 | 参数补全后统一报错:client_id 未绑定任何 duoId,全部多多客接口不可用 |
pdd.ddk.goods.zs.unit.url.gen | 21002 → 50001 | 不带 pid 时仅缺参数(过鉴权);带上 pid 即触发归属校验并报 50001 |
pdd.goods.search · pdd.ddk.tools.prom.url.generate · pdd.ddk.goods.prom.url.generate
pdd.ddk.goods.top.goods.list.query · pdd.ddk.merchant.basic.info.query | 10017 不存在 | 网关无此接口名(网上不少示例有误) |
pdd.pop.auth.token.create | 需 OAuth code | 授权码模式,需商家人工授权,无法用密钥直接换 access_token |
⚠️ 两个必须注意的坑(已在本站代码中修正)
① 签名 sign 必须为 MD5 的大写十六进制。小写会被网关判为
20004 签名验证失败(实测确认)。
② pdd.goods.search 这个接口并不存在,商品搜索请用
pdd.ddk.goods.search(且需先绑定 duoId)。
🚧 当前阻塞点 · 多多进宝提示「clientID不存在,无法绑定」 2026-09-22 实测
在 jinbao.pinduoduo.com/third-party/rank(多多客 API 工具 → 绑定 Client ID)输入本站
client_id 时,页面顶部提示 「clientID不存在,无法绑定」。
结合网关实测(密钥有效、三个基础接口成功、ddk 族全部 50001、商家族全部 20031),
可判定:问题不在密钥与签名,而在应用资质与账号归属——网关承认这个应用,但多多进宝不认它。
按概率依次排查
| # | 检查项 | 为什么是它 |
| 1 | 开放平台账号的手机号 是否 等于 多多进宝账号手机号 | 官方文档与接入教程均要求「开放平台与多多进宝必须是同一账号 / 同一手机号」。用 A 账号的 client_id 去 B 账号的多多进宝绑定,就会查不到该 client_id |
| 2 | 应用是否审核通过 / 已上线 | 多多进宝绑定页步骤一明示「提交应用审核」,步骤二为「应用审核通过后输入 Client ID 进行绑定」——开发中 / 审核中的应用不在可绑定范围,绑定页便会报"不存在" |
| 3 | 应用类型是否为 多多客 / 工具商 类 | 实测本应用 ddk 族全报 50001「非多多客」+ 商家族全报 20031,特征符合「商家应用且未开通权限包」 |
| 4 | client_id 逐字符核对(32 位小写 hex) | 复制粘贴易带空格 / 换行 / 混入 client_secret |
⚠️ 多多进宝 不支持解绑 client_id(官方 FAQ 明确)。请务必先确认第 1、2 项,再把正确的
client_id 绑到 duoId 上;一旦绑错只能换账号。另外 client_secret 一旦在聊天 /
截图中出现过,建议在开放平台重置后再使用。
🚀 启用商品橱窗的三条路径
路径 A · 多多客(推荐,免费、无需用户授权)
- 确认开放平台登录手机号与多多进宝一致(不一致就先统一,这是硬前提);
- 在该账号下创建应用(多多客 / 工具商类型更贴合),提交并等待审核通过;
- 到
jinbao.pinduoduo.com/third-party/rank 用新应用的 client_id 完成 duoId 绑定;
- 在多多进宝创建推广位得到
pid(形如 1234567_12345678_123456789);
- 把新的
client_id / client_secret / pid 写入服务器 .pdd_config.json;
无需改代码、无需重启,首页右栏自动切回商品橱窗。
路径 B · 商家自营商品(需权限包 + OAuth 授权)
- 在开放平台为应用申请商品管理 / 商品查询类权限包,使
pdd.goods.list.get 走出 20031;
- 完成店铺 OAuth 授权换取
access_token(pdd.pop.auth.token.create 需要一次性 code);
- 把
access_token 写入 .pdd_config.json,生效接口 pdd.goods.list.get(仅本店商品)。
路径 C · 零依赖(当前已上线)
- 首页右栏在拼多多通道不可用时,自动降级为「🆕 站内上新」(按作品真实时间倒序,1542 件展品中 574 件有真实时间戳);
- 访客侧不会看到任何错误码或绑定指引,技术原因收进页面上的「ⓘ 查看原因」折叠区;
- 优势:无需任何外部账号资质,首页永远有内容;拼多多通道打通后自动切换为商品橱窗。
当前线上已完成 client_id / client_secret 注入且密钥自检通过,
只差「账号资质 / 权限」这一步;在打通之前,首页按下发区 C 的降级方案呈现。
🌐 请求地址
| 环境 | HTTP | HTTPS(推荐) |
| 正式环境 | http://gw-api.pinduoduo.com/api/router | https://gw-api.pinduoduo.com/api/router |
注:拼多多开放平台目前无沙箱环境,仅提供正式环境。
🔧 公共参数(每次调用必带)
| 参数 | 类型 | 必填 | 说明 |
type | String | 必填 | API 接口名,如 pdd.erp.order.sync、pdd.ddk.goods.search |
client_id | String | 必填 | 开放平台分配给应用的 client_id |
access_token | String | 选填 | 通过 OAuth2(pdd.pop.auth.token.create)获取的授权令牌;涉及用户 / 店铺数据时必须传 |
timestamp | String | 必填 | UNIX 时间戳(秒),与拼多多服务器时间差需在 10 分钟内 |
sign | String | 必填 | API 参数签名结果,MD5 算法,必须大写,见下方「签名算法」 |
data_type | String | 选填 | 返回格式,JSON 或 XML,默认 JSON(大写) |
version | String | 选填 | API 协议版本,默认 V1 |
📦 业务参数 pdd.erp.order.sync
| 参数 | 类型 | 必填 | 说明 |
logistics_id | Long | 必填 | 物流公司编码 |
order_sn | String | 必填 | 订单号 |
order_state | Integer | 必填 | 订单状态:1 = 已打单 |
waybill_no | String | 必填 | 运单号 |
该接口需先开通「订单 / 打单」类权限包;本站应用实测为 20031(无权限),暂不可调用。
🔏 签名算法(MD5 · 大写)
步骤
- 收集所有业务参数 + 公共参数(除
sign 外),剔除值为空的参数;
- 按参数名 ASCII 升序排序;
- 拼接为
key1value1key2value2…(无分隔符);
- 首尾各拼接
client_secret:secret + 拼接串 + secret;
- 对结果做 MD5,得到 32 位签名,并转为大写后作为
sign 传入。
Node.js 示例
// 服务端代理示例(与本站 /api/pdd/guess 同款逻辑)
const crypto = require('crypto');
function pddSign(params, secret) {
const keys = Object.keys(params)
.filter(k => params[k] !== '' && k !== 'sign')
.sort();
let s = secret;
for (const k of keys) s += k + params[k];
s += secret;
return crypto.createHash('md5').update(s).digest('hex').toUpperCase(); // 必须大写
}
Python 示例
import hashlib
def pdd_sign(params, secret):
items = sorted((k, v) for k, v in params.items()
if k != 'sign' and v != '')
raw = secret + ''.join(f'{k}{v}' for k, v in items) + secret
return hashlib.md5(raw.encode('utf-8')).hexdigest().upper() # 必须大写
🧾 常见错误码速查
| 错误码 | 含义 | 处理 |
10017 | type 不正确(接口名不存在) | 核对接口名,勿用网上流传的 pdd.goods.search |
20031 | 应用没有此接口的调用权限 | 接口族兼容,仅缺权限包:在开放平台申请对应权限包 |
20004 | 签名验证失败 | 确认为 MD5 大写;核对 client_secret 与参数升序 |
50001 | 非多多客(未绑定 duoId / 非归属 clientId) | 先排查「开放平台与多多进宝是否同一手机号 + 应用是否审核通过」,再在 jinbao.pinduoduo.com/third-party/rank 绑定 client_id |
21002 | 请求参数不能为空 | 按提示补必填参数(如 pid);出现此码说明已过鉴权 |
10001 | 公共参数错误:access_token | 该接口需要授权令牌,先完成 OAuth |
📨 返回结构(示例)
{
"error_response": { // 仅出错时存在
"error_code": 50001,
"error_msg": "非多多客,请到 ... 检查:1. duoId是否绑定clientId ...",
"request_id": "179..."
},
"goods_search_response": { // 成功时为具体业务的 _response 节点
"goods_list": [ { "goods_id", "goods_name", "min_group_price", "goods_thumbnail_url", "sales_tip", "goods_sign" } ]
}
}
调用示例(简化)
const params = {
type: 'pdd.erp.order.sync',
client_id, timestamp: String(Math.floor(Date.now()/1000)),
data_type: 'JSON',
logistics_id: '1001', order_sn: '2609...',
order_state: '1', waybill_no: 'YT1234567890'
};
params.sign = pddSign(params, client_secret); // MD5 大写
// POST application/x-www-form-urlencoded 到网关地址
🔗 本站接入状态
- ✓ 本参考页部署于 /pdd-api.html(展览馆站)。
- ✓ 首页橱窗代理
/api/pdd/guess 已上线,按
pdd.ddk.goods.recommend.get → pdd.ddk.goods.search 顺序尝试,失败自动回退。
- ✓ 密钥自检接口
/api/pdd/status 已上线,实时校验密钥与签名。
- ✓
client_id / client_secret 已注入服务器 .pdd_config.json(权限 600);隐藏文件已被静态通道拦截,公网访问返回 404。
- ✓ 首页「猜你喜欢的」右栏已实现优雅降级:拼多多通道不可用时呈现「🆕 站内上新」,
访客侧不出现错误码;技术原因收进「ⓘ 查看原因」折叠区。
- … 待办:完成开放平台 / 多多进宝账号资质与 duoId 绑定(或申请商品权限包)后,
橱窗自动出商品卡,无需改代码、无需重启。
← 返回展览馆首页