跳到主要內容

SDK 架構

The PaymentKit Node.js SDK 建立在模組化、以資源為導向的架構之上。這種設計確保了與 PaymentKit API 不同部分的互動是一致、可預測且穩健的。其核心是,SDK 使用一個中央實用程式為每個 API 資源(如客戶、產品等)生成方法,該實用程式處理與底層 PaymentKit Blocklet 的所有通訊。

這種架構抽象化了組件間通訊的複雜性,讓您可以專注於應用程式的業務邏輯。

SDK Structure

資源工廠

SDK 暴露的每個資源(例如,productscustomerssubscriptions)都是由一個中央工廠生成的方法集合。這種工廠模式確保了所有 API 方法共享一致的簽名和行為。負責此功能的主要函式是 createResourceMethodcreateResourceCreateMethod

這些工廠接受一個定義 HTTP 方法和 API 路徑的規範,並返回一個處理完整請求生命週期的非同步函式。

以下是 products 資源內部建構方式的概念性展示:

Conceptual Example

javascript
import { createResourceMethod, createResourceCreateMethod } from './resource';

// 這是一個簡化的範例,用以說明此模式。
const products = {
  // 用於建立新資源的方法
  create: createResourceCreateMethod({ method: 'POST', path: '/v1/products' }),

  // 用於擷取、更新、列出和刪除的方法
  retrieve: createResourceMethod({ method: 'GET', path: '/v1/products/{id}' }),
  update: createResourceMethod({ method: 'PUT', path: '/v1/products/{id}' }),
  list: createResourceMethod({ method: 'GET', path: '/v1/products' }),
  del: createResourceMethod({ method: 'DELETE', path: '/v1/products/{id}' }),
};

這種方法使得 SDK 易於維護和擴展,同時在所有 API 端點上提供統一的開發者體驗。

自動化組件處理

在發送任何 API 請求之前,SDK 會自動確保 PaymentKit Blocklet 正在運行且可用。這由 ensureComponentRunning 實用程式管理。

當您呼叫 SDK 方法時:

  1. SDK 首先檢查 PaymentKit 組件的狀態。
  2. 如果組件未運行,它將等待其啟動。
  3. 一旦確認組件正在運行,API 請求就會被分派。
  4. 如果組件啟動失敗,方法呼叫將拋出錯誤。

這個內建的檢查機制免除了您在應用程式碼中手動管理 PaymentKit 組件生命週期的負擔,從而防止了常見的錯誤和競爭條件。

所有通訊最終都由 @blocklet/sdkcomponent.call 函式處理,該函式提供了安全、跨 blocklet 通訊的底層機制。

無縫的環境管理

資源工廠還會根據 SDK 的目前設定,自動將 livemode 參數注入到每個 API 請求中。無論您是在正式模式還是測試模式下操作,SDK 都會處理向 PaymentKit API 傳遞正確的參數,無需您額外操作。

這意味著您只需更改一次設定即可在不同環境之間切換,所有後續的 API 呼叫都將被正確路由。

設定環境

要了解如何在線上和測試模式之間切換,請參閱環境設定指南。

了解更多