Recur
Recur
Recur 文件中心
HelpFeatures

最佳實踐

遵循這些推薦做法以充分利用平台

最佳實踐

遵循這些最佳實踐以確保成功並充分利用我們的平台。

訂閱管理

定期審查訂閱

建立定期審查流程:

  • 每週: 檢查新訂閱和取消
  • 每月: 分析增長趨勢和流失率
  • 每季: 審查定價策略
  • 每年: 評估整體策略

處理試用期

優化試用期體驗:

  1. 設定清晰的期望 - 告知用戶試用期限和包含的功能
  2. 主動溝通 - 在試用期間發送有用的提示和資源
  3. 提供價值 - 展示平台的主要優勢
  4. 提前提醒 - 在試用結束前 3-5 天發送通知
  5. 簡化轉換 - 使升級流程簡單明了

管理訂閱生命週期

// 訂閱生命週期事件處理
const lifecycleHandlers = {
  onCreated: (subscription) => {
    // 發送歡迎郵件
    sendWelcomeEmail(subscription.customerId)
    // 設置初始資料
    setupCustomerData(subscription)
  },

  onTrialEnding: (subscription) => {
    // 提醒試用即將結束
    sendTrialEndingReminder(subscription.customerId, 3) // 3天前
  },

  onRenewal: (subscription) => {
    // 感謝續訂
    sendThankYouEmail(subscription.customerId)
  },

  onCancelled: (subscription) => {
    // 收集反饋
    requestCancellationFeedback(subscription.customerId)
  }
}

資料管理

保持資料整潔

維護高質量的資料:

  • 驗證輸入 - 在保存前驗證所有資料
  • 標準化格式 - 使用一致的日期、電話、地址格式
  • 定期清理 - 刪除或歸檔過時資料
  • 去重 - 定期檢查並合併重複記錄

資料備份

實施可靠的備份策略:

  1. 每日備份 - 自動化每日備份流程
  2. 異地儲存 - 在不同位置儲存備份
  3. 定期測試 - 測試恢復流程以確保備份可用
  4. 版本控制 - 保留多個備份版本
  5. 加密 - 加密敏感資料備份

安全性

API 金鑰管理

安全處理 API 金鑰:

// ❌ 不要這樣做
const apiKey = 'sk_live_123456789'

// ✅ 使用環境變數
const apiKey = process.env.RECUR_API_KEY

// ✅ 驗證環境變數存在
if (!process.env.RECUR_API_KEY) {
  throw new Error('Missing RECUR_API_KEY environment variable')
}

最小權限原則

僅授予必要的權限:

  • API 金鑰 - 為不同用途創建獨立的金鑰
  • 團隊成員 - 僅授予執行工作所需的訪問權限
  • Webhook - 僅訂閱需要的事件

效能優化

減少 API 調用

優化 API 使用:

// ❌ 避免在循環中調用 API
for (const customerId of customerIds) {
  const subscription = await getSubscription(customerId)
  // 處理訂閱
}

// ✅ 使用批量操作
const subscriptions = await batchGetSubscriptions(customerIds)
subscriptions.forEach(subscription => {
  // 處理訂閱
})

實施快取

減少重複請求:

import { LRUCache } from 'lru-cache'

const cache = new LRUCache({
  max: 500,
  ttl: 1000 * 60 * 5 // 5 分鐘
})

async function getSubscriptionWithCache(id: string) {
  const cached = cache.get(id)
  if (cached) return cached

  const subscription = await api.getSubscription(id)
  cache.set(id, subscription)
  return subscription
}

錯誤處理

優雅的錯誤處理

實施全面的錯誤處理:

async function processSubscription(id: string) {
  try {
    const subscription = await api.getSubscription(id)
    return await processData(subscription)
  } catch (error) {
    if (error.status === 404) {
      console.error(`訂閱 ${id} 不存在`)
      // 記錄並通知
    } else if (error.status === 429) {
      console.error('達到速率限制,稍後重試')
      // 實施退避策略
    } else {
      console.error('未預期的錯誤:', error)
      // 記錄並警報
    }
    throw error
  }
}

監控和警報

設置主動監控:

  1. 錯誤追蹤 - 使用 Sentry 或類似工具
  2. 效能監控 - 追蹤 API 響應時間
  3. 使用量警報 - 當接近限制時收到通知
  4. 異常檢測 - 監控不尋常的模式

測試

使用測試模式

充分利用測試環境:

// 使用測試金鑰進行開發和測試
const apiKey = process.env.NODE_ENV === 'production'
  ? process.env.RECUR_LIVE_API_KEY
  : process.env.RECUR_TEST_API_KEY

const client = new SubsClient({
  apiKey,
  mode: process.env.NODE_ENV === 'production' ? 'live' : 'test'
})

自動化測試

實施全面的測試:

describe('訂閱管理', () => {
  it('應該成功創建訂閱', async () => {
    const subscription = await createSubscription({
      customerId: 'test_customer',
      planId: 'pro'
    })

    expect(subscription.status).toBe('active')
    expect(subscription.planId).toBe('pro')
  })

  it('應該處理訂閱取消', async () => {
    const subscription = await createSubscription({
      customerId: 'test_customer',
      planId: 'pro'
    })

    await cancelSubscription(subscription.id)
    const updated = await getSubscription(subscription.id)

    expect(updated.status).toBe('cancelled')
  })
})

用戶體驗

提供清晰的溝通

保持用戶知情:

  • 歡迎郵件 - 新訂閱者的入門指南
  • 續訂提醒 - 續訂前 7 天通知
  • 付款收據 - 每次成功付款後立即發送
  • 狀態更新 - 訂閱更改時通知

優化結帳流程

簡化訂閱流程:

  1. 最小化欄位 - 僅詢問必要資訊
  2. 清晰的定價 - 明確顯示成本和續訂條款
  3. 多種付款方式 - 提供各種付款選項
  4. 行動優化 - 確保在移動設備上流暢
  5. 信任標誌 - 顯示安全徽章和保證

合規性

遵守法規

確保符合相關法規:

  • GDPR - 如果服務歐盟客戶
  • PCI DSS - 處理信用卡資訊
  • 資料保護 - 按照當地資料保護法
  • 退款政策 - 明確說明退款條款

資料隱私

尊重用戶隱私:

  1. 最小資料收集 - 僅收集必要資訊
  2. 透明度 - 清楚說明資料使用方式
  3. 用戶控制 - 允許用戶管理其資料
  4. 安全儲存 - 加密敏感資料
  5. 刪除權 - 提供資料刪除選項

持續改進

收集反饋

定期收集用戶反饋:

  • 滿意度調查 - 定期詢問用戶體驗
  • NPS 分數 - 追蹤淨推薦值
  • 取消原因 - 了解為什麼用戶離開
  • 功能請求 - 收集改進建議

迭代優化

基於資料做決策:

  1. A/B 測試 - 測試不同的方法
  2. 分析指標 - 追蹤關鍵績效指標
  3. 用戶訪談 - 深入了解用戶需求
  4. 競爭分析 - 了解行業最佳實踐
  5. 持續學習 - 保持對新趨勢的關注

資源

深入學習:

  • 進階功能 - 探索高級功能
  • API 文檔 - 完整的技術文檔
  • 安全指南 - 安全最佳實踐
  • 社區 - 與其他用戶交流

On this page

最佳實踐訂閱管理定期審查訂閱處理試用期管理訂閱生命週期資料管理保持資料整潔資料備份安全性API 金鑰管理最小權限原則效能優化減少 API 調用實施快取錯誤處理優雅的錯誤處理監控和警報測試使用測試模式自動化測試用戶體驗提供清晰的溝通優化結帳流程合規性遵守法規資料隱私持續改進收集反饋迭代優化資源