2013-10-29 200 views
1

我想知道如何正確啓動第一次付款以及對條形訂閱的後續付款。 像下面的例子。如何正確發起訂閱初始付款和後續付款

($50.00 USD for the first month then, $70.00 USD for each moneht.) 

現在基本上我有這個代碼。當有人選擇它時,哪個能夠成功制定計劃。 (有來檢查,如果計劃是已經存在一個代碼,但我想我不會包括了)

$price = 70; 
$first_payment = 50; 
$createPlan = array(
    "amount" => $price*100, 
    "interval_count" => array("period" => "1", "time"=> "month"), 
    "name" => 'Product name test', 
    "currency" => 'USD', 
    "id" => 'product_id_1234' 
); 
Stripe_Plan::create($createPlan); 

下一組的代碼是創建一個客戶,然後進行交易。 $carddetails變量包含客戶的卡信息。

$customer = Stripe_Customer::create($carddetails); 
Stripe_Charge::create(array(
    "customer" => $customer->id, 
    "amount" => $first_payment * 100, 
    "currency" => 'USD', 
    "description" => 'First payment charge' 
)); 

問題是,無論何時創建客戶,客戶都被收取兩次,實際價格和第一筆支付費用。 它應該是第一次收費只有50美元,而不是50美元和70美元。

你能解釋爲什麼嗎?謝謝

回答

3

條紋訂閱預付。也就是說,只要用戶開始訂閱,就會收集資金。

那麼,您有:

  • 創建$ 50的費用,立即向他收費$ 50
  • 訂閱用戶的計劃,立即向他收費$ 70

有幾種方法做你想做的事,所有這些都很簡單。我會在這裏詳細介紹。

1。通過一個負account_balance

當你正在創建的客戶,您可以通過一個account_balance財產與他的其餘信息。如果你通過-2000,他將獲得20.00美元的信用,使他的第一個月$ 50.00。

如果您使用此選項,將會應用折扣,但不會向用戶顯示爲什麼他有20美元的折扣。

$customer = Stripe_Customer::create(array(
    "description" => "Kenneth Palaganas", 
    "account_balance" => -2000, 
    "card" => "tok_1a2b3c4de", 
    "plan" => "basic" 
)); 

2.創建發票項目

此選項可能會需要你的代碼的多一點修改,但它可以讓你包括對客戶的發票調整,提醒他爲什麼只有他支付50美元。

如果創建用戶,但之前創建自己訂閱後創建發票項目,即發票項目將出現在他的第一張發票。您可以使用「首月折扣」說明來代替20美元的神祕折扣:

$customer = Stripe_Customer::create($carddetails); 
Stripe_InvoiceItem::create(array(
    "customer" => $customer->id, 
    "amount" => -2000, 
    "currency" => "usd", 
    "description" => "First Month Discount - Welcome!") 
); 
$customer->updateSubscription(array("plan" => "basic", "prorate" => false));