簡體   English   中英

Rails + Stripe:在哪里存儲用戶擁有的訂閱類型?

[英]Rails + Stripe: where to store what type of subscription a user has?

Rails newb在這里,所以在你想要的時候添加盡可能多的細節,並隨時告訴我,我做錯了。

背景:我正在構建一個SaaS rails應用程序,並計划盡快添加條帶(支付)集成。 在整合條帶之前,我想構建區分各種帳戶類型(訂閱計划)的功能。

我在應用程序中使用了很多if / else語句,具體取決於帳戶類型(例如,免費,級別1,級別2),以向用戶顯示/隱藏適當的功能。 我的基本陳述如下:

<% if current_user.account_level == "1" %>
    your account level is 1
<% elsif current_user.account_level == "2" %>
    your account level is 2
<% else %>

<% end %>

這假設我記錄了用戶在用戶模型(或其他模型)中的“帳戶級別”。 這是適當的地方嗎? 從技術上講,Stripe擁有最新數據(即如果卡取消了帳戶級別會有所不同)。 我應該直接使用Stripe api來確定帳戶級別嗎? 好像我應該在我的數據中的某處記錄。

知道我將來會集成Stripe,在開發過程中是否還應該記住其他最佳實踐?

雖然Stripe將存儲最新數據你是對的,但我建議維護一個你經常使用的任何東西的本地緩存(比如訂閱狀態)。

您可以使用兩種主要方法來確保數據庫具有最新狀態:

  • 在對Stripe進行API調用的代碼中,請確保您還要更新本地副本,或者

  • 使用我們的webhook來監聽與您的客戶相關的事件(例如, customer.subscription.updated )。 通過這樣做,您可以確保您的本地數據庫始終與Stripe匹配 - 即使您通過儀表板更改了客戶的計划,您的webhook端點也將收到更新。

在本地存儲這些數據的主要好處是速度:您很可能不希望您的客戶等待每次訪問此數據的請求的API調用,特別是因為您似乎需要在整個網站中使用它。

您需要確保將客戶ID存儲在數據庫中,以便可以將Stripe客戶與本地用戶進行匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM