2013-03-28 93 views
0

在过去的几天里,我一直致力于使用PayPal SDK for PHP(使用REST API)实现支付集成。不过,我一直在遇到一些问题。PayPal证书无效或未找到

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

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

它说的付款无效:

{ “名”: “PAYMENT_STATE_INVALID”, “消息”: “这个请求是无效的,由于支付的当前状态”,“information_link “:” https://developer.paypal.com/docs/api/#PAYMENT_STATE_INVALID”,‘debug_id’:‘223647e6e42fb’}

虽然搞清楚一切都错了(注意,样本包含的API也给了同样的错误),我碰到下面的行绊倒我的日志文件:

PPHttpConnection:无效或无认证机构发现 - 使用捆绑的CA证书文件重试

我检查,以确保该SDK定位SDK附带的证书。所以我的猜测是这是一个无效的证书。我现在有点不知所措了。有谁知道如何解决这个问题?

+0

确保'payment_id'和'payer_id'正确。请参阅https://developer.paypal.com/webapps/developer/docs/api/#execute-an-approved-paypal-payment – siddick

+0

我的不好,指出贝宝的错误回应。发布编辑。 PayPal批准付款后收到的回复不会发生错误。尝试执行付款时弹出。 –

+0

这可能发生,当您发送多个支付样本付款请求时,请检查是否存在任何重复的报表('$ payment-> execute($ paymentExecution);')。证书问题只是一个警告,SDK将重新发送捆绑CA证书文件的请求。 – siddick

回答

0

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

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

你可能跑了您的付款方法CreateCreate方法执行相同的子方法为Execute