我try 使用条纹发送API请求,但收到错误消息:

cURL错误60:SSL证书问题:无法获取本地颁发者证书

以下是我正在运行的代码:

public function chargeStripe()
{
    $stripe = new Stripe;
    $stripe = Stripe::make(env('STRIPE_PUBLIC_KEY'));

    $charge = $stripe->charges()->create([
        'amount'   => 2900,
        'customer' => Input::get('stripeEmail'),
        'currency' => 'EUR',
    ]);

    return Redirect::route('step1');
}

我在谷歌上搜索了很多,很多人建议我下载这个文件:cacert.pem,把它放在某个地方,然后在我的php.ini中引用它.这是我的php.ini中的部分:

curl.cainfo = "C:\Windows\cacert.pem"

然而,即使在多次重启服务器并更改路径后,我仍会收到相同的错误消息.

我在Apache中启用了ssl_模块,在我的php.ini中启用了php_curl.

我也try 过这个方法:How to fix PHP CURL Error 60 SSL

建议我在curl 选项中添加以下线条:

curl_setopt($process, CURLOPT_CAINFO, dirname(__FILE__) . '/cacert.pem');
curl_setopt($process, CURLOPT_SSL_VERIFYPEER, true);

我应该在哪里给我的卷发添加选项?显然不是通过命令行,因为我的CLI找不到命令"curl_setopt"

推荐答案

如何解决这个问题:

  • 按照https://curl.se/docs/caextract.html中的说明下载并提取cacert.pem

  • 将其保存在文件系统中的某个位置(例如,XAMPP用户可能使用C:\xampp\php\extras\ssl\cacert.pem)

  • 在你的php中.ini,把这个文件位置放在[curl]部分(把它放在[openssl]部分也是个好主意):

[curl]
curl.cainfo = "C:\xampp\php\extras\ssl\cacert.pem"

[openssl]
openssl.cafile = "C:\xampp\php\extras\ssl\cacert.pem"
  • 重新启动Web服务器(例如Apache)和PHP FPM服务器(如果适用

(档号:https://laracasts.com/discuss/channels/general-discussion/curl-error-60-ssl-certificate-problem-unable-to-get-local-issuer-certificate)

Php相关问答推荐

如何在不打开页面的情况下制作收件箱

如何在产品首页的产品标题下显示可变产品的自定义字段

提交表格后的重定向不起作用

产品ACF值在WooCommerce我的账户订单的附加列中为空

PHP Array to Powershell exec命令Args

PHP DateInterval天数不一致

在WooCommerce中禁用客户用户角色的纳税计算

有没有可能从composer 过时的输出中隐藏不需要的主要版本?

当配置的URL为空时禁用Laravel Slack日志(log)记录

只收取WooCommerce中最高的运费

移动应用:在PHP中忽略Cookie?

如何按类别过滤自定义帖子类型

按日期向 WooCommerce 中的我的帐户订单添加过滤器

如果在 APIPlatform 3.1 中的同一资源上使用处理器,Messenger 将无法工作

图片上传成功

为什么 php 只能在我的 Nginx Web 服务器的某些目录中工作?

根据WooCommerce中的产品重量更改简单产品的输入数量步值

Woocommerce的数量和价格条件

在 Laravel、Vuejs 和 Inertia 中配置 TypeScript 的问题

在 WordPress 中使用 $wpdb 运行 MySQL 事务是否安全?