首页 > 解决方案 > laravel 和配置变量的问题

问题描述

我正在安装一个 Payment Getaway API,这表示我必须在 .env 中输入:

INSTAPAGO_KEY_ID = 74D4A278-C3F8-4D7A-9894-FA0571D7E023
INSTAPAGO_PUBLIC_KEY_ID = e9a5893e047b645fed12c82db877e05a

然后,当我运行付款度假以进行付款时,它会显示此错误:

The KeyId property is required.

Laravel 的 vendor 文件夹中出现错误的代码部分是这样的:

namespace Socialgest\Instapago;

use GuzzleHttp\Client;

class Instapago
{
const API_HOST = 'https://api.instapago.com/';
const TIMEOUT = 20.0;

protected $api_url;
protected $key_id;
protected $public_key_id;
protected $client;

public function __construct()
{
    $this->key_id = config('instapago.key_id');
    $this->public_key_id = config('instapago.public_key_id');
    $this->client = new Client([
        'base_uri' => self::API_HOST,
        'timeout'  => self::TIMEOUT,
    ]);
}

你怎么看,它正在调用一个配置变量,我不知道它来自哪里,所以我认为如果我像这样在 config/services.php 中添加:

return [

  'mailgun' => [
    'domain' => env('MAILGUN_DOMAIN'),
    'secret' => env('MAILGUN_SECRET'),
  ],

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

  'sparkpost' => [
    'secret' => env('SPARKPOST_SECRET'),
  ],

  'stripe' => [
    'model' => App\User::class,
    'key' => env('STRIPE_KEY'),
    'secret' => env('STRIPE_SECRET'),
  ],

  'instapago' => [
    'key_id' => env('INSTAPAGO_KEY_ID'),
    'public_key_id' => env('INSTAPAGO_PUBLIC_KEY_ID'),
  ],
];

它会工作,但我不知道为什么?它仍然找不到 KEY ID,它在 .env 中,所以我想知道问题出在哪里?

或者如何直接设置 .env 变量而不是 config 变量,我的意思是如何添加 env('INSTAPAGO_KEY_ID')

谢谢!

标签: laravel

解决方案


你能试试config('services.instapago.key_id')config('services.instapago.public_key_id')


推荐阅读