接 DoorDash Drive:报价、下单配送、查状态
在 DoorDash Developer Portal 的 Credentials 页复制 Developer ID、Key ID 与 Signing Secret,在 Integration 里二选一设好取件方式——填取件地址,或填商家外部 ID+门店外部 ID 一对——测试通过即可发起 DoorDash Drive 配送。
DoorDash 连接器用来从本系统发起 DoorDash Drive 同城配送:可以报价、创建配送单、查询配送状态,也可以取消配送单。它只是末端配送连接——不把 DoorDash 外卖平台的订单拉进本系统,也不做菜单或门店商品同步。报价与配送都走您自己的 DoorDash Drive 账号与取件地点。
前置条件#
- 一个 DoorDash Drive 账号,并且能进 DoorDash Developer Portal——Credentials 页上能看到您的 Developer ID、Key ID 与 Signing Secret。
- 您清楚取件地点怎么标识:要么填门店或仓库的单行取件地址,要么用已在 DoorDash 注册的门店,填它的商家外部 ID 与门店外部 ID。地址与 ID 对是二选一——开始前先定好用哪种。
- 取件时要展示给配送员看的取件门店名称与可拨打的电话(如果您想展示的话)——例如门店名称与门店直线电话。
拿凭证#
- 登录 DoorDash Developer Portal,打开 Credentials 页。
- 复制该页显示的 Developer ID。它标识您的开发者账号,是连接为请求签名所用的三个值之一。
- 复制同一 Credentials 页上显示的 Key ID。
- 完整复制同一 Credentials 页上显示的 Signing Secret。Key ID 与 Signing Secret 是一对,Signing Secret 是一个 base64 值,连接用它为每个请求签一个短期有效的令牌——要从与 Key ID 同一页复制,不要拿另一对密钥里的。
填进 Integration#
- 打开 Integration → 连接器市场 → DoorDash → 新建连接。
- developer_id——必填,Developer ID:粘贴 DoorDash Developer Portal → Credentials 页上的 Developer ID。
- key_id——必填,Key ID:粘贴同一 Credentials 页上的 Key ID。
- signing_secret——必填,Signing Secret:完整粘贴同一 Credentials 页上的 Signing Secret。这是密码类型字段,作为秘密保存。
- 现在二选一设定取件方式——方式 A,填地址:pickup_address 填门店或仓库的单行取件地址,例如 901 Market Street, San Francisco, CA 94103, US,两个外部 ID 字段留空。
- 方式 B,已注册门店:pickup_address 留空,pickup_external_business_id(商家外部 ID)与 pickup_external_store_id(门店外部 ID)两个都填,填已在 DoorDash 注册门店的 ID。两个 ID 必须成对一起填——只填一个不行,因为只有两个 ID 齐全时,已注册门店的地址才会替代取件地址。
- pickup_business_name——可选,取件门店名称:展示给配送员看的取件名称,例如您的门店名。pickup_phone_number——可选,取件联系电话:配送员取件时能拨打的号码,例如 +16505550100。
- user_agent——可选,User-Agent:大多数情况留空即可,连接会用默认值 Docklify/1.0。
测试连接#
点测试连接。测试先检查三件套凭证是否齐全——developer_id、key_id、signing_secret——缺任何一个就停下、不发出请求。三者齐全时,它用这三个值签一个 5 分钟有效的短期令牌,拿它去查一单不存在的配送:docklify-probe-nonexistent。DoorDash 返回 404 就是通过:说明签名令牌被接受了,只是那一单是编造的、本就不存在,所以这个测试的预期结果就是 404,不是要去修的错误。返回 401 或 403 会报 AUTH_FAILED,那才是真失败:DoorDash 拒绝了签名令牌。如果您还没保存任何凭证就点测试,得到的是模拟检查结果——保存真实凭证后再测一次,才是真实结果。测试不会创建配送单,也不检查您的取件地址或外部 ID 对,所以取件设置填错了测试照样能过,要到报价或下单配送时才会失败。
配 Mapping / 选模板#
DoorDash Drive 不需要订单 Mapping——它处理配送单,不处理订单。这里要确认的是填入步骤里的取件设置,外加每次请求带的配送字段:取件要么来自您的 pickup_address,要么来自已注册门店(商家外部 ID+门店外部 ID),每次配送请求的送达地址、联系人与物品来自本系统里的运单。激活前,先建一次真实报价、再给您自己的地址发一单测试配送,把取件名称、取件电话与送达信息和运单逐项对照。
激活#
激活后,本系统里的运单就能发起 DoorDash Drive 配送:连接先给配送报价,报价被接受后创建配送单,配送状态回落到运单上,尚未取件的配送单可以取消。放手跑之前,先在 运行监控 / 日志里盯头几单真实配送,把取件与送达信息和 DoorDash 对照无误。
这个连接不做的事:不把 DoorDash 外卖平台订单带进本系统,不同步菜单或门店商品,也不替您结算配送员费用或 DoorDash 账单。它只为您经它发出的运单做 DoorDash Drive 配送的报价、创建、跟踪与取消。
常见问题#
测试提到 404——是失败了吗?
没有——对 DoorDash Drive 来说,这个 404 正是通过信号。测试是故意去查一单不存在的配送:docklify-probe-nonexistent。能拿到“不存在”的回答,说明 DoorDash 接受了用您的 developer_id、key_id 与 signing_secret 签出的令牌,只是拒绝了那一单编造的配送。
把这次测试当作通过,继续去激活。只有返回 401 或 403、报 AUTH_FAILED 时,才是测试真的失败。
测试报 AUTH_FAILED、401 或 403
DoorDash 拒绝了签名令牌,说明三个值里有一个对不上:developer_id、key_id 或 signing_secret 复制错了,或者您粘贴的 Signing Secret 与粘贴的 Key ID 不是一对——两者是在 Credentials 页上成对签发的。
回到 DoorDash Developer Portal → Credentials 页,从同一页重新复制三个值:Developer ID 填 developer_id,Key ID 填 key_id,与该 Key ID 配对的 Signing Secret 完整填 signing_secret。然后重新测试。
测试还没发出请求就停下,提示凭证缺失
测试要用三个凭证值一起签令牌,所以缺任何一个都没法开始:developer_id、key_id 与 signing_secret 不齐,就没有可签名的东西,测试会直接停下,而不是发出一个不可能成功的请求。
从 DoorDash Developer Portal → Credentials 页把三个字段补全,保存连接后重新测试。没填凭证的测试只是模拟检查——要真实结果,先保存真实值。
我只填了两个外部 ID 里的一个,取件用不了
商家外部 ID 与门店外部 ID 只有成对才有效。已注册门店的地址只有在两个 ID 齐全时才会替代取件地址——只有一个 ID 时,连接既没有完整的已注册门店;若您又把取件地址留空了,就连取件地址也没有。
选一种方式并补完整:要么把 pickup_external_business_id 与 pickup_external_store_id 两个都填上、用已注册门店;要么把两个 ID 字段都清空,改填 pickup_address 单行取件地址。然后重新报价。
测试通过了,但创建配送单在取件这边失败
连接测试只证明凭证:它签一个令牌去探一单不存在的配送。它不检查您的取件地址、也不检查外部 ID 对,所以地址缺失、ID 对不全、或 ID 对指向未注册的门店,都能通过测试,要到真实报价或下单配送真正用到那个取件地点时才暴露。
检查连接上的取件方式:pickup_address 填的是完整的单行地址,或两个外部 ID 字段都填了且指向已在 DoorDash 注册的门店——不要混用,也不要只填一个 ID。改好保存后,先重新报价,再创建配送单。
配送员去了错的地方,或取件时联系不上人
配送员按连接发过去的取件信息走:取件地址(或外部 ID 对背后的已注册门店)、展示用的 pickup_business_name(取件门店名称),以及能拨打的 pickup_phone_number(取件联系电话)。其中任何一项错了或缺了,配送员拿到的就是错地点、错名称,或打不通的号码。
把连接上的取件字段改对:取件地址或已注册门店的 ID 对、pickup_business_name 填取件现场人员能认出的名称、pickup_phone_number 填取件时段有人接听的号码。保存后,下一单配送就会用改对的值——已经创建的配送单仍保留它创建时的取件信息。