我总是收到来自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交易的付款审核中).