我有一个 Laravel 项目,我在其中使用 GoCardless API 和来自https://github.com/gocardless/gocardless-pro-php的 PHP 客户端包装器。我已经像这样简单地设置了它。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use GoCardlessPro\Client;
class PaymentController extends Controller
{
/**
* Display the index page where we begin a payment flow.
*/
public function index(Request $request)
{
// Create a new instance of the GoCardLess Client.
$client = new Client([
'access_token' => config('gocardless.token'),
'environment' => config('gocardless.environment')
]);
$customers = $client->customers()->list();
dd($customers);
}
}
但是,每当我尝试进行 API 调用时,都会收到以下错误。
cURL 错误 60:SSL 证书问题:https://api-sandbox.gocardless.com/customers 的证书已过期(请 参阅https://curl.haxx.se/libcurl/c/libcurl-errors.html)
我在我的本地机器上使用 Laragon,提供的两件事是:
- 使用虚拟主机的漂亮 URL
- 您的 URL 的 SSL 证书
我觉得问题在于 Laragon SSL 证书是自签名的。
这是包含相关项目的文件夹。
我在 GitHub 上发现了一个相关问题 -> https://github.com/gocardless/gocardless-pro-php/issues/126
但是,我与一位 GoCardless 开发人员交谈,他们说了以下内容:
对于 SSL 问题,这很可能是您的 localhost 或 Laravel 上的问题 - 如果您的信任库中仍有过期的根 CA 证书,则 OpenSSL 可能正在构建错误 CA 证书的路径,因此认为它在它过期时已过期不应该。有关详细信息,请参阅此帖子: https ://www.openssl.org/blog/blog/2021/09/13/LetsEncryptRootCertExpire/ 我们的团队在一些运行 OpenSSL 1.0.2 的机器上遇到了这个问题,例如我使用 Mamp 运行我的 PHP,在更新了 Mamp 和 homebrew 之后,它随后更新了 openssl