【问题标题】:Paypal Checkout error: "SSL certificate problem: unable to get local issuer certificate"Paypal Checkout 错误:“SSL 证书问题:无法获取本地颁发者证书”
【发布时间】:2020-10-20 17:01:48
【问题描述】:

我在前端 (javascript) 上创建 paypal 订单并获取 orderId 和 payerId:

createOrder: async (data, actions) => {
          const item = await this.fetchPaypalItem()
          return actions.order.create({
            purchase_units: [
              {
                description: item.description,
                amount: {
                  value: item.description,
                }
              }
            ]
          })
      },

我收到我检查的 orderId 和 payerId。 在服务器端(Laravel)我使用官方库https://github.com/paypal/Checkout-PHP-SDK,当我尝试创建订单(来自贝宝文档)时出现错误:

public function createOrder(Request $request){

        $request = new OrdersCreateRequest();
        $request->prefer('return=representation');
        $request->body = self::buildRequestBody();
       // 3. Call PayPal to set up a transaction
        $client = PayPalClient::client();
        $response = $client->execute($request);
        return response()->json($response);

}

我检查了 $client 对象是空对象。我正在检查我的凭据,但没有问题,因为它正在使用 javascript。

我在该官方库的 HttpClient 类中更改了一行: $curl->setOpt(CURLOPT_SSL_VERIFYPEER, true); => $curl->setOpt(CURLOPT_SSL_VERIFYPEER, false); 现在它正在工作,但我担心它不安全。有什么解决方案可以解决这个问题吗?这样安全吗?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    curl_setopt($handle, CURLOPT_CAINFO, null) 出错。它没有被认证......在官方sdk中,我下载了cacert.pem文件并将其路径切换为null,现在当CURLOPT_SSL_VERIFYPEER设置为true时正在工作。

    【讨论】:

      猜你喜欢
      • 2016-07-17
      • 2019-04-12
      • 2018-06-20
      • 2015-03-18
      • 2011-12-26
      • 2018-03-07
      相关资源
      最近更新 更多