我看到沃尔玛的Android应用程序能够捕获收据条形码(似乎是传统的一维条形码,而不是2D QR代码),然后检索收据的电子版。然后它将收据添加到应用程序中的“购买历史记录”中。这个收据API可用吗?我想从沃尔玛的收据中获取数据,但是收据本身的质量差导致了许多OCR问题。
我看过WalmartLabs Walmart.io API,但没有看到接收API。我试着问这个问题,但他们的“问一个问题”的形式被打破了(提交按钮什么都不做)。
发布于 2022-02-19 22:02:38
在调查一个类似的问题时发现了这个问题,并偶然发现了一个答案。我正在努力建立一个工具,让我可以自动分类一些购买。不幸的是,沃尔玛非常重视他们的安全,并且已经采取了一些措施来防止在他们的网站上运行自动化工具(即使是使用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,我可以很容易地硬编码,因为我们只在一个沃尔玛!
顺便说一句,如果沃尔玛的工程团队中的任何人看到这一点,请考虑允许开发社区访问他们自己的数据。我完全可以实现PerimeterX机器人防御,比如PS5发行版,但是阻止登录尝试仅仅是为了查看我自己的收据?就像用火箭筒挖出一个蚁窝一样。
https://stackoverflow.com/questions/57482686
复制相似问题