【发布时间】:2012-01-02 04:24:28
【问题描述】:
我总是从贝宝沙箱收到“待处理”[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
它始终处于待处理状态,当与付款有关的所有内容都已完成并且测试帐户概览本身显示付款已完成时。
这就是为什么这部分代码因为“待处理”的事情而根本不起作用
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);
}
任何想法如何解决这个问题?或者为什么贝宝返回的响应会发生这种情况?
【问题讨论】:
-
币种相同时会出现这种情况吗? (如果你要美元而他用欧元支付,我认为状态将处于待处理状态)
-
我只用美元,我不知道在沙盒上它给了我一个待定状态,它已经完成了