PayPal证书无效或未找到

时间:2013-03-28 15:33:56

标签: certificate paypal

在过去的几天里,我一直致力于使用PayPal SDK for PHP(使用REST API)实现支付集成。但是,我遇到了一些问题。

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

$payment = Payment::get($paymentId);
$paymentExecution = new PaymentExecution();
$paymentExecution->setPayer_id($payerId);
$payment->execute($paymentExecution);

它说付款无效:

  

{“name”:“PAYMENT_STATE_INVALID”,“message”:“此请求因付款的当前状态无效”,“information_link”:“https://developer.paypal.com/docs/api/#PAYMENT_STATE_INVALID”,“debug_id”:“223647e6e42fb” }

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

  

PPHttpConnection:找不到或没有找到证书颁发机构 - 使用捆绑的CA证书文件重试

我检查过以确保SDK找到SDK附带的证书。所以我的猜测是它是一个无效的证书。我现在有点不知所措。有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

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

  

付款状态。必须设置为以下之一:   created; approved; failed; canceled; expired; pending。分配的价值   通过PayPal。

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