Skip to main content
Clink Node.js SDK 为服务端 JavaScript 和 TypeScript 应用提供了便捷的 Clink API 调用方式,并内置了完整的 TypeScript 类型定义。

NPM Package

在 npmjs.com 查看该包

安装

使用你偏好的包管理器安装:

快速开始

开始使用前,需要先用你的 API Key 初始化客户端。你可以在 Clink Dashboard 的 Developers 页面找到密钥。
安全提示: 该 SDK 仅适用于服务端。不要在浏览器端代码或公开仓库中暴露 Secret API keys
如果你要用 Elements,请将 uiMode 设置为 elements,并提供 returnUrl,例如 https://YOUR_DOMAIN/complete.html?session_id={ELEMENTS_SESSION_ID}。Clink 会将 {ELEMENTS_SESSION_ID} 替换为创建出的 session ID。 如果你用的是 @clink-ai/clink-js 的嵌入式 iframe,则改用 uiMode: 'hostedPage'——那个 SDK 原样挂载托管结账页。

API 概览

  • createCheckoutSession(options):创建 checkout session,并返回跳转 url
  • getCheckoutSession(sessionId):查询 checkout session 详情
  • getOrder(orderId):查询订单详情
  • getRefund(refundId):查询退款详情
  • getSubscription(subscriptionId):查询订阅详情
  • getInvoice(invoiceId):查询订阅发票详情
  • customerPortalSession(options):创建 customer portal session,并返回访问链接
所有方法都是异步的,接口返回错误时会抛出异常。

错误处理

当 API 返回非成功状态码(4xx 或 5xx)时,SDK 会抛出错误。建议用 try/catch 包裹调用逻辑。

验证 Webhook 签名

ClinkWebhook 会帮你算并比对 HMAC,不用自己写。
1.0.1verifyAndGet() 只验 HMAC。 它不校验 X-Clink-SignType,不校验时间戳新鲜度,签名比较用的是 === 而不是恒定时间比较。前两条上面已经挡了。第三条要自己算 HMAC 才能绕开,用 crypto.timingSafeEqual,写法见 Hosted Checkout 接入另外,验签通过不等于可以直接处理。动手之前先用唯一索引按 event.id 去重。
verifySignature() 返回布尔值而不抛异常,signature() 用来生成签名——本地造测试事件时用得上。

参考资料