【问题标题】:How to get the charge ID from Stripe using PHP?如何使用 PHP 从 Stripe 获取费用 ID?
【发布时间】:2016-07-12 19:54:26
【问题描述】:

首先,我知道有人问过这个问题,但他们没有解释如何使用

 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 完成的。

【问题讨论】:

  • 您是否将变量分配给 charge::create() ?里面有什么?
  • $charge->id 应该可以工作,假设您使用的是$charge = \Stripe\Charge::create(...
  • $charge->id 在我的应用程序中工作。
  • 我不使用capture=>false,但我认为这不会有什么不同。
  • 确实没有。

标签: php stripe-payments


【解决方案1】:

根据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对象)。

【讨论】:

  • 谢谢。我不敢相信我忘记了任务。现在可以了。感谢所有回答的人。
  • @Maria,不客气。如果答案是正确的,欢迎您接受它或将其标记为有用。
  • 我会,但由于我的声望不到 15,所以公开展示的作用不大。
猜你喜欢
  • 2013-08-22
  • 1970-01-01
  • 2021-03-17
  • 2021-12-30
  • 2019-08-13
  • 2018-08-06
  • 1970-01-01
  • 2017-12-10
  • 2021-04-01
相关资源
最近更新 更多