我在前端(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 回答
慕容森
TA贡献1853条经验 获得超18个赞
这是curl_setopt($handle, CURLOPT_CAINFO, null) 的错误。它没有经过认证...在官方 sdk 中,我下载了 cacert.pem 文件并将其路径切换为 null,现在当 CURLOPT_SSL_VERIFYPEER 设置为 true 时可以正常工作。
- 1 回答
- 0 关注
- 142 浏览
添加回答
举报
0/150
提交
取消