我正在用PHP实现paypal支付。此时,代码的目标是沙箱。
在处理
之后 $result = $payment->execute($objPaymentExecution, $apiContext)
结果对象中的state
为pending
。
是因为沙箱吗?状态是否会在活动(非沙盒)请求中完成或批准?
当状态为pending时应该处理什么?
卖方应该在待定状态下分发货物吗?
PS: Rest-API-Kit的示例得到相同的结果!
在不知道你发送的所有数据的情况下,很难确定。
但在"现实生活"的PayPal中,Pending状态通常意味着买方试图使用银行账户中的钱(可能他们的PayPal账户中没有足够的资金)进行支付,这是eCheque。这可能需要长达10天的时间来清除,此时您的IPN系统应该会收到一个新的通知,说付款已完成。
这里有一个关于未决付款的类似问题。两个答案都给出了未付款的原因:
关于未决付款的堆栈问题
我复制粘贴了上面问题的部分答案:Payment状态处于pending状态还有另一个原因。如果您正在发送doAuthorization,那么资金将始终处于待处理状态,直到您捕获资金。
直接来自PayPal文档:例如,未结算授权的PaymentStatus设置为Pending;但是,它的PendingReason被设置为authorization,这与付款审核无关。