为什么我在paypal沙盒上收到payment_status待定?

sas*_*ori 3 php paypal

我总是收到来自paypal沙箱的"待定"[payment_status]响应,这就是我将数据插入数据库的代码根本不起作用的原因.每当我结帐并完成付款时,这是从返回的数据中获得的响应

Array
(
    [mc_gross] => 12.00
    [protection_eligibility] => Ineligible
    [address_status] => confirmed
    [item_number1] => 2
    [payer_id] => TRCLJTHLNCJ7Q
    [tax] => 0.00
    [address_street] => 1 Main St
    [payment_date] => 20:15:44 Jan 01, 2012 PST
    [payment_status] => Pending
    [charset] => windows-1252
    [address_zip] => 95131
    [mc_shipping] => 10.00
    [mc_handling] => 0.00
    [first_name] => Test
Run Code Online (Sandbox Code Playgroud)

当支付的所有内容完成且测试帐户概述本身显示付款已完成时,它始终处于待处理状态.

这就是为什么这部分代码因为"待定"的事情而根本不起作用的原因

if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {

    if ($_POST['payment_status'] == 'Completed'
          && no_paypal_trans_id($_POST['txn_id'])
            && $paypal_email == $_POST['receiver_email']
            && $paypal_currency == $_POST['mc_currency']
            && payment_amount_correct($shipping, $_POST)
            )
    {
     // process payment
         create_order($_POST);

    }

}
else if (strcmp ($res, "INVALID") == 0) {
// log for manual investigation
}
}
fclose ($fp);
}
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决这一问题 ?或者为什么这会发生在贝宝的回复上?

Rob*_*ert 13

https://developer.paypal.com/ >'测试帐户' 上关闭帐户的"付款审核".

注意:此信息也可在"pending_reason"响应中获得,该响应将提供更多描述性信息,以便其等待(因为您可能会在实时环境中看到这种情况发生在PayPal或echeck交易的付款审核中).