订阅和自动转账
商店可以要求 Heth.me 用户批准定期付款。付款人使用普通的未锁定 HethWallet 审查并签署条件。不需要单独的电子邮件帐户或客户门户登录。付款以约定的货币和网络扣除 Heth 账户余额。
对于付款人
- 打开设置→订阅和自动付款。新请求与现有订阅分开显示。
- 打开请求并检查商店、每次付款的金额、货币/网络和计费周期。确认链接会打开同一屏幕。锁定的钱包会请求其通常的 PIN 并返回该请求。
- 选择启用订阅或拒绝。打开链接或接收通知永远不会批准订阅。
- 审核通过后,安排第一笔付款。列表显示金额、期限和下一次付款日期;重试失败支付时,会显示下次重试时间。
- 撤销订阅以停止未来收费。撤销不会退还已完成的付款。
批准记录同意并安排付款;并不代表支付成功。检查交易状态。执行付款时,余额必须足够。
如何宣布新请求
对于认可的付款人,服务器会向注册设备发送订阅请求推送,并带有指向 /subscriptions/confirm/<request_id>?env=<env> 的链接。即使没有设备可以接收推送,条目也会保存在通知铃声中。待处理的请求仍然可以在设置 → 订阅和自动付款中找到。
安装的 PWA 使用网络推送。适用于 iOS 和 Android 的 Heth.me,从版本 1.0.0(内部版本 5)开始,使用系统通知。在钱包中启用通知并在您的设备设置中允许它们。点击订阅请求将打开其确认屏幕;锁定的钱包首先要求提供常用的 PIN 或可用的密钥。接收或打开通知并不批准订阅。如果未收到通知,请打开商店中的待处理请求列表或确认链接。
对于商店
在HethWallet中,打开业务→订阅和自动转账。输入付款人的钱包地址、@username 或 Heth 卡号、订阅名称、每次付款金额、货币/网络和期限。发送请求,然后复制其确认链接。您可以列出您的请求并在请求仍待处理时取消该请求。
运营商必须为组织启用 Heth 订阅并配置有效的支付路径。创建请求并不授权扣款。
通过API创建请求
使用商店的 API 密钥或其普通合作伙伴 Bearer 会话。在app.heth.me上,组织是从主机解析的。只读密钥无法创建或取消请求。
curl -X POST 'https://app.heth.me/api/v1/heth/subscription-requests' \
-H "x-api-key: $HETH_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"request_id": "b56b2c66-4ae5-4cb9-92ea-7a3297b72b55",
"payer": "@alice",
"description": "Monthly membership",
"amount": "1000000",
"currency": "USDT",
"network": "ETH",
"interval": "monthly",
"period": 1,
"env": "prod"
}'
| 领域 | 描述 | 类型 | 示例 |
|---|---|---|---|
request_id | 唯一幂等UUID。重试相同请求时,以相同的条件重复使用它。 | String | b56b2c66-4ae5-4cb9-92ea-7a3297b72b55 |
payer | 钱包地址、用户名或 Heth 卡号。 | String | @alice |
description | 订阅名称,1–250 字符,不带换行符。 | String | Monthly membership |
amount | 以令牌最小货币单位表示的正整数。对于 6- 十进制 USDT,1000000 表示 1 USDT。 | String | 1000000 |
currency, network | 为账户启用令牌/网络对。网络:ETH、TRX、BASE。 | String | USDT, ETH |
interval | daily、weekly、monthly 或 yearly。 | String | monthly |
period | 间隔数,1–365;默认1。 | Number | 1 |
env | prod(默认)。打开并确认请求时保留该值。 | String | prod |
HTTP 201 直接返回请求,包括id、status、amount_decimals、confirm_url、expires_at、subscription_id、next_charge_at。请求将在 7 天后过期。成功的创建并不表明所提供的付款人是否存在;只有实际收件人才能阅读并批准该请求。
API 操作
以下所有路径均以 /api/v1 开头。商店操作需要商店的 API 密钥或合作伙伴承载会话。
| 方法与路径 | 目的 |
|---|---|
POST /heth/subscription-requests | 创建请求。 |
GET /heth/subscription-requests?env=prod&limit=50 | 在data和total中列出商店的请求。 |
POST /heth/subscription-requests/:id/cancel | 取消待处理的请求;本体{"env":"prod"}。 |
对于第一页,省略 page。使用 page=1 进行下一页,然后递增; limit 控制页面大小。
钱包操作需要付款人的普通钱包Bearer会话。商店的API密钥无法为付款人批准。
| 方法与路径 | 目的 |
|---|---|
GET /heth/subscriptions?env=prod&limit=50 | data/total 中自己的订阅,requests/requests_total 中的待处理请求。 |
GET /heth/subscription-requests/:id?env=prod | 阅读已处理的请求和规范签名 message。 |
POST /heth/subscription-requests/:id/confirm | 审查具体条件后,通过 {"signature":"<wallet signature>","env":"prod"} 批准。 |
POST /heth/subscription-requests/:id/reject | 拒绝;本体{"env":"prod"}。 |
POST /heth/subscriptions/:id/revoke-mandate | 停止未来收费;本体{"env":"prod"}。 |
签名绑定店铺、付款人、组织、描述、金额及其精度、货币/网络、间隔和周期、首次付款规则、随机数和到期日。更改条件需要新的请求和新的同意。重试批准或预定付款不能在同一期间两次借记。不带时区后缀的 API 时间戳为 UTC;该应用程序显示设备本地时间。
状态和错误
请求状态为 pending、signed、rejected 和 expired。已批准的请求具有 subscription_id。通过交易 API 和配置的 webhooks 跟踪实际支付完成情况。
401 表示身份验证缺失/无效; 403 表示订阅已禁用或 API 密钥为只读。无法访问的请求返回 404。 422 表示无效条款、在不同条件下重复使用的 UUID、无效签名或过期/关闭的请求。未经新付款人同意,商店不能更改有效订阅的已签署条件。