Skip to main content

概述

@elata-biosciences/app-payments 让你的应用可以打开 Elata 的结账流程,并查询用户拥有哪些物品。Elata 负责结账、以 USDC 收款并记录所有权。你的应用永远不会接触钱包或支付信息。
你的物品目录由 Elata 团队配置。请联系我们,提供你想出售的物品、标题和价格。

正确的流程

先根据所有权控制界面,再购买,然后应用权益。
requestPurchase 只记录用户拥有某个物品。拥有它意味着什么由你的应用决定。

注意事项

如果用户已经拥有该物品,Elata 会跳过支付并返回 { status: "success", txHash: "" }。检查 if (result.txHash) 的代码会错误处理这种情况。
CatalogItem.priceUsdc 是 USDC 的最小单位(6 位小数):"50000" 表示 $0.05。RequestPurchaseInput.priceUsdc 是 Elata 会忽略的自由格式显示提示。Elata 始终按目录价格收费。
每个物品只能购买一次。物品不支持消耗品(按次扣减的余额)或周期性计费。如需持续收入,请使用订阅计划。
requestPurchase 最多等待 5 分钟让用户完成结账。getCatalog、getOwnedItems 和 hasItem 默认 10 秒。在 Elata 之外没有人会回复,因此请将 timeout 处理为“显示物品可购买”。

错误

调用只会以带有 code 的 AppPaymentsError 拒绝: 正常的 cancelled 或 error 购买结果会被 resolve,而不是 reject。

安全模型

  • 你的应用无法伪造所有权。所有权只有在支付验证通过后才由 Elata 记录。
  • 你的应用永远看不到支付信息、钱包私钥或会话令牌。
  • 使用相同的 requestId 重复请求不会重复扣费。
  • 物品销售收入支付到应用所有者的钱包。

动手试试