[懒人脚本] Amex在FHR/Uber Eats/Resy等辨别相同尾号的卡
Amex辨卡脚本更新至v5.0.2修复Bug,用户深陷同尾号FHR误扣陷阱。
1. 关键信息
- 脚本进展:作者 Apocalypsor 持续迭代脚本,最新版 (v5.0.2) 修复了 Edge 浏览器 Uber Eats 页面崩溃 Bug,提升了显示稳定性。
- 同尾号Bug确认:多名用户证实 Amex Travel (FHR) 系统逻辑存在严重缺陷,支付时仅通过 last 5 digits 匹配,即便前端勾选不同卡片,最终扣款仍会指向同一张卡。
- 换号机制:Amex 卡号分配具有规律(首发多为 100x,replace 后多为 200x),导致多持用户即便换号也极易发生“二次撞号”。
2. 羊毛/优惠信息
无
3. 最新动态
- 用户反馈后5位相同已无法满足辨识需求(要求后6位),但因数据源限制脚本暂无法实现。
- 确认删除账户中的卡片是避开 FHR 误扣的有效手动手段,且删除操作不会影响已有预订。
- 脚本在处理 XMLHttpRequest 报错方面进行了针对性修复。
4. 争议或不同意见
- 脚本 vs 换卡:虽然脚本能辅助辨识,但在 FHR 自动匹配机制面前效果有限,部分用户认为只有通过客服 replace 更改卡号才是终极解决方案。
- 换号风险:有用户吐槽运气太差,换号后新卡号竟与名下另一张卡再次撞号,认为 Amex 的编号算法极度“脑残”。
5. 行动建议
- 针对 FHR 支付:若存在后5位相同的卡,建议在支付前将干扰卡从 Amex 账户中暂时删除,待支付成功后再加回。
- 更新脚本:访问 GitHub 下载 v5.0.2 版本,若安装后只显示4位,请尝试刷新页面。
- 终极方案:若撞号严重影响使用,联系客服要求 replace 换号,并做好可能需要多次换号才能彻底错开的心理准备。
本地址,一键安装
注意要先安装油猴
tampermonkey.net
Home | Tampermonkey
Home
源码
github.com
GitHub - Apocalypsor/Amex-Payment-Info-Enhancer
通过在 GitHub 上创建帐户来为 Apocalypsor/Amex-Payment-Info-Enhancer 开发做出贡献。
脚本功能:
Amex Travel显示信用卡后5位
Uber Wallet显示信用卡有效期
Resy显示信用卡有效期
Resy显示是否收押金(不一定准确,但是显示不收押金的一般都不收)
效果图
Amex Travel
Snipaste_2025-09-18_23-31-121694×1148 100 KB
Uber
Snipaste_2025-09-18_23-36-47922×1428 92.7 KB
Resy
image1380×680 35.8 KB
image1318×1000 135 KB
image1380×618 239 KB
9/21/2025 更新
【引用自 未知】:
[懒人脚本] Amex在FHR/Uber Eats/Resy等辨别相同尾号的卡 玩卡
更新一下,添加了resy的显示
[Snipaste_2025-09-21_14-41-26]
[Snipaste_2025-09-21_14-45-56]
同时添加了一下在搜索界面是否需要deposit,不过这个不是很准确。。。只能作为参考
[Snipaste_2025-09-21_14-36-29]
显示不出来刷新一下,有空再让Claude帮我改
10/31/2025 更新
【引用自 未知】:
[懒人脚本] Amex在FHR/Uber Eats/Resy等辨别相同尾号的卡 玩卡
在更新一下,这个问题修好了,现在应该更稳定了
Resy不建议同一个号存相同尾号的卡,最好replace一下
03/25/2026 更新
【引用自 未知】:
[懒人脚本] Amex在FHR/Uber Eats/Resy等辨别相同尾号的卡 玩卡
优化了一下,现在应该更加稳定了
想法来源:
【引用自 未知】:
Uber里,尾数相同的卡号辨别方法 信用卡
那么开通uber one的时候应该怎么辨别呢
[image]
按F12打开dev tool,切换到network tab, 搜索payment-profiles,在右边切换到preview,就可以看到
[image]
这里的顺序就是UI上显示的顺序了
【引用自 未知】:
AmexTravel(FHR)里,尾数相同的卡号辨别方法 信用卡
先说一个冷知识:cvv和expiration填哪张卡的都能过checkout ,所以不能通过cvv来判断卡号
有两个方法,
## 方法一,针对小白的:
(存疑?)这卡片顺序,和你amex首页 https://global.americanexpress.com/overview 的卡片顺序是一致的
最基础方法:输入你要的卡号,别从列表里选 (已无此选项)
Amex懒人油猴脚…
刚好遇到,还想说能不能写个脚本。楼主真是钛厉害了!
Amex程序员可能从没想到过潭友的这种edge case。
(不过最近发现各种地方的尾号也慢慢地开始显示5位/6位了,好评)
我选择直接replace新卡
相同尾号的,直接replace一下就好了。
相同尾号以后也容易各种问题,最好还是换成不一样的
卡多了,卡号确实容易搞错
大佬才会有的烦恼
本来有两张白金后5位相同
今天发现amex界面里直接显示后6位了
不过还是感谢lz
竟然显示后六位,从来没见过
钛厉害啦!
钛厉害啦!
钛厉害啦!
【引用自 爱因斯坦有奶便是娘】:
我选择直接replace新卡
我在FHR没看到这个选项
不是说replace太多次会出问题,忘了什么问题了,尾号位数有限,遍历一遍之后给开新卡?
我直接跟客服说因为尾号一样要换卡,他们就说make sense
更新一下,添加了resy的显示
Snipaste_2025-09-21_14-41-261998×986 74 KB
Snipaste_2025-09-21_14-45-561384×1050 127 KB
同时添加了一下在搜索界面是否需要deposit,不过这个不是很准确。。。只能作为参考
Snipaste_2025-09-21_14-36-293810×1710 998 KB
显示不出来刷新一下,有空再让Claude帮我改
resy显示expiration非常好用,大大的赞
在Amex Travel里好像不work,直接paste这段代码到console里。
const selectElement = document.querySelector(
'select[data-testid="card-payment-select-input"]'
);
if (selectElement) {
const options = selectElement.querySelectorAll("option");
options.forEach((option) => {
// Use regex to find text in parentheses
const match = option.textContent.match(/\(.*\)/);
const parenthesesText = match ? ` ${match[0]}` : "";
// Combine the value and the parenthetical text
option.textContent = option.value + parenthesesText;
});
}
【引用自 Apocalypsor】:
显示不出来刷新一下
在更新一下,这个问题修好了,现在应该更稳定了
Resy不建议同一个号存相同尾号的卡,最好replace一下
来手动交个pull request,在Saks结账页面显示card expiration date
drive.google.com
amex-payment-info-enhancer.user.js
Google Drive file.
没想到还有人提PR 我明天给加进去吧,然后整理一下放到github去
赞!实测以后钱包里放一张Amex卡就够了,不管想用哪张卡订Amex Travel都填一张卡的cvv都能过
装了这个脚本好像没有变化,请问是有什么需要操作才能启用吗?
具体哪个界面没变化呢?我看看是不是有bug
fhr结账的界面
是没有显示卡的后五位吗,能给我私聊一下截图吗?
大佬钛强了!求问有没有办法显示后6位?后5位都相同的太倒霉了
没办法 replace吧
我后五位相同 fhr五次都买在一张卡上了 气的换卡了
除了换卡还有没有其他方法,我的卡后五位都一样,在Amex Travel里怎么选都到一张卡上。
要有我也不至于
【引用自 ALousaBao】:
气的换卡了
这个不错,不过感觉最好还是换卡,一劳永逸
最后我只好把一张卡从账户里删掉,等几个小时后那张卡从Amex travel 也消失了,这时才能用另一张后5位一样的卡付款
【引用自 hjfhdjellskx】:
我的卡后五位都一样,在Amex Travel里怎么选都到一张卡上。
我去,也中招了。这个是真的坑,按顺序大法,明明选了两张不同的卡,有录屏为证,还是收费到同一张。
【引用自 hjfhdjellskx】:
最后我只好把一张卡从账户里删掉
删掉会影响之前用这张卡的预订吗?
如果把这张卡加到另一个账户下面,预订会跟着过去吗?
怎么选都没用。那个网页就match last 5 digits。所以永远都会到一张卡上。
不会影响预定。
我把一张卡删了之后,等几个小时Amex travel 才更新,预定完之后,又把删掉的卡加回到账户里了。
我觉得有两个账号太麻烦。
【引用自 hjfhdjellskx】:
我把一张卡删了之后,等几个小时Amex travel 才更新
谢谢分享。我刚才试了一下,是秒更新。不知是运气,还是改进了。
不过还得加回去,也是麻烦。
还是把相同卡号的一张改了吧,不然以后总有这样那样的问题和不便。我今天新申请了一张卡A,后四位和一张老卡B相同,打电话去改B,结果B被改到了后5位和另外一张老卡C 相同。哎,过两天还得去改一次。这每改一次Amex 就要出一次UPS 的钱, Amex这个脑残的numbering 方法给客户和自己找了多少麻烦啊
【引用自 smlee】:
打电话去改B,结果B被改到了后5位和另外一张老卡C 相同。
所以改号是随机的?
一张卡的第一个号好像大部分是100x (所以卡多了碰到一样的概率很大),第一次改大部分变成200x
请问大佬为什么安装后还是只有4位?
刷新一下就好了
【引用自 欧皇附体】:
请问大佬为什么安装后还是只有4位?
【引用自 peekaboo39】:
刷新一下就好了
优化了一下,现在应该更加稳定了
我在Edge浏览器上访问ubereats.com会挂 /uploads/short-url/60GqqUZWx9F7eG4lJvfHO0tOiwt.png?dl=1 TypeError: XMLHttpRequest is not a constructor at client-85721-a30cfc42bc89547b.js:1:35100 at k.startPolling (client-85721-a30cfc42bc89547b.js:1:35950) at k.retryPolling (client-85721-a30cfc42bc89547b.js:1:36356) at client-85721-a30cfc42bc89547b.js:1:34238 at k.authenticateUser (client-85721-a30cfc42bc89547b.js:1:34361) at new k (client-85721-a30cfc42bc89547b.js:1:34030) at client-85721-a30cfc42bc89547b.js:1:39237 at Array.forEach () at D.initializeClients (client-85721-a30cfc42bc89547b.js:1:39216) at D.on (client-85721-a30cfc42bc89547b.js:1:38868) Connecting to ‘https://sourcemaps.uberinternal.com/raw/web-payments-experience/client-main-4311c65f017078de.js.map’ violates the following Content Security Policy directive: “connect-src ‘self’ http://auth.uber.com http://cdn-net.com http://api.cdn-net.com http://cdn-path.com http://api.cdn-path.com http://www.facebook.com http://api.braintreegateway.com http://client-analytics.braintreegateway.com *.braintree-api.com *.paypal.com http://google.com/pay http://payments.uber.com http://tb-static.uber.com https://api-js.mixpanel.com”. The request has been blocked.
https://github.com/Apocalypsor/Amex-Payment-Info-Enhancer/releases/download/v5.0.2/amex-payment-info-enhancer.user.js,修好了