我在前端(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); 现在它正在工作,但我担心它并不安全。任何解决该问题的方法,那样安全吗?
答案 0 :(得分:0)
curl_setopt($ handle,CURLOPT_CAINFO,null)是错误。它没有经过认证...在官方的sdk中,我下载了cacert.pem文件,并将其路径切换为null,并且当CURLOPT_SSL_VERIFYPEER设置为true时,现在可以正常工作。