收据 API 可用性?



我看到沃尔玛Android应用程序能够捕获收据条形码(似乎是传统的一维条码而不是二维二维码),然后检索该收据的电子版本。然后,它会将该收据添加到应用程序中的"购买历史记录"中。此收据 API 是否可用?我想从沃尔玛收据中捕获数据,但收据本身的质量差会导致许多 OCR 问题。

我查看了沃尔玛实验室 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 Bot Defense,但是阻止登录尝试只是为了查看我自己的收据?好像用火箭筒取出蚁丘。

最新更新