Laravel Cashier Stripe_Event api键默认为NULL?

时间:2015-02-26 20:51:43

标签: php laravel webhooks

我正在使用Stripe及其webhooks。我有自己的控制器,扩展了Cashier自己的Webhook控制器。我注意到Cashier的webhook控制器有一个名为handleWebhook的方法,用于检查Stripe上是否存在事件:

public function handleWebhook()
{
    $payload = $this->getJsonPayload();

    if ( ! $this->eventExistsOnStripe($payload['id']))
    {
        return;
    }
    // More code...
}

protected function eventExistsOnStripe($id)
{
    try
    {
        return ! is_null(Stripe_Event::retrieve($id));
    }
    catch (Exception $e)
    {
        return false;
    }
}

现在Stripe_Event类有一个检索函数,apiKey作为其参数之一,默认为NULL:

  public static function retrieve($id, $apiKey=null)
  {
    $class = get_class();
    return self::_scopedRetrieve($class, $id, $apiKey);
  }

当我从Stripe收到webhook时,NULL apiKey阻止我执行我的代码。这个NULL值是故意的吗?我做错了什么?我错过了什么?

1 个答案:

答案 0 :(得分:0)

您需要手动设置Stripe API密钥。我还扩展了Cashier的webhook控制器并添加了这个构造函数:

public function __construct()
{
    Stripe::setApiKey(Config::get('services.stripe.secret'));
    Stripe::setApiVersion("2015-10-16"); // use your Stripe API version
}

不要忘记班级顶部的use Config, Stripe语句。