Certificate PayPal证书无效或未找到

Certificate PayPal证书无效或未找到,certificate,paypal,Certificate,Paypal,在过去的几天里,我一直在使用PayPalSDK For PHP(使用RESTAPI)实现支付集成。但是,我遇到了一些问题 当付款人被重定向到PayPal站点以批准其付款并重定向回返回URL时,PayPal在执行批准的付款时返回HTTP 400状态代码。执行付款的代码如下所示。请注意,$paymentId是创建付款后返回的ID,$payerId是随批准一起发送的payerId $payment = Payment::get($paymentId); $paymentExecution = new

在过去的几天里,我一直在使用PayPalSDK For PHP(使用RESTAPI)实现支付集成。但是,我遇到了一些问题

当付款人被重定向到PayPal站点以批准其付款并重定向回返回URL时,PayPal在执行批准的付款时返回HTTP 400状态代码。执行付款的代码如下所示。请注意,$paymentId是创建付款后返回的ID,$payerId是随批准一起发送的payerId

$payment = Payment::get($paymentId);
$paymentExecution = new PaymentExecution();
$paymentExecution->setPayer_id($payerId);
$payment->execute($paymentExecution);
它说付款无效:

{“名称”:“付款状态无效”,“消息”:“由于付款的当前状态,此请求无效”,“信息链接”:“调试id”:“223647e6e42fb”}

在找出所有错误的地方时(请注意,API中包含的示例也给出了相同的错误),我在日志文件中偶然发现了以下行:

PPHttpConnection:无效或未找到证书颁发机构-正在使用绑定的CA证书文件重试


我检查以确保SDK找到SDK中包含的证书。所以我猜这是一个无效的证书。我现在有点不知所措,不知该怎么办。有人知道如何解决这个问题吗?

在运行execute之前,您应该始终检查您的付款状态。该错误表示已执行付款

付款国。必须设置为以下选项之一:
创建;经核准的;失败;取消;期满;挂起
。赋值 贝宝


您可能在付款时运行了
Create
方法,而
Create
方法执行的子方法与
Execute

相同,请确保
付款id
付款人id
正确。参考我的错误,指向贝宝的错误回复。后期编辑。PayPal批准付款后收到的响应中未出现错误。它在尝试执行付款时弹出。当您为示例付款发送多个execute payment请求时,可能会出现这种情况,因此请检查是否有重复的对账单(
$payment->execute($paymentExecution);
)。证书问题只是一个警告,SDK将使用绑定的CA证书文件重试该请求。已检查多个execute语句。付款只执行一次。关于证书问题:当我使用以下代码关闭证书验证时
curl\u setopt($ch,CURLOPT\u SSL\u VERIFYPEER,0)付款实际达到完成状态,并且未引发PPConnectionException。然而,由于安全措施,这不是一个可行的解决方案。