簡體   English   中英

帶PHP的Stripe API定期付款

[英]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請求。

您現在正在執行此操作,並將令牌I​​D作為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.

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