【问题标题】:Call to a member function on a non-object PHP [duplicate]调用非对象 PHP 上的成员函数 [重复]
【发布时间】:2016-01-01 13:40:23
【问题描述】:

我正在尝试使用 Cartalyst,这是一个用于 Stripe 支付的综合 PHP 库。这是他们文档的链接:https://cartalyst.com/manual/stripe/1.0。这是我要开始工作的代码:

$stripe    = \Stripe\Stripe::setApiKey('your-stripe-api-key');
$customers = $stripe->customers()->all();

foreach ($customers['data'] as $customer) {
    var_dump($customer['email']);
}

当我运行上面的代码时(在我的真实代码中我插入了我的 api),我收到以下错误:

在非对象中调用成员函数customers()

另外,这是生成自动加载文件的作曲家代码:

{
    "require": {
        "cartalyst/stripe": "~1.0",
        "stripe/stripe-php": "3.*"
    }
}

【问题讨论】:

  • var_dump($customers) 的结果是什么?
  • 您已经有客户了吗?此外,请确保在任何进一步查询之前使用$stripe = new Stripe();
  • @PedroLobito 是的,我们的 Stripe 帐户中有很多客户。
  • @three3 仅在答案确实解决了您的问题时才将问题标记为已解决。根据您在此处发布的内容,您已采用原始问题的答案,该答案只是将同一问题移至另一行。 :) 让我看看你原来的问题,看看能不能找到更好的答案。
  • @Sean 非常感谢。我同意你的看法!但是两个正在帮助的人一直坚持要我发布一个新问题,然后他们才能继续提供帮助。如果您阅读原始帖子中的 cmets,您会明白我在说什么。再次感谢您的帮助!

标签: php composer-php stripe-payments autoload


【解决方案1】:

我不知道cartalyst/stripe,但Stripe::setApiKey 不是静态方法。如果你以这种方式调用Stripe::setApiKey,它将返回NULL

按照文档的建议尝试,

$stripe = \Cartalyst\Stripe\Stripe::make('your-stripe-api-key');

$customers = $stripe->customers()->all();

foreach ($customers['data'] as $customer) {
    var_dump($customer['email']);
}

【讨论】:

  • 我刚刚尝试了您的代码并收到以下错误消息:Fatal error: Call to undefined method Stripe\Stripe::make() in。有什么想法吗?感谢您的帮助。
  • 我现在正在测试它。手指交叉!
  • 这解决了我的问题!非常非常感谢你!我希望这会在他们的文档中:)
猜你喜欢
  • 1970-01-01
  • 2010-09-08
  • 2015-10-14
  • 2012-01-21
  • 1970-01-01
  • 2011-05-28
  • 2014-06-05
相关资源
最近更新 更多