网易首页 > 网易号 > 正文 申请入驻

签名都对了,x402付款为何还是返回402?

0
分享至

代理找到了付费端点,解开了402响应,也把付款签了名。结果回来还是402。在签名这一步失败的x402付款,几乎总是两种情况之一:授权在结算前就过期了,或者它的nonce已经被花掉了。这两种都很容易在无意中造出来,而一旦你能看见它们,修起来也很容易。

需要先厘清一件事:EVM链上的x402付款不是一笔交易,而是一条签过名的EIP-3009 transferWithAuthorization消息。它包含六个字段:

  • from:你的代理钱包
  • to:付款要求里的payTo
  • value:付款要求里的确切金额,以十进制字符串表示
  • validAfter:该授权可被使用的最早时间戳
  • validBefore:最晚时间戳
  • nonce:一次性的bytes32标识符

服务器(或其facilitator)负责广播并支付gas。你的签名就是全部工作,而其中两个字段造成了几乎所有的首次尝试失败。

失败一:窗口在结算前关闭

validBefore是在结算时上链检查的,不是你签名时检查的。任何拖慢结算的事情都会吃掉你的窗口:代理在读取要求和签名之间停顿了,facilitator忙,区块慢。

经典版本是这样的:代理解开付款要求,花几秒钟“思考”(或者走一轮LLM往返),然后签名,validBefore直接抄了付款要求自带的截止时间。等交易落链,截止时间已经过去,结算回滚。

两条规则可以防住它。第一,用签名时你自己的时钟计算validBefore,以付款要求里的maxTimeoutSeconds为上限,再减去一段缓冲,六十秒是个合理的最低值。第二,最后才签名:读完要求,把代理需要做的其他事全部做完,只在准备发出付费请求时才签。带倒计时的签名是最后一步,永远不是中间产物。

镜像的失败同样存在:时钟走快了会把validAfter设到未来,授权尚未生效。如果代理运行在时间可疑的环境里,用validAfter = 0,然后去修时钟。

失败二:nonce已经被花掉

EIP-3009的nonce是一次性的。USDC合约在authorizationState[from][nonce]里追踪每一个nonce,一旦被消费,该授权就再也不能结算。两种方式会意外烧掉nonce。

其一是顺序编号。如果钱包软件把授权编成1、2、3,两个共用同一钱包的代理迟早会挑中同一个号。EIP-3009期望的是随机的32字节nonce,这样碰撞就不成问题。

其二是用同一份签名载荷重试。代理发出付费请求,连接超时,它用完全相同的载荷重试。但第一次尝试可能已经结算,或者正在结算的路上。重试于是因授权已被使用而失败,代理据此认定付款“没成功”,而它可能实际上已经付过了。

安全的做法是查询,不是重发。超时后先读订单或资源状态(多数x402 API、以及每一个行为良好的API,都提供了询问的途径)。如果必须再付一次,用全新的nonce签一份全新的载荷。绝不用同一个nonce重签,也绝不跨订单复用载荷。

发送前的60秒检查清单

在请求离开代理之前,解开你即将发送的载荷,对照付款要求逐项核对:

  1. to与payTo逐字符相等,包括校验和
  2. value与amount相等,十进制字符串,不是JSON数字,不是浮点数
  3. validBefore至少在六十秒之后,且在maxTimeoutSeconds之内
  4. 该nonce从未被这个钱包使用过(随机生成,且你此前没有发过)
  5. EIP-712域与付款要求中的链和资产匹配(name、version、链id、验证合约)

五项检查。跳过任何一项都会在链上大声失败,而它们没有一项在链下产生成本。

如果做完这些仍然失败,重复的402通常会在响应体里带上原因。重签之前先读它:带原因的“invalid”是服务器在告诉你,六个字段里它不同意哪一个。用新nonce把同一个错误再签一遍,只是又烧掉一次尝试。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
太恐怖了!知名打拐志愿者上官正义曝出预警截图,有消息称东南亚外网论坛出现悬赏帖要“拿下他”,评论区瞬间沸腾

太恐怖了!知名打拐志愿者上官正义曝出预警截图,有消息称东南亚外网论坛出现悬赏帖要“拿下他”,评论区瞬间沸腾

火山詩话
2026-10-28 20:39:41
风暴已经出现,中国不得不面对!40年来从未出现的四种情况已到来

风暴已经出现,中国不得不面对!40年来从未出现的四种情况已到来

影孖看世界
2026-10-17 21:54:52
以色列大选结果:内塔尼亚胡失去多数,反对派却无力取代他

以色列大选结果:内塔尼亚胡失去多数,反对派却无力取代他

以色列计划Pro
2026-10-28 13:02:54
计算机领域天塌了!两大巨头同日宣布:世纪猜想ETH被证伪

计算机领域天塌了!两大巨头同日宣布:世纪猜想ETH被证伪

新智元
2026-10-28 12:29:32
某界汽车,月销量仅剩29辆!

某界汽车,月销量仅剩29辆!

电动内参
2026-10-29 01:32:33
皇马得意宣布:中国赞助商并未终止合作!网友怒冲品牌社媒:吃里扒外

皇马得意宣布:中国赞助商并未终止合作!网友怒冲品牌社媒:吃里扒外

念洲
2026-10-28 08:42:17
一定要相信,美日这次不是演习!

一定要相信,美日这次不是演习!

叶老四
2026-10-27 13:45:58
比销量下滑还可怕的是:连生活在县城的居民,都开始抛弃了油车?

比销量下滑还可怕的是:连生活在县城的居民,都开始抛弃了油车?

兴趣知识
2026-10-28 05:05:50
WTT冠军赛大冷门!张本智和0-3惨败一轮游,不敌32岁法国老将

WTT冠军赛大冷门!张本智和0-3惨败一轮游,不敌32岁法国老将

全言作品
2026-10-29 02:58:55
旭日旗事件越闹越大!陈宇昕三代都是亲日分子,母亲身份已澄清

旭日旗事件越闹越大!陈宇昕三代都是亲日分子,母亲身份已澄清

平老师666
2026-10-27 20:56:19
太荒唐了!已婚女子和男网友约会,发生关系后累的睡着,被惊醒后拒绝给男网友钱,女子追悔莫及

太荒唐了!已婚女子和男网友约会,发生关系后累的睡着,被惊醒后拒绝给男网友钱,女子追悔莫及

丫头舫
2026-10-26 15:48:41
韩国外交部长赵显公开表示:如果局势进一步恶化,不排除韩国与乌克兰断绝外交关系的可能

韩国外交部长赵显公开表示:如果局势进一步恶化,不排除韩国与乌克兰断绝外交关系的可能

吉刻新闻
2026-10-28 23:16:45
特朗普宣布,委内瑞拉将成为美国第51个州

特朗普宣布,委内瑞拉将成为美国第51个州

罗富强说
2026-10-28 12:50:45
外国网友:中国是第一个迫使姆巴佩公开道歉的!卡塔尔+法国都失败了

外国网友:中国是第一个迫使姆巴佩公开道歉的!卡塔尔+法国都失败了

念洲
2026-10-28 13:28:45
姆巴佩事件情况升级!央视连下重锤,法国球员将集体迎来噩耗!

姆巴佩事件情况升级!央视连下重锤,法国球员将集体迎来噩耗!

巧妹电影
2026-10-28 19:46:58
敢吹哨的,都先死给世界看

敢吹哨的,都先死给世界看

大嘴説
2026-10-27 10:31:27
以色列大选投票结束,内塔尼亚胡连任的可能性,已经远远低于下台

以色列大选投票结束,内塔尼亚胡连任的可能性,已经远远低于下台

麓谷隐士
2026-10-29 00:20:04
队报:皇马拒绝了西甲对姆巴佩事件的帮助;皇马高层想看特瓦斯笑话

队报:皇马拒绝了西甲对姆巴佩事件的帮助;皇马高层想看特瓦斯笑话

懂球帝
2026-10-28 08:58:05
中国近海几乎绝迹!济南海关查获17只手镯,竟是由极危'国宝'制成

中国近海几乎绝迹!济南海关查获17只手镯,竟是由极危'国宝'制成

秋枫凋零
2026-10-28 01:46:21
油价持续走高的深层恶果!不止费钱,正在拖垮全民消费

油价持续走高的深层恶果!不止费钱,正在拖垮全民消费

你在偷看谁
2026-10-28 21:00:28
2026-10-29 05:16:49
像素与芯片
像素与芯片
有态度网友ytd
199文章数 82关注度
往期回顾 全部

科技要闻

宇树科技前三季净利暴增270%

头条要闻

仅退款后冰柜仍插着电在使用 买家回应

头条要闻

仅退款后冰柜仍插着电在使用 买家回应

体育要闻

0胜4负与篮网国王一桌 热火字母哥赌错了?

娱乐要闻

巾帼不让须眉!章子怡拿下重磅荣誉

财经要闻

iPhone Duo七年等来一场吐槽大会

汽车要闻

首销期权益价23.98万起 2026款理想i6上市

态度原创

旅游
家居
艺术
健康
房产

旅游要闻

忻州古城“古城焕新·产城共荣”入选2026中国旅游产业影响力案例

家居要闻

2026建博会(广州) 公装联探展交流活动

艺术要闻

23张人性与爱的照片,第1张就让人破防了……

查不出猝死风险?可能是项目没做对

房产要闻

重新定义城芯院墅生活!33席印德华府,看见湾区墅居的时代答案

无障碍浏览 进入关怀版