尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
京东抢购助手 jd-assistant 源码深度剖析:下单接口参数、错误码与支付密码加密全解
京东抢购助手 jd-assistant 源码深度剖析下单接口参数、错误码与支付密码加密全解【免费下载链接】jd-assistant京东抢购助手包含登录查询商品库存/价格添加/清空购物车抢购商品(下单)查询订单等功能项目地址: https://gitcode.com/gh_mirrors/jd/jd-assistant京东抢购助手jd-assistant是一个用 Python 编写的京东下单自动化开源项目支持登录、查库存/价格、购物车操作与自动抢购下单。本文深入剖析它的源码帮你吃透京东下单接口的核心请求参数、常见错误码resultCode含义以及支付密码的加密方式让阅读 jd_assistant.py 不再云里雾里。一、项目概览这个助手到底能做什么打开 README.md 就能看到这个助手的四大能力登录、商品查询、购物车操作、订单操作。所有功能都收敛在Assistant这一个类里配合几个轻量模块协作完成模块职责源码位置主入口示例演示如何调用助手main.py核心逻辑登录 / 查库存 / 下单 / 抢购jd_assistant.py加密与工具函数密码加密、参数解析util.py配置读取读取config.iniconfig.py依赖清单第三方库版本requirements.txt依赖非常干净只有三个第三方库requests、beautifulsoup4、pycryptodomeRSA 加密用。二、下单前的关键四个必配风控参数很多新手卡在这里。初始化Assistant时会强制检查eid、fp、track_id、risk_control四个参数缺一即抛出异常if not self.eid or not self.fp or not self.track_id or not self.risk_control: raise AsstException(请在 config.ini 中配置 eid, fp, track_id, risk_control 参数)这四个参数来自订单结算页面的隐藏表单官方提供的取法是在结算页打开浏览器开发者工具在 Console 中运行 js/get_parameters.js 即可一次性打印出全部四个值填入 config.ini 即可var eid $(#eid).val(); var fp $(#fp).val(); var trackId getTakId(); var riskControl $(#riskControl).val(); 这四个参数是京东风控的“通行证”下单请求里会原样带上。乱填会导致订单无法提交强烈建议部署前先用有货商品实测一遍。三、核心京东下单接口submitOrder.action参数全解普通商品的下单逻辑在 jd_assistant.py 的submit_order()方法中。它向https://trade.jd.com/shopping/order/submitOrder.action发起 POST请求体由两部分拼成——固定风控参数条件性支付密码参数名取值作用riskControlself.risk_control风控校验值submitOrderParam.trackIdself.track_id链路追踪 IDsubmitOrderParam.eidself.eid设备环境标识submitOrderParam.fpself.fp指纹标识submitOrderParam.needCheck1需校验标志submitOrderParam.isBestCoupon1自动选择最优优惠券submitOrderParam.jxj1校验开关submitOrderParam.payPassword加密后的支付密码仅在配置了支付密码时才添加关键点在“条件性支付密码”payment_pwd global_config.get(account, payment_pwd) if payment_pwd: data[submitOrderParam.payPassword] encrypt_payment_pwd(payment_pwd)为什么要带支付密码当账户里有可用京券或上次订单用了京豆时京东可能自动勾选优惠并强制校验支付密码此时必须提交否则会报错见下文60123。四、下单错误码速查表resultCode下单接口返回 JSON最核心的两个字段是success与resultCode。源码里已经贴心地为高频错误码写了“人话注释”整理成速查表如下普通商品下单错误码resultCode原始 message通俗含义0无✅ 下单成功返回orderId60123请输入支付密码需在 config.ini 配置支付密码60017您多次提交过快请稍后再试触发频率风控稍等再试60077获取用户订单信息失败购物车为空 / 未勾选商品600157xxxx 商品无货下单商品无货600158xxxx 商品无货下单商品无货另一分支源码中对应的处理逻辑if result_code 60077: message message (可能是购物车为空 或 未勾选购物车中商品) elif result_code 60123: message message (需要在config.ini文件中配置支付密码)抢购秒杀下单错误码抢购走的是另一套接口marathon.jd.com/seckillnew/...错误码略有不同resultCode原始 message通俗含义0无✅ 抢购成功返回订单号与支付链接60074很遗憾没有抢到再接再厉哦竞争激烈未抢到60017抱歉您提交过快提交频率过快90013系统正在开小差请重试服务端异常重试即可 判断下单是否成功的通用规则先看success布尔值再看resultCode是否为0最后取orderId。五、支付密码加密u3 前缀编码 RSA 登录加密这里有个容易误解的点值得单独讲清楚——支付密码和登录密码用的是两套完全不同的加密方案。1. 支付密码u3 前缀编码非 RSA支付密码的“加密”其实是一层轻量混淆位于 util.pydef encrypt_payment_pwd(payment_pwd): return .join([u3 x for x in payment_pwd])逻辑很直白把每一位数字前面拼上u3。例如支付密码123456会变成u31u32u33u34u35u36再随下单请求体提交。这样做的目的是让密码在明文请求体里不可直接识别。2. 登录密码标准 RSA Base64真正用到 RSA 的是账号密码登录。util.py里内置了一枚京东 RSA 公钥RSA_PUBLIC_KEY配合pycryptodome完成加密def encrypt_pwd(password, public_keyRSA_PUBLIC_KEY): rsa_key RSA.importKey(public_key) encryptor Cipher_pkcs1_v1_5.new(rsa_key) cipher b64encode(encryptor.encrypt(password.encode(utf-8))) return cipher.decode(utf-8)流程是导入公钥 → PKCS1 v1.5 填充加密 → Base64 编码。不过项目作者在更新记录里说明京东早已用滑动验证码替换了字符验证码账号密码登录已失效官方推荐扫码登录login_by_QRcode()因此这段 RSA 逻辑现在更多是历史遗留与学习价值。六、地区 ID 与库存查询下单需要“地区 ID”来定位库存。它是一个四级 ID省_市_区县_乡镇例如1_72_4211用_或-分隔均可util.py 的parse_area_id()会统一补齐到 4 位。获取方式有三种详见 area_id/README.md直接查area_id/目录下的地址文件、在商品页控制台执行 JS、或运行get_area_id.py逐级选择。库存查询走https://c0.3.cn/stock单商品或https://c0.3.cn/stocks多商品核心是返回字段StockStateStockState含义33现货 ✅40可配货 ✅0/34无货 ❌36采购中 ⏳只有当skuState 1已上架且StockState ∈ (33, 40)时程序才判定“有货可下”。七、两种下单路径普通商品 vs 抢购商品jd-assistant 最大的设计亮点是把京东商品分成了两条完全不同的下单链路这也是“抢购”的核心。路径 A普通商品 → 购物车 → 结算普通商品如小米 8、华为畅享 9 Plus可以正常加入购物车流程是“加购 → 勾选 →submit_order()结算提交”对应 main.py 里的buy_item_in_stock()轮询下单路径 B抢购商品 → 独立秒杀接口抢购商品如华为 Mate 20 RS走marathon.jd.com的秒杀接口不能加入购物车需要先request_seckill_url()拿链接、再submit_seckill_order()提交。注意部分商品是预约抢购如图中 21470 人预约需先点击预约且购物车里这类商品无法勾选脚本也清不掉务必手动清空购物车⚡ 抢购模式还支持定时抢购submit_order_by_time()/exec_seckill_by_time()靠 timer.py 精确等到毫秒级时间点再触发配合retry与interval反复重试成功概率更高。下单成功还能通过 messenger.py 用 Server酱 推送通知。八、新手上手清单装依赖pip install -r requirements.txt见 requirements.txt。扫码登录asst.login_by_QRcode()首次会保存 cookies 供下次复用。填风控参数按 js/get_parameters.js 取好eid/fp/track_id/risk_control填入 config.ini。有优惠再配支付密码账户有京券/京豆时才需在config.ini的payment_pwd填 6 位数字。先试水用有货商品跑一遍完整下单确认发票设为「电子普通发票-个人」、支付方式为「在线支付」。正式抢购调用buy_item_in_stock()普通商品或exec_seckill_by_time()抢购商品。一句话总结jd-assistant 的价值在于把京东“下单”这条链路拆成了可复用的方法——风控参数 下单参数 错误码处理 密码加密 双路径下单。读懂了上面这套接口参数与错误码映射你不仅能跑通这个工具还能举一反三理解任何“京东下单自动化”背后的通用逻辑。【免费下载链接】jd-assistant京东抢购助手包含登录查询商品库存/价格添加/清空购物车抢购商品(下单)查询订单等功能项目地址: https://gitcode.com/gh_mirrors/jd/jd-assistant创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

知识图谱音乐推荐毕设:从Neo4j建图到可解释推荐

知识图谱音乐推荐毕设:从Neo4j建图到可解释推荐

简介:本资源为基于知识图谱实现的音乐推荐系统毕业设计完整资料,面向计算机、人工智能、通信工程等相关专业的在校学生与教师,可用于毕业设计、课程设计、项目立项演示或自学进阶。项目采用Python开发,融合知识图谱构建音乐实体与…

📅 2026/10/10 10:25:21
Claude嵌入Google Workspace:AI原生办公的上下文协同实践

Claude嵌入Google Workspace:AI原生办公的上下文协同实践

1. 这不是“插件”,而是一次办公协同范式的悄然迁移最近在几个技术协作群和产品团队内部讨论中,频繁看到一句话:“Claude 能直接进 Docs 了。”起初我以为是某个第三方插件又做了新功能,直到自己花半小时搭起测试环境、把一段混乱…

📅 2026/10/10 10:20:20
雷电接口与Type-C区别:40Gbps带宽识别指南

雷电接口与Type-C区别:40Gbps带宽识别指南

1. 这不是接口命名游戏,而是设备兼容性生死线“雷电接口与TypeC你能分清吗?”——这句话最近在数码群、维修论坛和电商客服后台高频出现。我上个月帮某高校实验室调试一批新采购的高速数据采集设备,三台机器反复报“外设识别失败”&#xff0…

📅 2026/10/10 10:20:20
MORE NEWS

更多资讯

📰

Linux下AX210开热点卡在200Mbps?固件、监管域与内核协同真相

1. 真实场景还原:为什么你用 AX200/AX210 在 Linux 下开热点,永远卡在 200Mbps?我第一次在某高校实验室的嵌入式开发机上尝试用 AX210 开热点时,心里是笃定的——毕竟 Intel 官方文档白纸黑字写着“支持 AP 模式”,Lin…

📰

C#与MySQL房屋租赁管理系统课设:数据库设计与避坑指南

简介:这份资源是面向计算机相关专业在校学生的MySQL数据库课程设计完整交付包,以C# WinForm实现房屋租赁管理系统,涵盖房源信息、租客与管理员管理、租金账单、财务统计及系统设置等核心业务模块,适合作为课设、大作业或初期项目立…

📰

rea缩写全解析:read-eval-apply、响应式事件架构与资源效率分析实战

1. 从一个字母说起:为什么"rea"值得单独拿出来聊第一次看到"rea"这个标题,我脑子里蹦出来的第一个念头是——这大概率是个缩写,而且是个被严重低估的缩写。在技术圈里混久了你会发现,越是短的东西&#xff0c…

📰

风光储互补调度:Matlab下电池与废弃矿井抽蓄的多元储能优化建模

做新能源调度,绕不开一个尴尬的现象:独立看风电、光伏的预测曲线都还行,但把它们放进同一个系统里,要么白天光伏功率顶着天、晚上风机疯转,负荷侧却跟不上;要么连续几天阴雨无风,电池耗尽&#…

📰

使用 Apache Beam 进行 AI/ML 数据探索与数据预处理流水线开发

大数据批处理流处理数据工程 【免费下载链接】beam Apache Beam is a unified programming model for Batch and Streaming data processing. 项目地址: https://gitcode.com/gh_mirrors/beam4/beam 点击查看 免费下载 Apache Beam 为 AI/ML 项目提供了一套统一的数…

📰

SpringBoot+微信小程序:网络安全科普系统论文转工程实战解析

简介:面向微信小程序网络安全科普系统的开发需求,这份docx设计文档适用于毕业设计、课程作业或实际科普平台建设的学习者与开发者。系统采用Java语言、MySQL数据库、微信小程序及SpringBoot框架,构建了包含科普知识查阅、案例分析、在线评价交…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬