加密订阅扣款一直是假的——我们做了第一个真的
市面上的『加密订阅』大多是换了皮的付款提醒:到期让用户手动再付一次。拆解链上自动扣款为什么难,以及『条款焊死进地址的用户金库』如何第一次把它真正做出来。
先给答案:今天市面上号称"加密订阅"的产品,几乎全是换了皮的付款提醒——到期时给顾客发封邮件或钱包通知,让他手动再付一次。那不叫订阅扣款,叫定期催款。真正的订阅计费意味着扣款自动、按时发生,顾客什么都不用做——而要在区块链上做到这一点、又不托管任何人的资金,是个真正的难题。这篇文章讲清楚它为什么难、假订阅长什么样,以及最终让循环加密扣款成真的架构:条款焊死进地址本身的顾客金库(vault)。(不想读只想看?沙盒零真钱跑完整个生命周期。)
为什么链上自动扣款在原理上就难
信用卡订阅能成立,因为卡是拉取(pull)系统:商户(经由 Stripe)持有授权,按时把钱拉走。加密货币是推送(push)系统:私钥持有人不签名,一分钱都不会动。任何主流公链上,都不存在"授权每月扣我款"这个原语。
所以做加密订阅的人都撞上同一个三难:
- 1让顾客每期手动付 → 那不是计费,是提醒(每个月都在流失边缘走一遭)
- 2托管 ——把顾客预存款收进平台中心化账户,按期划扣 → 自动化是真的,但你成了托管方:顾客必须信你,监管把它看作客户资金,"加密"退化成一种充值方式
- 3无限额度授权 ——让顾客给合约(更糟的是给后端钱包)开放无上限的花费权限 → 自动化有了,安全模型却是行业里最丑陋的那几次被盗的同款
你见过的每个"加密订阅"产品都在这三条里选了一条。大多数选第 1 条,然后把那封邮件叫作 webhook。
假订阅的三种形态(识别指南)
- 提醒模式:到期发 webhook/邮件,顾客要点开重新付一笔一次性订单。商户的续费管理变成一份兼职;顾客睡过头,订阅就没了。
- 托管余额模式:顾客往平台持有的余额里充值,平台每月划扣。能用——和 Web2 钱包一模一样地能用——也原封不动继承了加密货币本要消灭的托管风险:平台可以冻结它、搞丢它、或者被要求上交它。
- 无限授权模式:开放额度的合约每月来拉。比托管强,但那个额度是常驻攻击面,顾客无法回答"最坏情况我会损失多少"——答案是:授权了多少就是多少。
真正的解法:条款即地址的金库
Finality 的订阅建立在一个想法上:把钱放在只有顾客能控制的地方,并把计费条款焊进这个账户的身份里。
完整生命周期:
1. 订阅 = 创建一个专属金库。顾客签一笔交易,在链上建立自己的专属 vault 并存入首期(想多存几期也可以)。关键在:vault 的地址由订阅条款本身派生——每期金额、周期长度、收款人及分成、促销价、总期数上限。改任何一项条款,得到的是另一个地址。条款不存在于某个平台可以偷偷改的数据库里;条款就是这个账户的身份。
2. 扣款自动发生——但只能做一件事。keeper 进程在到期时触发扣款并支付 gas。它有且只有一个权力:按焊死的条款执行扣款。金额、周期、去向,一个都改不了——链上程序会从条款重新计算一切并拒绝任何偏差。keeper 消失了?任何人都可以无许可地触发扣款。keeper 变坏了?它除了执行约定的扣款,什么也做不了。
3. 顾客全程握有完全控制权。vault 里的余额属于顾客:随时可取回,随时可取消。关闭订阅是一笔交易——停止扣款、退回全部剩余储值、连账户的租金押金也退回(在 Solana 上,连开户时网络要求的约 0.004 SOL 都会回来)。没有退出费,因为那笔押金从来就不是我们的钱。
4. 商户拿到 Stripe 级的使用体验。subscription.active、subscription.charged、subscription.canceled 三个 webhook;总览 API 给出 MRR、活跃数、逐订阅续费健康度(金库余额、还够扣几期);客户专属订阅链接;优惠券和试用价。你的集成代码读起来就是订阅计费——因为它就是。
5. 升降级不需要信任我们的算术。周期中途换套餐要算按比例抵扣(proration)——这正是计费系统悄悄做手脚的地方。在这里,后端只是提议一个抵扣额,链上程序从头重算并在不一致时直接拒绝。不诚实的平台(或有 bug 的平台)想在换套餐时多收钱?链会替顾客把账算一遍。
"顾客金库没钱了怎么办?"
那就按双方都希望的方式发生:先进入宽限期(商户可配,默认 7 天),期内充值自动续上;过了宽限期,订阅在链上作废——扣款指令本身会拒绝执行。没有僵尸状态,没有"我们会连续一个月尝试扣你的卡"。商户提前收到 insufficient_balance 事件,有足够时间做挽留;顾客不会为已经离开的服务多付一分钱。(宽限、充值、恢复——三条路都能在沙盒里先排练,一个 webhook 都不用先接。)
诚实对比:Stripe Billing 和托管型"订阅"
Stripe Billing 是优秀的软件——如果你的顾客刷卡,就用它。但它给不了你:分钟级结算(卡的钱要走几天)、免于拒付(订阅业务吃掉的争议单比例格外高)、以及不经托管的资金流。算上计费工具的抽成,费率轻松越过 3%。
托管型加密"订阅"能自动划扣——从它们持有的余额里。你在顾客对第三方存钱的疑虑之上,又叠了一层账户冻结风险。而提醒模式的产品根本不是计费系统,是催缴 CRM。
金库模式是我们所知唯一同时做到三件事的架构:自动按期扣款、零托管、事后无人能改的条款。所以我们说这是第一个真正的加密订阅计费——不是第一个用这个词的,是第一个让这个词名副其实的。
接入长什么样
# 创建套餐
curl -X POST https://finality.money/v1/subscriptions/plans \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Pro Monthly",
"amount": "9.99",
"cycle": "monthly",
"pricing_mode": "usd",
"chain": "solana",
"token": "USDC"
}'
# → 返回可直接分享的套餐收银台链接处理两个 webhook(subscription.active 开通服务、subscription.charged 续费成功)就能上线。沙盒套餐带"模拟支付成功"按钮,不动真钱就能把全生命周期演练一遍。细节见订阅文档,每个接口都能在 API 测试台里实测。
FAQ
加密订阅到底是什么?
指商户按周期自动从顾客的加密资产里收费——而不是每期发一次付款请求。在金库模型下,它是一个顾客自控的链上账户,计费条款在创建时就固定。
加密订阅是怎么运作的?
顾客给只有自己控制的金库充值;计费条款住在金库地址里;keeper 按时触发扣款,链拒绝任何偏离承诺条款的操作。完整机制就是上面这篇正文。
加密货币支付可以循环扣款吗?
可以——但只能靠架构实现,因为没有任何公链有"以后扣我款"的原语。循环扣款要么靠托管、要么靠开放授权、要么靠这里说的金库模型;只有最后一种既自动化、又不持有顾客资金。
商户怎么接受循环加密付款?
建一个套餐(一次 API 调用或控制台表单),分享套餐的收银链接,处理两个 webhook——subscription.active 和 subscription.charged。沙盒可以先排练再上线。
顾客怎么开通自动加密付款?
打开商户的订阅链接,签一次名——创建金库并存入首期——完成。没有钱包授权额度,没有托管方,随时可提取可取消。
加密订阅会自动续费吗?
金库模型下会——只要金库有余额,续费自动发生。背后没有任何"自动续费"的把戏:扣款严格按焊死的条款执行,顾客一取消或余额耗尽过了宽限期,立即停止。
能像绑卡一样用加密货币订阅吗?
能——开始时签一次名(代替填卡号),之后扣款自动进行。对你有利的差别是:余额在你手里,不在商户或处理商手里。
顾客能用加密货币付订阅、又保住自己的托管权吗?
这正是金库设计的意义:顾客从一个只有自己控制的账户里付订阅费。商户从不持有余额,我们也不。
自动加密扣款安全吗?
在结构上比替代方案更安全:这个模型下的自动循环扣款,金额不能超过焊死值、去向不能改、取消后不能继续——三条都由链强制执行。对比无限代币授权的最坏情况("最多能扣多少?"——答案是全部)。
能自动从加密钱包里扣款吗?
普通钱包不能——这正是问题本身,也是大多数"订阅"沦为提醒邮件的诚实原因。能被自动扣款的,是一个条款预先承诺好的专用金库——顾客订阅时创建的就是它。
支持 USDT 订阅吗?
支持——USDT 订阅和 USDC 完全一样:建套餐时选币种即可。在 USDT 当家的市场,它往往就是正确的默认。
能用 USDC 按周期扣费吗?
能——USDC 循环扣款是最常见的配置:美元计价的套餐、USDC 结算的扣款,没有波动性对话。
稳定币循环扣款有什么优势?
稳定币循环扣款是订阅的理性默认:顾客当初认可的金额就是每期实付的金额,任何方向都没有汇率惊吓。
有专门的 Solana 订阅方案吗?
有——Solana 是金库订阅的旗舰链:亚美分的扣款成本让按月计费真正划算,而且关闭时租金押金会退回。
链上订阅怎么做到非托管?
余额从不离开顾客的控制。非托管循环计费的意思是:平台能按承诺条款触发扣款,但不能持有、改道或冻结资金——每一步都没有托管。
订阅和付款提醒的区别是什么?
提醒是"请求",订阅是"扣款"。加密订阅与付款提醒之辨就是上面整篇文章:只要顾客每期都得动手,那就不是计费——营销词说什么都不算。
顾客必须一直在金库里放很多钱吗?
不用——够接下来几期就行。很多顾客会一次预存几期;余额任何时刻都能取回。
支持哪些链?
Solana 和已支持的 EVM 链(Ethereum、Base、BNB Chain),每个套餐可选稳定币或原生币计价。
能做免费试用和首期折扣吗?
能——试用与促销价属于套餐条款的一部分(所以和其他条款一样,焊死进金库地址的派生里)。
我改了套餐,老订户会受影响吗?
不会——每条订阅在建立时对条款做了快照。新条款只对新订户生效;老订户换套餐走零信任迁移流程。