首先,我知道这个问题已被提出,但他们没有解释如何使用
来获取信息 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完成的。
答案 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
对象。