本文详细介绍了在QuickNode Marketplace中创建附加组件时的供应、更新和取消供应流程,包括认证机制、每个步骤的详细说明以及如何实现这些步骤。
无论你正在创建哪种类型的附加组件,你都需要了解我们的配置、更新和取消配置流程。理解何时处理请求以及何时返回 429 错误对你来说至关重要。在本指南中,我们将深入探讨我们在此过程中使用的身份验证机制、每个步骤,以及它们与你如何获得报酬的关系。
如果你不想手动实现配置 API,我们的起始仓库提供了完整的、功能齐全的配置 API 实现,支持你偏好的编程语言:
以下所有配置/更新 API 都应使用 HTTP 基本身份验证 进行保护。你将在 Marketplace 入驻流程中收到用户名和密码。你可以在 Marketplace 应用程序的附加组件安全选项卡中找到它:
这些凭据是专属于你账户的——不要与任何人共享。你还必须在你的配置、更新和取消配置服务器上针对这些凭据实现身份验证。
🚨 如果你在未验证这些凭据的情况下配置、更新或取消配置服务,你可能会成为欺诈的受害者,并提供不会获得报酬的服务。
考虑到这一点,让我们深入了解每个步骤。
你的 API 必须接受一个 HTTP POST 请求,其负载如下所示。我们将在客户成功为你的服务付款后发送此请求:
{
"quicknode-id": "9469f6bfc411b1c23f0f3677bcd22b890a4a755273dc2c0ad38559f7e1eb2700",
"endpoint-id": "2c03e048-5778-4944-b804-0de77df9363a",
"wss-url": "wss://long-late-firefly.quiknode.pro/2f568e4df78544629ce9af64bbe3cef9145895f5/",
"http-url": "https://long-late-firefly.quiknode.pro/2f568e4df78544629ce9af64bbe3cef9145895f5/",
"referers": ["quicknode.com"], // 如果没有设置,也可能为 null
"contract_addresses": [],
"chain": "ethereum",
"network": "mainnet",
"plan": "your-plan-slug",
}
这应该基于 quicknode-id 触发你方服务的幂等配置。我们建议你至少存储此 ID 以及配置请求中发送的 plan。
如果 referers 已设置,你需要在向客户端点发出的每个请求中将其作为标头传递。此外,你绝对应该存储所有这些信息。
注意 - 任何包含 X-QN-TESTING 标头的传入请求都来自 QuickNode 开发团队或测试工具。
我们期望你的响应具有以下结构:
{
"status": "success", // 或 "error"
"dashboard-url": "http://auth.yoursite.com/access/jwt",
"access-url": "http://api.yoursite.com/some-token-here"
}
我们将使用 access-url 向客户展示他们如何访问服务(例如,如果它是一个浏览器、图实例、某种索引、GraphQL API 或 REST API)。如果你提供的是 JSON-RPC 方法,则只需将 access-url 返回为 null。我们将使用 dashboard-url 通过 SSO 让客户登录到你的服务。我们有一篇关于 SSO 的指南 在这里。
如果响应为 error,请确保使用非 200 的 HTTP 状态码。
如果客户滚动其Token、添加或删除引用者、更新批准的交互合约或更改其计划,我们将向你的更新 URL 发送一个 PUT 请求,内容如下:
{
"quicknode-id": "9469f6bfc411b1c23f0f3677bcd22b890a4a755273dc2c0ad38559f7e1eb2700",
"endpoint-id": "2c03e048-5778-4944-b804-0de77df9363a",
"wss-url": "wss://long-late-firefly.quiknode.pro/2f568e4df78544629ce9af64bbe3cef9145895f5/",
"http-url": "https://long-late-firefly.quiknode.pro/2f568e4df78544629ce9af64bbe3cef9145895f5/",
"referers": ["quicknode.com"], // 如果没有设置,也可能为 null
"contract-addresses": [],
"chain": "ethereum",
"network": "mainnet",
"plan": "new-plan-id"
}
你只需响应:
{
"status": "success" // 或 "error"
}
并附带适当的 HTTP 状态码。
在计划变更的情况下,所有费用将按比例分配。例如,如果客户在每月的第一天购买了 100 美元的计划,然后在每月的第 15 天更改为 150 美元的计划,我们只会向客户收取额外的 25 美元,因为他们已经支付了 100 美元。剩余的 50 美元将按比例分配给剩余的 15 天,即 ($150-$100)*(15/30)。
由于一个账户可以在单个计划下拥有多个端点,我们还会告诉你客户何时关闭了某个端点,以便你不再为该端点提供服务。当这种情况发生时,我们将向你的停用端点 URL 发送一个 DELETE 请求,内容如下:
{
"quicknode-id": "9469f6bfc411b1c23f0f3677bcd22b890a4a755273dc2c0ad38559f7e1eb2700",
"endpoint-id": "2c03e048-5778-4944-b804-0de77df9363a",
"chain": "ethereum",
"network": "mainnet"
}
你只需响应:
{
"status": "success" // 或 "error"
}
并附带适当的 HTTP 状态码。
要获取完整的链和网络列表,请参阅 我们如何为 Marketplace 合作伙伴代理 RPC 请求 指南的 最后部分。
当客户的付款失败(最后一次)或他们取消服务时,我们将向你的取消配置 URL 发送一个取消配置 DELETE 请求,内容如下:
{
"quicknode-id": "9469f6bfc411b1c23f0f3677bcd22b890a4a755273dc2c0ad38559f7e1eb2700",
}
当你收到此调用时,应立即停用与 quicknode-id
匹配的账户。
你应该响应:
{
"status": "success" // 或 "error"
}
并附带适当的 HTTP 状态码。
这些步骤和信息对于顺利、安全地集成到 QuickNode Marketplace 至关重要。我们提供了一些工具来简化与合作伙伴的安全集成开发,但我们很乐意回答你可能有的任何其他问题!
我们 ❤️ 反馈! 如果你对本指南有任何反馈或问题,请在这里告诉我们!我们很乐意听取你的意见!
- 原文链接: quicknode.com/guides/qui...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!