省流:tokensubs.io

早在 10 年前我就开始在我的网站上支持比特币支付了 https://www.fshex.com/t/131432 当时使用了一个第三方的服务,每次调用会返回一个地址 ,如果用户向这个地址转账,我的网站就会收到一个 Webhook 回调。

这么多年之后,我们现在有了基于 ERC20 的繁荣生态,各类软件和服务也都纷纷转向订阅制,我就想能不能基于 ERC20 预授权的机制,来实现基于密码货币的订阅付费呢?

其实已经有很多服务在提供这种订阅的接口了,但我觉得他们和十年前这种体验相比实在过于复杂 —— 需要注册帐号、完成 KYC 、阅读冗长的 API 文档、接入 SDK 并配置 API Key 等等。

于是我以「接入简单」为目标开发了 TokenSubs ,它简单到了你甚至不需要注册帐号,只需拼出一个包含收款地址的 URL (我们有个 [URL Builder]( https://tokensubs.io/url-builder)),然后将用户重定向到这里即可:

> https://tokensubs.io/checkout?merchant=0x8d4c362BD64E4C0a547430B8d9066491627259C8&pricing=1.99USDC/30days

然后在你的网站接收回调:

```js
app.post('/webhook', async (req, res, next) => {
  const {eventId} = req.body
  // arbitrum/0x488f2bd0d55f0ccf86903577c24427944c586fea8ecfdde4d92d7497f23d4642/1
  const res = await fetch(`https://tokensubs.io/api/events/${eventId}`)

  console.log(await res.json())

  /*
    {
      "chain": "arbitrum",
      "subscriptionId": "arbitrum/0xef580637c4fe1f55bbe72d6049a59569b5f262e3",
      "merchant": "0x8d4c362BD64E4C0a547430B8d9066491627259C8",
      "subscriber": "0x269c07a1D560F7C5bfb781c0118f5049a1e006e6",
      "intervalDays": 30,
      "receiveTokenAddress": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
      "price": 1.99,
      "pricing": "1.99USDC/30days",
      "expiredAt": "2024-08-12T15:02:32.000Z",
      "txId": "0x488f2bd0d55f0ccf86903577c24427944c586fea8ecfdde4d92d7497f23d4642",
      "eventId": "arbitrum/0x488f2bd0d55f0ccf86903577c24427944c586fea8ecfdde4d92d7497f23d4642/1",
      "eventName": "SubscriptionCreated",
      // ...
    }
  */
})
```

不需要注册帐号、不需要配置 API Key 、不需要提现(会实时转到你填写的地址上),其核心逻辑通过一个智能合约来完成(可在各个 [Block Explorer]( https://arbiscan.io/address/0x1EBdf1B0e4EAEF9F51A2D65c95F57C3Fc0aA953b) 上查看其代码),合约保证了按约定好的时间和价格进行扣费,任何人都无法干预。

作为用户看到的支付页面是这样的(不需要注册帐号,直接使用 MetaMask 之类的钱包进行付款):

![]( https://i.fshex.co/pqzK6W2y.png)

开发者可以指定一种 Token 作为定价和收款货币,而用户则可以在多种主流 Token 中选择自己持有的 Token ,TokenSubs 会自动调用 Uniswap 完成兑换。

更多细节和额外功能可以来 [TokenSubs 的文档]( https://tokensubs.io/docs/integration-guide) 查看,或者直接 [点击这里]( https://tokensubs.io/checkout?merchant=0x8d4c362BD64E4C0a547430B8d9066491627259C8&pricing=1.99USDC/30days&callback=https://tokensubs.io/api/demo/webhook&product=Give%20coffee%20to%20the%20Author) 来试一试(如果不希望真的扣钱的话请不要在钱包里同意交易)。
举报· 340 次点击
登录 注册 站外分享
14 条回复  
Livid 初学 2024-10-16 14:54:44
如果你 Demo 网站跑在测试网上,那么就可以让大家试试完整流程了。
loveshuyuan 小成 2024-10-16 14:56:08
为啥不支持 TRC20
344457769 小成 2024-10-16 15:30:39
我喜欢你的头像。
liangdi 小成 2024-10-16 15:48:20
@loveshuyuan 可能有程序员洁癖?哈哈
thoo61871 初学 2024-10-16 16:14:25
@loveshuyuan TRC20 不租用能量,手续费已经很高了,孙哥吃相难看。
shanghaojia 小成 2024-10-16 16:23:48
能不能支持下 sol
zmxnv123 小成 2024-10-16 16:34:38
主要问题是面向国内用户的话支付方式太小众了,适合海外玩家
imnpc 小成 2024-10-16 17:01:37
TRC20 不是手续费更高? ERC20 的收费比较低了
guoooo00oohao 小成 2024-10-16 17:31:16
很不错的一个工具 支持一下
12下一页
返回顶部