商店 Escrow:为商店所有者提供安全的付款
当玩家从用户拥有的商店购买商品时,付款不再立即发送给商店所有者。相反,代币由服务器保管在 escrow 中,直到买家确认收到货物。只有在此之后,商店所有者才会收到付款——98% 在链上,外加 2% 的服务器佣金。
为什么需要 Escrow?
没有 escrow,商店所有者可能会收到付款后从不发货。买家将无法追索。Escrow 保护双方:
- 买家可以在货物未交付或与描述不符时对订单提出争议。付款将被冻结,直到管理员审查该案件。
- 商店所有者在买家确认后保证收到付款——或者如果买家未采取行动,则在 7 天后自动收到付款。
工作原理
1 买家付款
买家将全额付款发送到服务器的运营钱包。代币被保管在 escrow 中。订单状态被设置为 escrow。
2 买家确认收货
买家调用 POST /shop/confirm-receipt 确认已收到货物。服务器立即将付款的 98% 在链上发送到商店所有者的钱包。服务器保留 2% 的佣金。
3 7 天后自动释放
如果买家在 7 天内未确认或提出争议,付款将自动释放给商店所有者。后台工作进程每小时检查一次过期的 escrow。
4 争议解决
如果买家不满意,可以调用 POST /shop/dispute 冻结付款。然后管理员通过 POST /shop/admin/resolve-payout 审查该案件,并执行以下操作之一:
- 释放付款给商店所有者,或
- 退款——付款被取消,代币保留在服务器(买家可以手动获得补偿)。
付款状态参考
| Status | Meaning |
|---|---|
none | 官方商店或无订单 |
escrow | 代币由服务器保管,等待买家确认 |
disputed | 买家提出争议,等待管理员审查 |
paid | 98% 已在链上发送给所有者 |
refunded | 管理员取消付款,代币保留在服务器 |
failed | 链上转账失败 |
API 端点
| Endpoint | Who | Purpose |
|---|---|---|
POST /shop/confirm-receipt | 买家 | 确认收货 → 释放 escrow |
POST /shop/dispute | 买家 | 对订单提出争议 → 冻结 escrow |
POST /shop/admin/resolve-payout | 管理员 | 解决争议(释放或退款) |
GET /shop/my-payouts | 商店所有者 | 查看 escrow + 已付款总额和历史记录 |
钱包选择
付款发送到商店所有者的钱包,使用与付款相同的链:
| Payment Currency | Owner Wallet Used |
|---|---|
| CC (Cash Coins) | CC wallet(备用:KC wallet) |
| KC (Keshe Coins) | KC wallet |
收益分成
| Recipient | Share |
|---|---|
| 商店所有者 | 98% |
| 服务器佣金 | 2% |
2% 的佣金用于覆盖基础设施成本:区块链 gas(如适用)、服务器托管以及 escrow 服务本身。
官方商店
官方 Erleuchtung 商店(服务器拥有,owner_id IS NULL)不纳入 escrow 系统。官方商店商品的付款直接进入服务器,不进行付款分割。
后续计划
Escrow 系统现已上线。商店所有者可以通过 GET /shop/my-payouts 端点跟踪其待处理的 escrow 余额和已付款收益。用于管理付款、确认收货和提交争议的前端仪表板将在即将发布的版本中推出。