Guzzle api 呼叫不在液滴上工作但在本地工作

Guzzle api call not working on droplet but working locally

嗨,我正在尝试从 api 获取令牌,但无论我在 Droplet 上尝试什么,我每次都会得到一个无效的客户端,代码在本地和 Droplet 上是相同的,目前在本地工作,但不在 droplet 上工作。

这是代码

return Cache::rememberForever('payment_token', function () {
    $client = new Client(['http_errors' => false]);

    $params = [
        'client_id' => env('CLIENT_ID'),
        'client_secret' => env('CLIENT_SECRET'),
        'grant_type' => 'client_credentials',
    ];

    $headers = [
        'Accept' => 'application/json',
    ];

    $response = $client->request('POST', 'https://apipay.io/auth/token/', [
        'json' => $params,
        'headers' => $headers
    ]);

    $res_body = json_decode($response->getBody()->getContents());

    return $res_body->access_token;
});

用于 post 的 url 不是真实的,我真的不认为 post 真实的是明智的,因为没有client_id 和 client_secret 我不能在这里 post。

液滴会干扰这个有什么原因吗?我该怎么做才能解决这个问题?

Double-check 远程 .env 文件并确保它不是某个过时的缓存版本(env() 会 return)。 Laravel 有这个功能,虽然没有考虑到这一点,但确实非常棘手(例如,它只是无缘无故地不起作用)。 php artisan cache:clear 清除 config-cache 并 php artisan config:cache 重新构建它;我什至认为生产默认使用缓存配置(这可能是那里的实际差异)。