卖"一次 API 调用"首先是一道账务题,其次才是代码题:你需要先有价格,再收款,再拿到支付凭证,再在服务端验签,然后才交付结果,最后出具回执——这个顺序不能乱,而且要幂等,因为调用方是机器,机器会重试。支付宝、下单、回调、状态、退款各家语义都不一样,中间任何一处接缝漏了就是资损。
点击空白处退出提示
卖"一次 API 调用"首先是一道账务题,其次才是代码题:你需要先有价格,再收款,再拿到支付凭证,再在服务端验签,然后才交付结果,最后出具回执——这个顺序不能乱,而且要幂等,因为调用方是机器,机器会重试。支付宝、下单、回调、状态、退款各家语义都不一样,中间任何一处接缝漏了就是资损。
把 HTTP 402 Payment Required 当成协议本身用:未获得授权的请求直接返回 402 并带上确切金额,一次 payment 换一张凭证,服务端先验凭证再交付,交付后出具履约回执。全部 34 个 SKU 逐个验证过"未付款一定返回带正确金额的 402",而不是只在文档里写"应该返回 402"。对重试用同一业务单号做幂等,重复回调不会重复发货。
Python 服务端(systemd 常驻生产环境),自带命令行工具:资源注册表把一批本地脚本一键变成可计费的 A2M 端点,支付侧独立出网关与签名模块,回调验签与业务解耦。核心是一张自己的状态机:created → pending → paid → fulfilled,每个 SKU 都要提供 delivery 与 receipt 两步,缺任何一步都不能上架。这套网关撑起了 PAYATHON 2026(支付宝 AI 支付黑客松)的全部 50 件提交——覆盖 Vibe Pay、Skill Pay、Machine Pay、Token Pay、Agent Pay 五个赛道,全部通过,每件后面要么是这套网关,要么是一个跑在公网上的真实 Web 应用。



评论