DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
W

dsh-waimai

Waimai

Browse Taobao Instant Commerce and Hema addresses, menus and orders, confirm cart quotes and open official payment pages.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:vb2250158/dsh-waimai#67bffd84f60bf9710ac17bb35d8e7cda080572f1
READMECompatibilityVersions

Compatibility and provenance

Waimai is published as dsh-waimai and currently resolves to version 0.8.39. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
11/2/2026

Versions

0.8.39stable
11/2/2026
0.8.38stable
10/29/2026
0.8.37stable
10/29/2026
Show 13 more versionsCollapse versions
0.8.32stable
10/29/2026
0.8.30stable
10/28/2026
0.8.29stable
10/28/2026
0.8.28stable
10/28/2026
0.8.25stable
10/27/2026
0.8.22stable
10/27/2026
0.8.20stable
10/27/2026
0.8.16stable
10/26/2026
0.8.8stable
10/26/2026
0.8.4stable
10/26/2026
0.8.3stable
10/26/2026
0.8.2stable
10/22/2026
0.7.0stable
10/21/2026

Related plugins

Loading related plugins…

Latest
0.8.39
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 3
Weekly downloads
0
Last push
11/2/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in search-research.

MarketdshmarketVisual plugin market inside DeepSeek Harness — browse, search, and one-click install community plugins. · DSH 可视化插件市场:逛一逛,点一下,装好。Free Searchdsh-free-searchFree web search for DeepSeek Harness: 27 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel/You.com keyless; Zhihu global/site via MCP and Perplexity/SerpBase/DeepSeek (official + native tools/search)/Baidu/Kimi/Aliyun/DoubaAb Wechat Scrapedsh-ab-wechat-scrape--- description: "The out-of-tree wechat_scrape tool: retrieves WeChat official-account articles, filters promotional blocks, and saves each as a Markdown file, for maintainers of this machine's dsh profiles." kind: "package-reference" ---Ab Market Researchdsh-ab-market-researchAn out-of-tree DeepSeek Harness plugin: the trade_search tool (multi-round aspect-broadening query planning, publisher-tier ranking, source diversity, JSON snapshot) and its browser card in one package.

README

dsh-waimai

插件页的「跨平台搜索」按所选账号分别查询淘宝闪购和盒马,展示商品所属店铺、平台显示价及分页;价格与库存以平台实时结算为准。闪购通过其 H5 搜索接口读取当前地址范围内的结果,沿用隐藏推广店铺设置;盒马按配送组查询,其他配送组按需加载。美团和京东尚未接入,页面分别显示其状态。各平台读取失败或部分结果未识别时分别提示,搜索结果不创建订单或付款。 商超加购记录与恢复规则见 商超加购记录。

支付宝内联登录无法继续时,私有诊断区分请求未获显式提交、未识别步骤、额外确认、无可用入口、响应失败和表单呈现失败。协议诊断进一步区分列表、名称、链接格式、域名、路径、查询参数及协议编号问题,并单独标记额外协议字段。诊断仅含固定分类和布尔标记,不保存原始响应、错误、链接或身份信息,也不改变请求放行条件。

支付宝登录验证完成后,支付配置显示当前收银台的「付款方式」。用户点击刷新读取可用方式,再明确选择;页面只按后台回读显示已选项,不自动付款。只支持无需开通、绑卡或额外协议的已返回方式;同名银行卡按当前会话引用区分。选择失败立即禁止使用旧方式继续付款,刷新只查询结果,不重发选择。方式引用不写入配置,也不作为跨订单默认银行卡;支付密码和金额限额仍是通用配置。真实付款尚未验收。

支付配置的「支付宝登录与验证」根据支付宝当前步骤显示登录方式、手机号或短信验证码输入框,通过认证私有 RPC 提交。后台使用独立浏览器中的官方页面执行原有风控 SDK;一次操作只放行一次对应请求,不自动重发验证码,验证码按官方要求接受四位或六位。输入提交后从页面状态清除,不进入普通配置或日志。已识别的登录协议显示官方公开链接,由用户阅读并主动勾选后才可提交手机号;刷新步骤、切换订单或验证会话后须重新确认。额外人机验证、注册、未知协议和未识别步骤停止内联操作,提供官方窗口处理入口。

登录方式列表来自当前官方页面;选择后在本页继续填写手机号和验证码。该列表是登录入口,不代表已绑定银行卡或已选择实际扣款方式。选择入口只打开登录表单,不提交付款;过期的选项引用必须刷新后重新选择。

协议标题兼容官方单条展示的 name 和列表展示的 text 字段;标题互相冲突时拒绝继续,两种格式均保留相同的链接校验与用户主动勾选要求。

登录验证按所选账号继续已有的有效待付款订单及支付宝 H5 会话;缺少会话时后端拒绝准备或提交付款。当前不支持下单前独立登录,验证缓存仅保留在当前插件进程内。登录完成后重新核对原订单金额和 SDK 环境,才连接后台;设置页不付款。订单付款卡片的普通收银台连接仍可能调用平台付款提交接口,不属于设置页的仅验证操作。

已登录的本机客户端可通过 /waimai-login 的 retailSearch、retailCart、retailAdd、retailCheckout、paymentOptions 和 paymentPay 调用现有商超与付款工具,不依赖模型生成。接口沿用 DSH 会话认证、严格参数校验、订单归属、报价有效期、预算与未知结果防重;paymentPay 不接受密码或支付链接,保存的密码仅由 Host 注入。所有请求携带 RPC 请求 ID,超时后查询原购物车或订单,不自动重发。此接口补齐不代表实付验收已完成。

H5 原始入口使用 cashierMain 初始化;从已核验的登录、密码或付款确认子页面连接后台时,按原页面参数使用 refreshNoAuth 或 refresh,保留当前会话。未知页面不猜测恢复动作。付款卡片区分业务拒绝、退出登录、额外验证、未知步骤和结果页面,并单独显示后台是否已提交;错误原文与会话参数不进入界面或日志。恢复失败不会替换原会话或重新付款,最终仍以官方订单和付款查询为准。

开发中的 H5 后台支付分支通过认证私有 RPC 初始化原订单收银台,在内存中保留支付宝会话并提交一次服务器指定的付款步骤,不调用 Agent Pay CLI。paymentH5Start 只接受账号、订单、确认金额和私有会话材料,入口始终来自该订单的原始付款回包;paymentH5Submit 接受短期 H5 引用与一次性验证输入。两者不向模型注册,凭据、密码和 H5 原始响应不进入聊天、普通设置或日志。付款卡片提供连接收银台、打开支付宝登录验证、连接后台以及单次付款操作;“支付配置”可选择验证浏览器。独立验证窗口只允许已核验的登录与查询接口,付款在后台发起;登录 Cookie 与支付宝 SDK 环境数据仅留在账号所属进程内,卸载后清除。连接后台后,Agent 可用 get_payment_options 和 pay_order 继续同一 H5 会话;要求支付密码时使用支付设置中保存的密码,也可在私有付款卡片临时输入覆盖。真实付款尚未验收,不能作为已接通自动支付使用。

“支付配置 → 支付密码”保存一份通用的六位支付宝支付密码,不绑定购物渠道或本地购物账号记录,未登录购物账号也可设置。同一购物账号重新登录、切换账号或渠道不会清空密码。密码通过认证私有 RPC 写入 DSH 的 credentials 服务,普通设置、模型参数和响应、日志不含密码。Host 每次付款读取当前值,通过隐藏的 H5 方法传入经核验的原订单会话,不带密码回退 CLI;购物账号、订单归属、实付金额和预算仍分别校验。这不增加尚未接通渠道的付款能力,也不替代支付宝首次登录、短信及额外验证。

旧账号记录中的密码只有一个值时,后台自动迁移;多个旧值不一致或旧记录损坏时,界面提示设置通用密码,不擅自选择。迁移保留原私有记录作为升级留底;点击删除会先禁用通用密码,再清理这些旧记录,防止重启后恢复已删除密码。保存与删除不重启插件,也不能撤回已发出的付款请求。默认本机凭据文件不提供操作系统加密,不能隔离同一系统用户的进程。见 0.8.32 升级说明。

H5 提交复用原付款记录和锁,发出请求前持久记录 h5Submitted: true;超时或响应未知时只查询原订单,不重新提交。服务器要求的额外协议、开卡或未核验动作停止后台提交。成功页本身不证明扣款,最终由原收银台或匹配订单的付款时间核对。新增可选账本字段的降级限制见 0.8.26 升级说明。产生新付款尝试后不得恢复旧账本或删除防重记录。

收银台咨询和提交保留官方入口中的 payEntrance,未提供时沿用 WAP。配置官方 CLI 后,ALIPAY_SDK 响应的原始订单串可通过私有进程参数传给 CLI,不重建签名,也不当作浏览器链接或查询凭证。CLI 回包仍须通过官方结果核对,未知结果不重复付款。此路径已用合成数据验证;淘宝闪购后台自动扣款尚未通过真实验收。

CLI 明确返回 PAYMENT_LINK_UNSUPPORTED 时,插件在当前进程内保留同一订单的原始官方收银台入口,供付款卡片继续打开;不重新创建订单或提交付款,也不把原入口当作 Agent Pay 查询凭证。入口不会写入日志或会话;进程重建后不可恢复时,只提供状态核对。其他失败或未知结果不触发此分支。

支付宝 CLI 的 schemaVersion: 1.0 错误回执也会解析。若返回 PAYMENT_LINK_UNSUPPORTED,会话付款卡片显示“不支持此收银台链接”,不把 CLI 拒绝当作官方付款失败或成功,不自动重试。已实测当前 CLI/服务拒绝淘宝返回的 maliprod.alipay.com 入口;配置和连接检查通过不代表此类订单可自动付款。

支付 CLI 未返回可解析 JSON 时,原始标准输出与错误输出仅保留在认证私有诊断的进程内存中,不进入模型工具结果、持久化文件或普通日志。普通日志只记录退出分类、退出码和输出字节数;超时、启动失败和非零退出不能据此判断是否扣款,也不触发重试。

在「插件 → 外卖助手 → 支付配置」统一调整单笔实付上限、每日累计上限、支付模式、报价有效期和支付宝连接。检查连接只执行已保存路径的 --version,不查询钱包、不发起支付;修改后先保存再检查。连接正常只表示程序可运行,授权和真实付款结果仍由支付宝确认。商家白名单功能已移除,旧配置升级说明见 0.8.20 升级指南。

可选接入支付宝官方 Agent Pay:配置 alipayAgentExecutable 为已安装官方 CLI 的绝对路径,alipayAgentTimeoutMs 为调用超时。留空保留原收银台方式。DSH 会话发起 pay_order 时,插件将本次官方支付材料和已确认的实付、商家交给 CLI;会话身份由 Host 提供,模型不能填写。需要验证时展示本次官方入口,未知结果只查询,不重复付款。密码和身份核验在支付宝官方流程完成。CLI 安装与接入资格遵循官方文档;真实支付验收须单独完成。

付款记录新增可选 provider 和 agentQueryRef 字段,后者只保存本次官方 CLI 返回的查询订单号。签名链接和完整回执只留在进程内存,完整回执仅能通过认证私有诊断读取。旧记录继续可读;产生新字段后,降级必须保留当前付款记录并使用兼容读取器;不得恢复旧账本或删除新付款记录。CLI 输出前置日志时,只解析末尾带数字 code 或 success/status 的 JSON 命令结果,不从诊断日志提取支付入口;尾部非 JSON 或不完整结果保持未知。CLI 返回码或文字不会直接标记已付款,仍核对原收银台结果或匹配订单的付款时间。

商超收银咨询使用官方浏览器请求域名、web 容器和 WAP 来源信息;不伪造设备字段。待支付详情缺少付款时间时保持未确认状态。

支付宝网页验证入口支持既有收银台域名,以及官方文档列出的两种手机网站支付网关:https://mapi.alipay.com/gateway.do 和 https://openapi.alipay.com/gateway.do。网关仅接受此路径,保留原签名参数。日志记录地址拒绝分类和协议、域名,不记录完整地址或查询参数。未配置官方 CLI 时,ALIPAY_SDK 保持结果未知,不显示已可验证;仅打开官方验证入口不代表付款成功,仍须回查官方结果。

付款回包诊断记录固定的结果、动作、验证入口分类以及协议、域名,不记录支付 URL、SDK 载荷或 extraMap 内容。付款结果未知、已付或失败时隐藏普通付款入口;需要验证时仅展示本次付款保留在内存中的原始入口。原始入口丢失后不使用订单详情的自动支付入口代替,也不再次发起付款;这些修复不改变既有未知付款的结果。

已发起付款的界面不再提示去官方客户端继续付款。未知结果只提示核对状态;原验证入口不可用时明确提示先核对付款结果、勿再次付款。插件购物车、结算卡和付款卡共用此提示规则。

付款状态的 paymentQueryAvailable 表示当前账号尚未终结的付款仍有原始收银查询参数,或配置了官方 CLI 且保有本次查询订单号/内存验证链接。重启后为 false 时,不代表刚查询了原付款请求,也不证明未扣款。官方订单取消与支付结果分开报告;缺少查询参数的未知付款仍保持 unknown,参数和验证入口不写入账本。

餐饮创建回包的 POST_STANDARD 付款入口按官方协议解包,eleme://cashier 只转换为官方 HTTPS 收银台地址;无法识别的入口保留已创建订单号,不推断付款成功。

淘宝闪购的会话卡片刷新与 Agent 结算各自保留未过期的报价引用,刷新不会覆盖另一份仍有效的报价。提交继续核验账号、地址、购物车、准确金额和有效期;已使用报价不可重复提交。

淘宝闪购创建结果未知时,每一轮重试都必须重新取得用户明确授权并核对官方订单。retryOf 只能引用相同购物车最新且无后继的未知记录,实付不得增加;旧授权不可自动续用,历史和预算占用全部保留。

结算、提交与调整请求按官方 MTOP SDK 将 asac 放入 URL 查询参数。收银台支持解包 THIRD_PAY 的官方跳转链接,并用官方付款查询接口回写终态;查询参数仅留在进程内存,重启后仍保留付款记录且不自动重付。上述协议修正不等于真实创建订单和付款已经验收。

失败日志额外记录固定的消息关键词分类,例如地址、餐具或优惠券;不保留远端原文。分类只供定位,不能证明失败原因或允许重试。

get_order_status 可查询创建结果未知的记录,此时只核对官方订单,不调用要求订单号的收银台接口。仅已取得唯一订单号的记录继续核对付款;官方列表暂未匹配不代表确认无单。提交诊断保留限定格式的数字业务错误码,丢弃附带消息。

DeepSeek Harness 多平台外卖插件。淘宝闪购和盒马通过 HTTP 读取账号、配送地址、历史订单与商品。闪购支持购物车、结算报价、页面确认创建订单和官方支付入口;盒马支持规格加购、实付报价和确认创建订单,付款在官方客户端完成;美团、京东尚未接入。

淘宝闪购结算与提交日志使用同一报价引用,区分网络失败、平台回包、报价核验失败和成功。日志只保留结构化协议状态与金额,不保存远端消息、订单载荷、地址或支付链接;实际购买仍需当前账号实测确认。

淘宝闪购结算与提交携带同一淘宝渠道请求头,避免同一账号被按通用网页渠道计算红包。2026-10-26 只读实测:百岁山 570ml×24 的报价从使用 ¥10 红包、实付 ¥49.20,变为使用已爆涨的 ¥11 红包、实付 ¥48.20,与官方 App 一致;此次核验没有创建订单或付款。爆红包的官方触发接口已定位为 mtop.alibaba.svip.langrisser.act,需要券按钮下发的 extInfo.supplyInst;已爆涨券直接使用,未下发触发参数时不猜测或用会员兑换代替。本版本修复报价渠道,尚不执行新的爆涨请求。

插件页面

Agent 会话中的盒马商品提供「查看规格」弹窗;get_product_details 的工具卡片显示包装、最低数量、步长、库存和计价单位。历史工具结果提示重新核验价格和库存;刷新绑定记录中的账号,并复核当前配送地址。插件与聊天弹窗共用规格和数量选择、等待反馈及悬浮购物车;点击加购后仅在目标 SKU 数量及其他商品回读一致时显示成功。规格读取和加购重查原搜索页及门店售卖状态;非售卖时段或商品已移出该页时停止加购。称重商品和跨平台商品的加购方式未确认时停止。

购物车弹窗内部滚动商品,较多商品时保留标题和关闭入口。

盒马配送门店 ID 按集合稳定比较,接口仅改变 ID 顺序时不再误报地址变化;真实门店变化仍停止提交。下单诊断记录结构化返回码,不记录远端错误消息、凭据或支付链接;未知结果保留原请求记录并阻止重复提交。

Agent 使用 get_cart(platformId: hema) 获取当前购物车版本,再通过 add_product_to_cart 提交 productRef、skuId、整数数量、revision 和固定的 operationRef。原生加购仅发送一次。完整购物车快照和结果保存在当前账号目录的 hema-cart-attempts.json;接口超时或回读延迟时只刷新购物车,重载后也不重发。未核对的操作会阻止新的加购。购物车价格不作为会员优惠、运费或最终实付的结算证据。

顶部统一选择平台和账号,账号选项标明淘宝扫码或短信登录;五个页签共用当前账号视图。淘宝闪购沿用 ele.me 的业务接口域名,页面使用淘宝闪购品牌。

淘宝扫码账号显示同一登录会话的淘宝昵称和本人头像;账号编号只放在账号详情。头像昵称与当前淘宝身份不匹配时不显示该头像,读取或加载失败显示昵称首字和刷新提示。昵称为空时显示未命名账号。读取前后同时核验淘宝身份和闪购业务身份,身份变化时停止显示资料。

各渠道从平台注册表读取登录方式和默认入口。淘宝闪购提供淘宝扫码与手机号短信;盒马默认提供「手机号短信(淘宝授权)」,也可选择淘宝授权扫码或明确复用已登录淘宝账号。短信走阿里账号的官方网页入口,取得登录会话后独立核验盒马本人资料和订单,不伪称调用盒马 App 的设备登录接口。仅支持已有账号,需要注册或额外验证时停止;手机号和验证码只经私人页面提交。盒马 App 扫码尚未接通,选择它不会生成淘宝二维码。默认入口不宣称已经核实为官方推荐。账号格式变化见 0.5.0 升级说明。

  • 账号与地址:优先显示登录状态、头像、昵称、账号 ID、脱敏手机号和当前配送地址;其他地址折叠为可展开列表。已登录时隐藏登录表单,点击「添加账号」后显示当前平台的默认登录入口;淘宝闪购也可选手机号短信;短信入口提示订单可能属于不同账号。复核业务账号、资料和订单后才加入列表。多个账号保持独立登录,下拉只改变当前页面视图,不影响其他窗口或任务;切到任务或设置后返回仍保留所选账号。地址选择与账号绑定。
  • 点餐:顶部选择或更改配送地址,未选有效地址时不查询店铺。自动加载附近推荐店铺,展示图片、评分、月售、距离、配送时间和起送价,支持翻页及本页筛选;也可查看最近订单店铺。菜单支持分类、图片、标价、售罄及规格选择。单规格直接加购,多规格打开弹框选择份量、口味、配料和数量;显示加价、必选项及互斥选项。加购立即显示等待状态,购物车回读确认后显示成功反馈;失败保留具体原因。右下角悬浮购物车显示数量和金额,点击打开购物车弹框,可减一件、刷新及结算。结算显示平台实付、优惠、费用、商品、地址和配送时间;勾选确认再创建订单,随后点击官方支付入口。切换地址清空旧视图并丢弃迟到请求;同地址刷新失败保留已读结果。
  • 历史订单:优先显示商家、状态、时间、餐品和金额;订单号按需展开。支持刷新、下一页和返回最新记录;每次成功翻页替换当前列表,普通刷新失败时保留最后已校验的页面并显示重试入口,账号不一致时清除资料。
  • 任务:显示当前平台的任务,设置时间、日期、参考菜单与预算。新任务暂停,预览不购买;关闭预览的任务报告接口未验证并停止。
  • 设置:默认平台、预览和金额上限优先显示;结算报价有效期、人工支付说明与本机登录、分页设置按需展开。通过 Host 表单的版本检查保存修改,保留未编辑字段。

未接入平台显示明确空状态,不读取淘宝账号或发送登录请求。切换平台或账号视图时销毁旧资料、地址、订单和店铺列表并丢弃迟到的请求。账号会话按平台和账号隔离,不同账号可并行读取;每个平台同一时间只保留一个待完成登录。默认账号数上限为 10,可配置到 100。美团和京东登录接口仍未接入,不能因多账号界面可用而视为其登录可用。

当前能力

Agent 的 search_shops 支持 nextCursor 分页;本页没有关键词匹配时仍返回下一页,不把空筛选结果解释为附近没有商超。游标在本机 MCP 进程保留,绑定账号、关键词、范围及原生地址分页,有效期和容量可在高级设置调整。重载或过期后从第一页重新查询。

search_products 用商品名称查询最多十家已选店铺,返回商品原名、规格描述、标价和可售状态;查询范围明确为 selected-stores-only,不是全平台搜索。重复分类中的商品按店铺与商品身份去重;某店读取失败时结果标记 complete:false,不伪装成缺货。平台返回空菜单和明确状态时展示原提示,例如「暂无可售商品,请改天再来」;没有状态说明的异常空值仍报错误。购买整箱水时必须核对实际 SKU 的单瓶容量、瓶数和包装,价格比较以实时报价及配送费为准。

平台登录/账号地址/历史店铺/菜单结算/创建订单/支付
淘宝闪购HTTP 可用HTTP 可用附近推荐分页、最近店铺、菜单与购物车 HTTP 可用结算实测可用;确认下单与支付入口已实现,真实购买待用户验收
盒马手机号短信(淘宝授权)、淘宝扫码或复用已登录淘宝账号HTTP 可用,订单分页配送门店、商品名称搜索分页、规格、购物车与整数规格加购实付报价已实测;确认创建订单已实现,真实下单及付款待验收
美团外卖尚未接入尚未接入尚未接入禁用
京东外卖尚未接入尚未接入尚未接入禁用

接口字段来自 2026-10-11 的真实账号请求与官方客户端代码。登录初始化读取 /mini_login.htm 中的 JSON,再调用 /newlogin/sms/send.do 与 /newlogin/sms/login.do,每次发送前获取新 CSRF。登录返回经过 HTTPS 域名限制的 Cookie 同步地址,再通过 mtop.alsc.user.session.ele.check 独立确认账号。账号资料、地址和订单每次读取均复核会话与账号。

盒马在平台下拉中单独选择。添加账号可用淘宝 App 扫码,也可点击「使用已登录淘宝账号」并明确选择已保存的扫码账号;不支持未经验证的盒马短信登录。入口先复核来源淘宝身份,再复制限定淘宝域名的 Cookie 到独立盒马会话,依次确认淘宝身份、盒马本人资料和订单;失败不加入列表。不会读取手机私有目录,也不调用注册、绑定、换绑或购买接口。已有闪购账号的 Cookie 文件、默认账号和配送选择保持原样。

盒马资料通过 mtop.wdk.iseeku.user.profile.get 读取,必须返回本人资料;头像只使用经过校验的 HTTPS 图片 CDN。地址来自 mtop.wdk.lbs.location.UserAddressReadApi.getAllAddress,配送门店由当前已选地址的 decidedShopData.groupList 确认;不将它们标成外卖附近推荐。订单使用 mtop.hema.trade.order.buyer.list.search,保留超出 JavaScript 安全整数范围的完整订单号,金额由分转元,订单时间按中国时区解析,分页与盒马账号绑定。每次私人读取前后复核身份。

「门店与商品」选择配送门店后输入商品名称,调用 mtop.wdk.search.item 分页读取商品、标价单位、图片和库存状态;商品所属原生门店必须位于当前地址的配送组。成功翻页替换当前列表,失败保留最后已确认的一页;可返回首批。分页令牌只在后端保存,页面及模型仅获得与账号、地址、门店和搜索词绑定的随机引用。每个会话最多保留 32 个分页引用、1000 个商品引用;单次搜索超过 1000 件时要求更具体的搜索词,过期引用须重新搜索。

「查看规格」通过 mtop.wdk.detail.openservice 核对商品和原生门店,显示销售规格、最低数量、数量步长、库存及计价单位。只有接口明确标记价格未经转换时才显示规格标价,否则显示「价格暂无法确认」,price 与 originalPrice 为 null;不使用转换后的数字猜测价格。商品列表标价不代表结算实付。搜索词建议、跟踪数据、购物车动作、动态签名和购买链接不进入显示结果。

盒马头像和商品图片仅接受允许的图片 CDN;接口返回的协议相对地址和 HTTP 图片地址转换为 HTTPS,仍拒绝含凭据、非默认端口、查询参数及外部主机的图片。

「查看购物车」通过新版 mtop.trade.query.bag 按所选地址读取当前账号购物车,显示数量、平台显示单价及单位、手机已勾选状态和不可售原因。结算勾选只指定本次报价商品,不改变官方购物车的勾选。单价读取 pay.nowTitle,不将整行金额 afterPromPrice 除以 100 后当作单价。旧购物车接口的空返回不能证明购物车为空;新版组件层级、商品或价格无法完整确认时明确报错。列表分批展开,刷新失败保留已读列表,账号或地址变化后清空。分类菜单仍属于闪购。2026-10-11 已核对真实账号两批共 57 件商品,无重复,并读取规格及与手机一致的 40 条购物车记录。

盒马结算使用 ShopDecideApi.decideByAddressId 获取所选地址的真实 shopIds 与 locationIds,地址编号不能替代配送位置编号;再调用 mtop.wdk.hema.cart.confirm 和 mtop.trade.order.build。页面和 Agent 的 submit_order(platformId: hema) 使用同一账号拥有者,传入当前购物车 revision 和明确的 lineIds。当前支持每种商品数量为 1 的报价;核对完整地址、SKU、数量、商品原价、平台优惠、基础及超重运费和两处实付总额。附加收费、额外协议或无法核对的数据停止提交,不声称所有会员权益均已接入。

「本次结算」只包含当前支持数量的可售商品,与「手机已勾选」分开显示;手机勾选的多件商品不会默认进入本次报价,也不会阻止选择其他商品。配送方式与时间通过 mtop.trade.order.adjust 重新计价。唯一可用选项自动向平台确认;存在多个选项时,插件和会话卡片显示选择器。每次变更生成新报价引用并取消原金额确认;未选时间、旧引用和费用无法核对时禁止下单。原生配送编号及调整参数只保留在后端内存。

用户在插件或会话卡片确认商品、地址和准确金额后,经 mtop.trade.order.create 单次创建订单。提交前获取共享记录锁、保存金额占用并回读;购物车或地址变化、超限、过期及重复商品均拒绝提交。结果未知时保留记录,不自动重试。用户在盒马 App 确认原请求没有生成订单后,可在新报价中再次核对金额,并明确确认重试一次。服务端将重试绑定原未知记录、相同账号、地址、商品及不高于原金额,禁止重复使用及重试链;原记录和预算占用不删除。原生参数和签名仅留在后端内存;付款在盒马 App 完成,官方订单状态确认付款结果。2026-10-21 已真实验证配送选择、完整报价和费用;真实创建请求未取得可识别订单号,订单接口未见对应新单,购买与付款尚未验收通过。

附近推荐通过 mtop.alsc.eleme.miniapp.homepagev1 与 mtop.alsc.eleme.miniapp.collection.homepagev1 HTTP POST 按已选地址查询。仅将明确的 isAd: true 或 isAd: "true" 视为推广,默认过滤;在「点单设置」关闭「隐藏推广店铺」并保存后,展示推广店铺和广告标签,"false" 和空广告信息不影响普通店铺;整页推广被过滤时保留下一页入口。分页位置按未过滤的原始页计算,与账号、地址绑定,不接受任意查询参数。菜单使用 mtop.alsc.waimai.store.miniapp.store.detail.body.query.v2 HTTP POST。折叠与售罄商品可使用数字店铺 ID:先核对菜单中相同商品的店铺引用;没有可核对的商品时,通过 mtop.alsc.waimai.store.miniapp.store.detail.head.query.v2 独立复核加密店铺 ID 和唯一数字别名。其他店铺商品、冲突别名和无法确认的详情仍拒绝展示,历史购买记录不参与别名确认。读取结束再次复核账号和地址。只返回图片、菜品与选项等展示字段,不返回购买链接、购物车动作、历史重购记录或跟踪数据。菜单标价不代表实付金额。人工验证时停止;菜单读取不执行创建订单、取消订单、购买券包或扣款。

淘宝二维码通过官方 /havanaone/loginLegacy/qrCode/generate.do 获取,并轮询 /havanaone/loginLegacy/qrCode/query.do。二维码在后端生成 PNG,临时令牌与 Cookie 不返回页面。每次扫码使用独立会话,取消、过期或切换页签会停止检查。淘宝确认后,通过 mtop.alibaba.ucc.taobao.apply.usertoken 与 mtop.alibaba.ucc.oauthLogin 换取闪购业务会话。仅接受 Eleme 站点的已确认会话,校验 Cookie 域名及账号 ID,再用业务接口复核本地 ID、Havana ID、资料与订单,全部通过后才保存。授权失败或额外验证时保留原账号;注册、绑定、换绑接口不会自动调用。

打开插件页面的扫码入口后自动生成二维码。页面显示扫码、手机确认、完成登录三步进度;手机确认后自动复核业务授权,无需点击检查按钮。临时请求失败会自动重试,确认后的复核默认最多 60 秒;超时、淘宝会话未建立或平台要求额外验证时停止并显示原因,可重新扫码。取消或离开账号页会停止当前尝试。

loginDiagnostics 默认开启,启动器的 web-host.stderr.log 中按 [waimai-login] 和 attemptId 记录二维码确认、业务初始化、令牌与 UCC 接口返回码及授权类型、资料和订单核验、失败和取消。日志仅保留固定字段、类型与数量,不记录远端说明、URL、二维码内容、Token、Cookie 或个人资料;重复等待状态不重复记录。关闭该配置停止记录,登录行为保持原样。

手机号登录的订单可能与淘宝账号所关联的闪购账号不同,仅改变订单查询渠道不能证明账号一致。真实验收已取得淘宝扫码对应的闪购会话,读取昵称、头像与当日订单,并与原短信账号分别保存。平台可能不提供手机号,此时不显示手机号。购买流程要求复核淘宝身份和独立的闪购买家会话;这两个 ID 不应直接比较。

闪购结算与购买

可选配料组的额度为 0 时仍展示基础规格和口味,配料禁选,不把 0 猜成无限制。零额度与默认或必选配料矛盾时停止;不绕过平台数量规则。

购物车使用 mtop.eleme.waimai.carts.shop.operate.um,结算使用 mtop.alsc.bpgw.trade.order.build,确认提交使用 mtop.alsc.bpgw.trade.order.submit,固定请求主机为 alsc-buy2.ele.me。加购从刚读取的菜单中提取 SKU,调用方只传商品引用,不能提供原生规格参数。减一件只调整指定商品,不清空其他商品或更改勾选状态。规格通过 mtop.alsc.waimai.store.detail.item.purchased 读取,各 SKU 的口味和必选配料分别校验。选择引用绑定账号、地址、店铺和商品,加购前重读价格、库存、配料与互斥规则;变化后要求重新选择。套餐、带组合规则或配料数量规则的商品仍停止加购。每次修改只发送一次,并以目标 SKU、口味、配料和数量回读确认;接口成功但数量未变化时提示核对购物车。

报价核对当前账号、闪购买家会话、原始配送地址、店铺、SKU、数量和多个金额字段,不用菜单标价估算实付。原生结算参数和压缩提交数据只保留在后端,页面只接收展示字段、随机报价引用和有效期。付费附加服务或不支持的支付选项会停止。报价有效期可配置,默认 120 秒;购物车、账号、地址变化后旧报价不能提交。

自动任务预览默认开启,不创建订单。手动点餐可在插件页面或会话卡片中获取报价,明确确认商品、配送时间、地址和金额后创建本笔订单,无需关闭全局预览;单笔及每日上限在服务端检查。每日累计包含已创建订单和结果未确认的尝试,不自动因取消或退款返还额度。提交前写入共享本机记录并获取文件锁,不重试创建订单请求;未知结果、相同未变化购物车、重复确认和遗留锁都会阻止再次提交。请先核对官方历史订单,不能用重复提交检查是否成功。

创建成功后,淘宝订单可以用 get_payment_options 读取官方收银台实付和当前付款方式;用户已授权付款时,pay_order 绑定订单、短期付款引用、准确实付和预算发起一次付款。付款前保存独立的 cashier-attempts.json;未知结果、重复确认或重启均不自动重付。仅支持平台当前选择的支付宝方式,不开通免密、信贷或充值。需要验证时,私有卡片提供官方入口;付款参数及链接不进入模型或付款记录。get_payment_status 核对官方订单;商超订单另外验证付款时间、账号和实付,取消或退款状态与付款状态分别显示。未取得付款成功证据时不能报告已付款。自动定时购买仍禁用。

Agent 会话点餐

菜单和点餐准备结果中的 orderingAvailable 表示用户确认下单可用;automaticOrderingAvailable: false 表示自动购买不可用,userConfirmationRequired: true 要求明确用户确认。

会话中的店铺、菜单、推荐餐品、购物车、报价和付款工具结果使用公开 tool.call.toolview 展示卡片。点击店铺或餐品可在当前会话中选择规格、配料和数量、加购、减一件与结算;插件页面继续使用悬浮购物车,会话卡片使用内嵌购物车。卡片绑定记录中的 accountRef,不会随其他窗口切换账号。地址和付款 URL 只通过鉴权 RPC 读取,不写入模型结果。

Agent 推荐时调用 show_order,只能使用当前菜单中的真实 itemIds。获得购物车 revision 后可调用 get_item_options、change_cart,再用 submit_order 请求真实报价。报价卡片重新读取当前购物车和报价,展示有效期、费用、优惠、配送地址和实付;预算超限、过期、身份或购物车变化阻止提交。用户确认后显示订单和官方付款入口;付款后刷新官方状态。请求成功或打开链接都不能当作已付款。迁移见 0.3.0 说明。

下单阶段日志使用 waimai-order 分组,仅记录尝试引用、阶段和金额,不记录地址、账号、餐品、付款 URL 或凭据。订单结果未确认时保留预算占用,先查官方订单,不重试提交。

安装与开发

npm install
npm run check
npm test
dsh plugin --profile web add --save-exact github:vb2250158/dsh-waimai#<40位提交>

插件没有构建步骤,lib/ 就是发布产物。普通登录与账号读取无需安装或打开 Chromium;人工平台验证由用户在官方窗口完成。MCP 子进程由 Host 使用包内绝对路径启动,配置变更后重启该子进程。

工具

模型工具:list_platforms、list_connections、get_status、prepare_ordering、search_shops、search_products、get_menu、get_product_details、get_item_options、get_cart、change_cart、show_order、preview_checkout、submit_order、request_payment、get_order_status 和 Host 的 preview_task。list_connections 只返回平台和本机保存的账号引用,不返回昵称、手机号或凭据;每次使用仍复核会话。浏览器记住上次的平台和各平台账号,刷新或重新进入插件时复核后恢复;仅保存引用,不保存昵称、手机号或登录凭据。浏览器间不同步,清除站点数据后回到默认选择。已移除的账号回到可用默认账号,平台验证或临时查询失败不会改查其他账号。多个账号时,账号工具必须提供对应 accountRef,不会按当前页面的选择改变其他调用。search_shops 的 scope 默认 nearby,分页查询已选地址的附近推荐;recent 查询最近一页订单店铺,keyword 仅筛选当前页结果,不能声称搜索平台全量商家。get_menu 要求返回的稳定 shopId 和该账号已选地址;盒马还须 keyword,后续页原样传回 nextCursor。get_product_details 用搜索结果的 productRef 读取盒马规格。模型结果不包含账号 ID、地址或私人平台分页令牌。淘宝点餐卡片支持用户确认提交;未接入平台返回结构化错误。原有调用迁移见 0.2.5 迁移说明。

短信、账号资料、地址、完整历史订单、确认提交与私人支付入口仅在鉴权的 /waimai-login RPC 可用,内部端点不注册给模型。模型购物车工具复用相同账号所有者,只返回商品、金额及版本。preview_checkout 要求淘宝平台、accountRef 和 shopId,返回不含地址或支付链接的报价;submit_order 用 accountRef、shopId 和 maxAmount 生成预算内的确认卡片;request_payment 和 get_order_status 用本机订单引用核对官方状态。实际创建需明确购买授权,可通过确认卡片或 confirm_order 提交;付款授权和准确金额另由 pay_order 核对。官方付款入口从私人 RPC 读取,不进入模型结果。手机号、验证码、Cookie、地址和购物车摘要不写入共享配置;异常消息不返回网络 URL 或令牌。见 0.2.16 升级说明。

配置

字段默认说明
defaultPlatformtaobao默认平台,另可选 hema、meituan、jd
dryRuntrue自动任务预览;手动下单仍需明确确认,不自动付款
persistLogintrue本机 Cookie 持久化;关闭则仅当前子进程有效
maxAccountsPerPlatform10每个平台最多保存的账号数,整数 1–100;重复登录同一身份更新原条目
loginTimeoutMs20000请求超时毫秒,1000–120000
smsResendSeconds60验证码发送间隔秒,60–600;结果不明也占用间隔
qrLifetimeSeconds180单次扫码等待上限秒,整数 60–600;平台可提前使二维码失效
qrPollSeconds2扫码检查间隔秒,整数 2–15
qrAuthorizationSeconds60手机确认后自动复核上限秒,整数 15–300
browsePageSize10附近店铺每页数量,1–20
browseCursorSeconds600Agent 店铺分页有效期,整数 30–3600 秒
browseCursorLimit100Agent 保留的店铺分页引用数,整数 1–1000
hemaProductPageSize30盒马商品查询每页数量,整数 1–50
hideSponsoredShopstrue隐藏推广店铺;可在「点单设置」关闭,保存后保留广告标签展示,查询会等候接口重连完成
checkoutQuoteSeconds120闪购报价有效期,整数 30–300 秒
historyPageSize10每页订单条数,整数 1–20
maxOrderAmount35单笔金额上限,元;任务只能收紧
dailyBudget0全局每日上限,元;0 表示无限制
autoTasks

任务包含唯一非空 id、name、platformId、enabled、triggerTime(本地 HH:mm)、dateRule(workday/weekend/everyday/custom)、customDays、skipDates、menuPool(每行 店铺 | 菜品 | 参考价格)、menuStrategy(rotate/random/history)、金额限制和通知选项。每分钟轮询,仅触发指定分钟,不补跑错过的任务。同一任务每天只触发一次,先保存触发记录再执行预览或失败通知。

旧浏览器、自动支付和自动领券字段保留加载兼容,当前不执行相应操作;结算优惠以平台报价为准。升级已有调用与任务前阅读 0.2.0 升级说明。

本机数据

文件均位于 $DSH_HOME/waimai/,未设置时使用 ~/.dsh/waimai/。accounts.json 保存平台账号引用和已验证的显示资料,凭据和配送地址引用分别在 accounts/<platform>/<uuid>/login-state.json 与 delivery-selection.json。手机号输入、验证码、地址文本、完整历史订单和未确认扫码会话不持久化;trade-attempts.json 独立保存下单金额、账号、购物车指纹、结果、订单号与私人支付入口,用于避免重复提交。即使关闭记住登录,下单尝试仍持久化。每次使用重读账号与地址,缓存资料不能证明会话有效。本机私人缓存不进入共享配置。

首次加载会把旧 login-state.json 和配送地址引用复制到一个独立淘宝账号目录,保留原文件;索引成功保存后只使用新账号目录。重复登录已保存身份时刷新该条目,旧凭据文件保留用于恢复。取消添加只清除待完成登录,不删除已有账号或凭据。升级说明见 0.2.2 多账号说明。

扫码成功且闪购业务复核通过后,先保存在独立待登录账号目录,再加入账号索引。扫码不读取已有账号的 Cookie,也不会用已有账号的订单冒充扫码账号的订单。含凭据的旧备份只留在本机。

automation-state.json 保存触发和预览历史,notifications.jsonl 记录任务通知,mcp-server.log 为进程日志。既有 browser-profile/、截图、支付流水及 payment-state.json 保留原处,不会清理未确认的预算占用,也不被用于点餐。含账号数据的运行目录、截图和抓包文件不可随环境同步或发布。

验证范围

2026-10-11 已在空购物车中通过正式后端加购餐品和无需餐具,读取平台实付 ¥31.50、打包费 ¥2、配送费 ¥3.50、优惠和次日配送时间,再逐件移除并确认恢复为空。预览模式阻止实际提交。此前旧客户端渠道返回 F-10008-11-10-006,当前小程序渠道和结算请求已成功。真实订单创建和扣款未执行,不能把有效报价当作购买完成。

针对性测试覆盖平台、账号、地址、菜单、商品和购物车验证,配送重新计价、报价展示及金额矛盾、财务请求不自动重试、明确授权的一次重试、预算与持久记录、RPC 鉴权、React 页面和 MCP 进程。真实账号已验证闪购和盒马资料、地址、历史订单、店铺与商品;闪购加购和结算可用。盒马整数 SKU 原生加购、配送选择、结算、平台优惠及运费已实测,原有商品数量和勾选状态保持;订单创建和付款尚未验收通过。

MIT

加购脱敏日志使用 waimai-cart 分组,仅记录操作引用、发送及数量确认阶段和数量变化;不记录账号、地址、商品、配料、URL、Token 或 Cookie。沿用 loginDiagnostics 开关及 Host 的 web-host.stderr.log。

界面语言

插件列表中的名称和描述随 DSH 的中文、英文语言设置切换。

商超 Agent 下单

0.8.5 增加淘宝闪购商超原生商品查询、单规格加购和结算工具。Agent 使用 search_retail_products、get_retail_cart、add_retail_product、preview_retail_checkout;用户明确授权购买及预算后使用 confirm_order。报价按平台返回的优惠后含运费实付校验,复用账号、地址、预算和防重复订单记录。当前不支持必选附加属性或多规格商超商品的加购。request_payment 可在聊天卡片中读取当前待付款商超订单的官方入口,链接不进入模型或持久化日志。淘宝付款接口见上文 get_payment_options、pay_order 与 get_payment_status;平台额外验证仍在官方窗口完成。

0.8.6 的商超结算通过平台地址接口关联当前已选地址与淘宝地址,不通过收货人文字猜测,也不更换地址。一口价商品没有红包组件时仍使用平台最终实付;地址关联缺失、重复或结算返回不同地址时停止下单。附近推荐店铺查询不等于全平台搜索,未经逐店结算不能宣称最低实付。

商超预约配送未选时段时禁止提交。preview_retail_checkout 的 deliveryPreference: earliest 明确选择平台当前最早可配送时段,经调整接口重新计价并返回送达时间;默认 platform 保留平台已选时段。订单结果未知时保留记录和金额;核对官方记录无新单且得到重试授权后,confirm_order 可传原 retryOf 与 previousOrderAbsent: true,仅允许相同购物车、金额不增加的一次重试,不删除原记录,不允许连续重试链。

0.8.21 接受淘宝收银台实际返回的 https://maliprod.alipay.com 支付目标。新订单保存已确认商品摘要并传给支付宝;缺少摘要的旧单不会发起 Agent Pay。新增可选持久化字段与降级要求见 迁移说明。

[]
任务列表,当前只支持预览