在过去的几天里,我一直致力于使用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附带的证书。所以我的猜测是它是一个无效的证书。我现在有点不知所措。有人知道如何解决这个问题吗?
答案 0 :(得分:0)
在运行执行之前,您应该始终检查付款state
。该错误表示付款已执行
付款状态。必须设置为以下之一:
created; approved; failed; canceled; expired; pending
。分配的价值 通过PayPal。
您可能在付款时运行了Create
方法,Create
方法执行与Execute
相同的子方法。