2016-07-12 48 views
2

首先,我知道,這個問題已經被問,但他們並沒有解釋如何使用如何使用PHP從Stripe獲取收費ID?所有的

charge.succeeded 

我創建使用條紋的權威性和捕捉收費來獲取信息。我需要收費ID來確認/收取費用。

以下代碼創建費用,但在獲得批准前不收取費用。

\Stripe\Charge::create(array(
    "amount" => $price, 
    "currency" => "usd", 
    "customer" => $custID, // obtained with Stripe.js 
    "description" => "Charge for [email protected]",   
    "capture" => false 
)); 

我認爲我可以做得到充電ID:

$chargeID = $charge->id; 

,因爲這就是我得到了客戶ID,當我創建一個客戶。但是,當我將變量回顯出來時,我什麼也得不到,因爲我想將它保存在數據庫中,這無濟於事。我到處尋找,但找不到任何具體或最近的事情。

然後完成收費。我必須這樣捕獲它:

$ch = \Stripe\Charge::retrieve("$chargeID"); 
$ch->capture(); 

這一切都來自Stripe API Reference,但它沒有解釋如何獲取收費ID。它甚至不告訴你如何獲得客戶ID,幸運的是Stack Overflow與那個一起。

這都是使用PHP完成的。

+0

你給'charge :: create()'分配一個變量嗎?這裏面是什麼? – Kisaragi

+0

'$ charge-> id'應該可以工作,假設你使用'$ charge = \ Stripe \ Charge :: create(...'。 – rjdown

+0

'$ charge-> id'在我的應用程序中工作 – Barmar

回答

4

根據Stripe's Documentation,當創建一個新的收費時,你會得到Stripe\Charge JSON對象作爲回報(或者如果出現問題的話會發生異常)。

您可以var_dump剛剛創建看到你的對象是什麼樣的對象,但是根據該API可以使用返回對象的id

$charge = \Stripe\Charge::create(array(
    "amount" => $price, 
    "currency" => "usd", 
    "customer" => $custID, // obtained with Stripe.js 
    "description" => "Charge for [email protected]",   
    "capture" => false 
)); 

// you can use the var_dump function to see what's inside the $charge object 
// var_dump($charge); 

$chargeID = $charge->id; 

(而你並不需要再次調用Charge::retrieve,則可以使用當前的$charge對象)。

+0

謝謝!我真不敢相信我忘了這個任務,現在可以工作了,謝謝大家的回答。 – Maria

+0

@Maria,歡迎您。如果答案正確,歡迎您接受將其標記爲有用 – Dekel

+0

我會但是因爲我的聲望低於15,所以對於公開展示不會做太多的工作 – Maria