Paypal Checkout错误:“ SSL证书问题:无法获取本地发行者证书”

时间:2020-06-30 11:41:46

标签: php laravel

我在前端(javascript)上创建贝宝订单,并获取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,并且在尝试通过Paypal文档创建订单时遇到错误:

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); 现在它正在工作,但我担心它并不安全。任何解决该问题的方法,那样安全吗?

1 个答案:

答案 0 :(得分:0)

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