Laravel 5 Laravel:没有提供API密钥。(提示:使用Stripe::setApiKey()设置API密钥)

Laravel 5 Laravel:没有提供API密钥。(提示:使用Stripe::setApiKey()设置API密钥),laravel-5,stripe-payments,Laravel 5,Stripe Payments,是的,我知道,那里有一个完全相同的问题,但“解决方案”没有得到批准,也没有得到应有的规定 因此: 1) 我通过php composer.phar require stripe/etc安装了stripe库v.3.0 它安装得很好(否则我就不会收到那个错误了) 2) 我有在头部的刀片形式的公共测试密钥 3) 然后在控制器中,我将从以下表单接收数据的公共函数包括在内:(没问题,不是我真正的密钥) 3) 我还将其作为 STRIPE_API_SECRET='sk_test_1VJeJsvj7l2ft2eX

是的,我知道,那里有一个完全相同的问题,但“解决方案”没有得到批准,也没有得到应有的规定

因此: 1) 我通过php composer.phar require stripe/etc安装了stripe库v.3.0

它安装得很好(否则我就不会收到那个错误了)

2) 我有在头部的刀片形式的公共测试密钥

3) 然后在控制器中,我将从以下表单接收数据的公共函数包括在内:(没问题,不是我真正的密钥)

3) 我还将其作为

STRIPE_API_SECRET='sk_test_1VJeJsvj7l2ft2eXXsevDD'
并从config/services.php调用

'stripe' => [
        'model'  => App\User::class,
        'key'    => '',
        'secret' => env('STRIPE_API_SECRET'),
    ],
但我一直在犯这个错误

SO的另一个同样的问题说,它通过以下方式“解决”了它:

这是完全模糊的,不准确的,不知道他在说什么


有人知道吗?非常感谢

我遇到了类似的问题,这是因为在config/services/php中配置了两次“stripe”。您真的确定config/services.php中只有一个“stripe”实例吗

下面是我使用Stripe的config/services.php示例,供参考:

<?php
return [
'mandrill' => [
    'secret' => env('MANDRILL_SECRET'),
],

'ses' => [
    'key'    => env('SES_KEY'),
    'secret' => env('SES_SECRET'),
    'region' => 'us-east-1',
],

'stripe' => [
    'model'  => 'App\Models\User',
    'key'    => env('STRIPE_API_PUBLIC'),
    'secret' => env('STRIPE_API_SECRET'),
],
];

如果查看可计费的
代码:

/**
 * Get the Stripe API key.
 *
 * @return string
 */
public static function getStripeKey()
{
    return static::$stripeKey ?: getenv('STRIPE_SECRET');
}

/**
 * Set the Stripe API key.
 *
 * @param  string  $key
 * @return void
 */
public static function setStripeKey($key)
{
    static::$stripeKey = $key;
}
它希望定义静态变量或
STRIPE\u SECRET
环境变量

答案有点模糊,但提供了一个解决方案。在您的
AppServiceProvider
中:

public function register()
{
    \App\Models\User::setStripeKey(\Config::get('services.stripe.secret'));
}

设置公共静态$apiKey='sk_test_your api key';从stripe.php中,我遇到了同样的问题,并通过在控制器构造函数中手动设置密钥来解决它,如下所示:

class SubscriptionController extends Controller {

    public function __construct() {
        Stripe::setApiKey(env('STRIPE_SECRET'));
    }

    public function getPlans() {
        dd(Plan::all());
    }
}
尝试清除缓存

php artisan config:cache

class SubscriptionController extends Controller {

    public function __construct() {
        Stripe::setApiKey(env('STRIPE_SECRET'));
    }

    public function getPlans() {
        dd(Plan::all());
    }
}
php artisan config:cache