【问题标题】:PayPal certificate invalid or not foundPayPal 证书无效或未找到
【发布时间】:2013-03-19 03:13:39
【问题描述】:

在过去的几天里,我一直致力于使用 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 中包含的证书。所以我的猜测是这是一个无效的证书。我现在有点不知道该怎么做。有人知道如何解决这个问题吗?

【问题讨论】:

  • 确保payment_idpayer_id 是正确的。参考developer.paypal.com/webapps/developer/docs/api/…
  • 我的错,指出 PayPal 的错误响应。帖子已编辑。 PayPal 批准付款后收到的响应不会出现错误。尝试执行付款时弹出。
  • 当您发送多于一个的样品付款执行付款请求时,可能会发生这种情况,因此请检查是否有重复的语句($payment->execute($paymentExecution);)。证书问题只是一个警告,SDK 将使用捆绑的 CA 证书文件重试请求。
  • 检查了多个执行语句。付款只执行一次。关于证书问题:当我使用此代码curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); 关闭证书验证时,支付确实达到了已完成状态并且没有抛出 PPConnectionException。但是,由于安全措施,这不是一个可行的解决方案。

标签: certificate paypal


【解决方案1】:

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

付款状态。必须设置为以下之一: created; approved; failed; canceled; expired; pending。赋值 通过贝宝。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-17
    • 2014-09-30
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 2015-10-26
    • 2012-11-25
    相关资源
    最近更新 更多