我看到沃尔玛 Android 应用程序能够捕获收据条形码(似乎是传统的一维条形码,而不是二维二维码),然后检索该收据的电子版本。然后,它会将该收据添加到应用程序中的“购买历史记录”中。这个收据API可用吗?我想从沃尔玛收据中获取数据,但收据本身的质量较差会导致许多 OCR 问题。
我查看了 WalmartLabs Walmart.io API,但没有看到收据 API。我试图在那里问这个问题,但他们的“提问”表单已损坏(“提交”按钮不执行任何操作)。
最佳答案
在调查类似问题时发现了这一点,并偶然发现了答案。我正在尝试构建一个工具,可以让我对某些购买进行自动分类。不幸的是,沃尔玛非常重视其安全性,并实现了多项措施来防止在其网站上运行自动化工具(即使使用诸如 puppeteer-stealth
之类的东西)
但是,今天我发现如果你去https://walmart.com/receipt-lookup ,然后查看网络选项卡 — 您实际上可以看到请求发送到 https://walmart.com/chcwebapp/api/receipts它只需要几个参数:
{
"storeId": number;
"purchaseDate": string - MM-DD-YYYY;
"cardType": string (ex. "visa")
"total": number (ex. 100.89)
"lastFourDigits": string (ex. "1234")
}
为了完整起见,我们举一个 cURL 请求示例:
curl 'https://www.walmart.com/chcwebapp/api/receipts' \
-H 'sec-ch-ua: "Chromium";v="98", " Not A;Brand";v="99", "Google Chrome";v="98"' \
-H 'accept: application/json' \
-H 'Referer: https://www.walmart.com/receipt-lookup' \
-H 'content-type: application/json' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36' \
-H 'sec-ch-ua-platform: "Mac OS X"' \
--data-raw '{"storeId":"123","purchaseDate":"02-19-2022","cardType":"visa","total":"100.00","lastFourDigits":"1234"}' \
--compressed
它似乎不需要任何类型的身份验证,因为快速浏览一下请求就不会发现 cookie!
我很高兴发现了这个。我不完全确定它是否能满足您的需求,但由于我的工具已经可以访问总数、最后 4 个日期和日期,我所需要的只是 storeId,我可以轻松地对其进行硬编码,因为我们只在一家沃尔玛购物!
顺便说一句,如果沃尔玛工程团队的任何人看到这一点,请考虑允许开发社区访问他们自己的数据。我完全可以为 PS5 版本等实现 PerimeterX 机器人防御,但阻止登录尝试只是为了查看我自己的收据?这就像用火箭筒消灭蚁丘一样。
关于walmart-api - 收据 API 是否可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57482686/