Unlock 付费后会员未延长:区分接收人、续期方法与费用
链小知 · 进阶 · 核验 · 依官方文档整理
按原付款和会员记录核对不同支付路线的接收人、管理权、延期条件与实际新到期时间,保留版本差异。
开始前准备
- 已有去敏 Checkout 配置、付款或赠予回执、Lock/tokenId/版本及付款前后到期记录;缺项列待补。
- 仅对照资料,不进入 Demo、付款、授权、调用续期、发签名或改变 KeyManager。
1. 核对原 Checkout 与 Lock 对应
官方 Checkout 为 app.unlock-protocol.com/checkout,可由已有 Checkout Builder JSON 配置核对目标。不要因为付款来自同一品牌入口就认定同一个 Lock 或网络。
保留原模式是购买、赠予还是续期;价格为0的 purchase 与 grantKeys 也不是同一个方法。
检查结果:付款记录、配置和会员合同身份一致,未猜当前菜单或运行 Demo。
2. 对照付款人与会员接收人
在原购买参数和结果中核对 recipient 及 tokenIds,而不把交易发送人当 NFT 所有人。购买支持替他人付款;信用卡收据也不单独证明会员铸造。
Minting 帮助有数组参数说明,v15 API 另有 PurchaseArgs[] struct 和 legacy 重载;使用原版本/ABI解释,不把两种字段拼接。
检查结果:交易、实际接收人及返回 NFT 能对应,支付渠道与链上结果分开。
3. 拆开会员价格与费用单位
保留原 keyPrice、付款 tokenAddress、资产精度与实际支付数量;推荐 referrerFees 的 bps 与支付币整数不是同一单位。另列 Gas、平台或支付渠道成本。
Minting 的1%历史说明不保证当前逐链费率。官方网络页本轮 Version/Fee 值未渲染,空白不是0,不用它解释所有差额。
检查结果:会员价、推荐费、协议费和渠道费各有原始依据,未知不补。
4. 按原方法检查续期条件
extend 可由他人支付;renewMembershipFor 的 v15 参考限定非免费、有期限的 ERC20 Lock,并依赖当前 owner 足够的余额和授权。grantKeyExtension 属管理员或赠予角色路径。
只看已有 isRenewable 的结果或回滚理由。文档描述有自动脚本,不证明某地址已授权、脚本已运行或本次一定成功;断开网站也不等于撤销 ERC20 授权。
检查结果:续期路线和调用/支付条件清楚,未知原因未靠再授权试错。
5. 核对延期和管理权的实际结果
续期不会新建 NFT。对照原 tokenId、交易成功及前后 keyExpirationTimestampFor;付款受理、交易 hash 或旧有效期截图均不能单独证明延长。
保留 ownerOf 与 keyManagerOf 的已有证据。尤其信用卡购买可能由支付实体管理转移/取消权;KeyOwner 不自动拥有 KeyManager 权限。
检查结果:实际新到期时间绑定原 NFT,支付人/owner/manager未混同。
6. 区分会员延期与网站交付
原 Hook 可影响购买价、执行或资格;购买 Hook 失败可能使整笔购买回滚。保存已有失败回执,不能因一张渠道收据标会员已可用。
最终分开已付款、链上执行、期限更新和网站访问四阶段。缺协议/渠道退款规则不承诺退款或立即恢复,不提交重试。
检查结果:读者得到确定阶段和待补证项,而非重复付费建议。
怎样确认完成
- 形成原配置、支付/接收人、会员身份、费用、续期条件与前后期限对照。
- 未运行支付、授权、续期或访问;缺当前费率、Hook或回执仍明确待核。
常见错误与边界
- 付款人当会员接收人、卡支付受理当铸造完成。
- 历史1%当所有链当前报价,bps当支付原整数。
- 自动脚本当续期成功,登录断开当撤销授权;延期当新增 NFT。