如何使用PHP从Stripe获取费用?

时间:2016-07-12 19:54:27

标签: php stripe-payments

首先,我知道这个问题已被提出,但他们没有解释如何使用

来获取信息
 charge.succeeded

我正在使用Stripe创建一个身份验证和捕获费用。我需要收费ID来确认/收取费用。

以下代码会产生费用,但在获得批准之前不会收费。

\Stripe\Charge::create(array(
    "amount" => $price,
    "currency" => "usd",
    "customer" => $custID, // obtained with Stripe.js
    "description" => "Charge for test@example.com",         
    "capture" => false
));

我以为我可以通过以下方式获得收费ID:

$chargeID = $charge->id;

因为这是我在创建客户时获取客户ID的方式。但是当我回显变量时,我什么也得不到,因为我想将它保存在数据库中,所以没有任何帮助。我到处都看,但找不到具体或近期的东西。

然后完成充电。我必须这样捕捉它:

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

这全部来自Stripe API参考,但它没有解释如何获取费用ID。它甚至没有告诉你如何获得客户ID,幸运的是,Stack Overflow也是如此。

这都是使用PHP完成的。

1 个答案:

答案 0 :(得分:7)

根据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 test@example.com",         
    "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对象。