[英]Stripe API recurring payments with Php
我正在使用Stripe API進行一次付款,使用以下方法可以很好地工作:
$stripe = array("secret_key" => "MY_SECRET_KEY", "publishable_key" => "MY_PUBLISHABLE_KEY");
Stripe::setApiKey($stripe['secret_key']);
try {
$charge = Stripe_Charge::create(array(
"amount" => round($_POST['amount'] * 100, 0),
"currency" => "USD",
"card" => array(
"number" => 111111111111111111,
"exp_month" => 10,
"exp_year" => 2017,
"cvc" => 321,
),
"description" => $_POST['item_name']));
$json = json_decode($charge);
$amount_charged = round(($json->{'amount'} / 100), 2);
//process payment here......
}
catch (Stripe_CardError $e) {
$body = $e->getJsonBody();
print json_encode($json);
}
現在,我希望能夠通過捕獲用戶信用卡信息並每月執行一次cron作業來進行定期付款。 以上工作正常嗎,還是我需要其他東西。 我知道Stripe內置了用於定期付款的功能,但在我的情況下,每個月的付款金額會有所不同。
您的示例中缺少的是客戶記錄。 您會看到,Stripe不允許您重復使用令牌。 它們是一次性的。 為了擴展您要尋找的功能,您需要將付款詳細信息安全地存儲在某處。 如果您符合PCI標准,那當然可以在您自己的本地數據存儲中; 但是,如果您想使自己更輕松,則可以為每個用戶及其相關的付款方式建立客戶記錄。
在正常構造費用時,您將使用創建費用 API請求。
您現在正在執行此操作,並將令牌ID作為source
傳遞。 相反,您要做的是先創建一個客戶 ,然后通過創建Card附加該付款來源。 (我建議將它們分為兩個單獨的步驟,這樣您就可以更好地管理具有多個付款方式的客戶。)
然后,要再次收取該記錄,您將再次創建“創建費用 API請求”,但您需要在customer
-argument中傳遞客戶ID,然后(可選)將源ID( card_xxx
)傳遞至source
-argument 。 如果您沒有傳遞source
參數,但是傳遞了customer
參數,它將使用默認的付款來源。
希望有幫助!
您不能每月使用卡令牌進行收費嗎? 與其使用他們的卡令牌傳遞卡,不如將其更安全。 但是否則您的代碼看起來還不錯。 您應該每個月都可以這樣收費。
編輯
忘記了,由於CC令牌僅一次使用,因此您將需要創建Stripe客戶並將CC令牌分配給該Stripe客戶。 創建Stripe客戶后,您將可以每月向該客戶收費。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.