本仓库旨在实现 Rewe 应用中所有公开可访问(无需认证)的 API 端点,用于查询当前折扣、产品、食谱和召回信息。
当前支持的 APK 版本:5.15.2(截至 12.07.26)
[!CAUTION] 与 Rewe API 通信所需的证书不包含在本仓库中。你需要从 APK 中提取它们。文档及适用于 Windows 的提取脚本可在 docs 目录中找到。
另请参阅 rewerse-ui。
从 Rewe APK 中提取证书;参见 docs 中的说明
使用库:
或安装 CLI:
go install github.com/ByteSizedMarius/rewerse-engineering/cmd@latestgo build -o rewerse ./cmd验证:rewerse --help
示例: 获取某个市场的当前折扣:
$ rewerse discounts -market 840174
Top-Angebote in deinem Markt
Haribo Goldbären oder Color-Rado, 0.77€
Coca-Cola, Fanta oder Sprite, 0.99€
Obst & Gemüse
Heidelbeeren, 1.49€
Rispentomaten, 0.99€
...
在 2024 年 3 月,Rewe 开始使用 Cloudflare MTLS 来保护其 API 端点,这破坏了原有的 解决方案,例如允许获取特定 Rewe 市场的折扣。GitHub 用户 @torbenpfohl 痴迷 坚持不懈地解决了这个问题,找到了证书及其密码。本仓库基于他的 工作,旨在记录所需的流程并实现部分端点。
本项目与 REWE-ZENTRALFINANZ eG 无关,也未获其认可或赞助。"REWE" 是其各自所有者的注册商标。
这是一个基于 REWE 移动应用公开可观察的流量制作的非官方客户端。仅供教育及研究目的使用。底层 API 未经文档化,可能随时变更或失效,恕不另行通知。
使用此软件风险自负。用户有责任确保其使用符合适用的服务条款。
rewerse 名称发布在 PyPI 上 – 参见 python/readme 了解详情和源代码。[!NOTE] 请注意,由于这是一个未签名的 Go 二进制文件,它会进行一些证书加密/解密并向 Rewe API 发送网络请求,因此很可能被你的杀毒软件标记。它没有依赖项,因此你可以轻松自行编译——从安全角度来看,这始终是推荐的做法。
Usage: ./rewerse.exe [flags] <command> [subcommand] [flags]
Flags:
-cert <path> 证书文件(默认:certificate.pem)
-key <path> 密钥文件(默认:private.key)
-json 以 JSON 格式输出
Commands:
markets 搜索并获取市场详情
products 搜索、浏览并获取产品信息
recipes 搜索并浏览食谱
discounts 获取市场折扣
categories 获取产品类别
recalls 获取产品召回信息
services 按邮政编码获取服务组合
Examples:
./rewerse.exe markets search -query Köln
./rewerse.exe products search -market 831002 -query Milch
./rewerse.exe products category -market 831002 -slug obst-gemuese
./rewerse.exe recipes search -term Pasta
./rewerse.exe discounts -market 840174
./rewerse.exe categories -market 831002
./rewerse.exe services -zip 50667
Run './rewerse.exe <command>' for subcommand help.
测试位于 pkg/*_test.go 中。有两种类型:
go test ./pkg/ -run Unmarshalgo test ./pkg/如果你贡献了结构体变更,请考虑添加或更新反序列化测试。如果可能,请使用真实的 API 响应捕获文件,否则,使用反映实际 API 行为的合成 JSON 负载即可。
欢迎通过 GitHub Issues 提出建议、问题或 Bug。欢迎 Pull Request。邮箱:rewe at byte dot rest。