2016-06-17 48 views
2

我在休息框架的基礎上非常新穎,所以請裸露在我身邊。我想將Stripe,PayPal或Braintree集成到django項目中,並且我想使用'django-rest-framework`,現在我對一件事感到困惑,那就是 - 我應該「觸摸」我的數據庫嗎?Stripe,PayPal,與django-rest-framework的集成

我的意思,我只想充電一次給我的客戶,這是一個費,僅此而已,所以我應該碰「DB」與否?我擔心它會扭曲PCI編譯處理事物的方式。我不知道從那些提到的支付系統的文檔旁開始。

有人可以幫助我瞭解什麼是一次性付款的最佳做法。

回答

2

條紋使得它容易被PCI兼容(聲明我是條紋的員工,所以我就只說說這裏條紋)。通過適當的集成,您將永遠不會訪問客戶的付款信息。使用預建Checkout形式,或使用Stripe.js一個你自己的形式

  1. 收集客戶的付款信息,:

    與條紋典型的付款流程,可以分兩步進行劃分。

    在這兩種情況下,該卡信息直接從客戶的瀏覽器發送到條紋的服務器,它會返回一個card token。然後您將此令牌發送到您的後端。

  2. 在後端,使用令牌create a charge

令牌代表一張卡,但隱藏您的PCI敏感信息(即整個卡號和CVC)。

你可以找到創建費用here一個簡單的教程。

如果不針對同一客戶多次充電計劃(或者,如果你不介意要求他們提供每次他們的信用卡信息),那麼你不一定需要存儲在任何你自己的數據庫。當您創建收費時,您會立即獲知結果(成功或失敗)並可採取必要的行動。

+0

我不想再充電他們,只是一次充電可刨,感謝清除此爲我,現在讓我們看看貝寶的人都對這個問題說 – PetarP

+0

謝謝,這幫助了很多。如果您確實想要存儲重複購買卡片信息,甚至是支付信息(例如賣家連接的銀行帳戶),您是否也可以從條帶中檢索這些令牌? – sonarforte

+0

@sonarforte您可以使用令牌將卡添加到客戶對象,然後使用客戶ID在將來創建費用,而無需再次收集付款信息。請參閱https://stripe.com/docs/charges#saving-credit-card-details-for-later – Ywain