即使付款已处理,贝宝IPN仍返回“无效”

亚当·赫布萨

失败的请求

request:cmd = _notify-validate&mc_gross = 2.00&protection_eligibility = Eligible&address_status = confirmed&payer_id = LDYM496TZ5PMS&tax = 0.00&address_street = 7 Malcom Ave Quarrington Hill&payment_date = 10:56:23 2014年7月10日PDT&address_stat&name = feet_char&t = name = 7&address_status = count = 4&windows_feed_char&= Q = 4&count_status == 4&windows_address = 6 = GB&ADDRESS_NAME =假fake¬ify_version=3.8&custom=168&payer_status=unverified&[email protected]&address_country=United英国及ADDRESS_CITY =达勒姆&量= 0&verify_sign = AO3SqMqkkL6g6znCfk.bTx0YGc9QAAC62A.uYD2AR27aMUKA8tjOenQg&PAYER_EMAIL =假@ gmail.com&txn_id = 0V51470288084925M&payment_type =即时与姓氏=假&ADDRESS_STATE = RECEIVER_EMAIL =假@ gmail的。 com&payment_fee = 0.38&receiver_id = 43PTLVVM58JD4&txn_type = web_accept&item_name = Hyubusa&mc_currency = USD&item_number =&residence_country = GB&transaction_subject = 168&payment_gross = 2.00&ipn_track_id = 8f6ab718d71f2

POST失败

mc_gross = 2.00&protection_eligibility =合格&address_status =已确认&payer_id = LDYM496TZ5PMS&tax = 0.00&address_street = 7 + Malcom + Ave%0D%0AQuarrington + Hill&payment_date = 10%3A56%3A23 + Jul + 10 = T&ed = 6&ed = 2C + 2014 4QT&FIRST_NAME =假&mc_fee = 0.38 address_country_code = GB&ADDRESS_NAME =假+假&notify_version = 3.8&定制= 168&payer_status =未经验证和业务=假%40gmail.com&ADDRESS_COUNTRY =美国+英国及ADDRESS_CITY =达勒姆&量= 0&verify_sign = AO3SqMqkkL6g6znCfk.bTx0YGc9QAAC62A.uYD2AR27aMUKA8tjOenQg&PAYER_EMAIL =假%40gmail.com&txn_id = 0V51470288084925M&payment_type =即时与姓氏= fake&address_state =&receiver_email = adamhyubusa%40gmail.com&payment_fee = 0.38&receiver_id = 43PTLVVM58JD4&txn_type = web_accept&item_name = Hyubusa&mc_currency = USD&item_number =&residence_country = GB&transaction_subject = 168&payment_gross = 2.00&ipn_track_id = 8f6ab718d71f2

因此,我的PayPal IPN有时会返回无效响应!...当我在沙盒上对其进行测试时,它可以正常工作。当我用自己的CC测试它时,它可以正常工作。

但是,有时候我收到捐款后,钱会通过...但是来自IPN的响应无效。

我在美国...当前失败的特定捐赠者是来自英国...我不知道那是否有任何意义。这是我的代码。

$request = "cmd=_notify-validate"; 
foreach ($_POST as $varname => $varvalue){
$email .= "$varnamefake: $varvalue\n";  
if(function_exists('get_magic_quotes_gpc') and get_magic_quotes_gpc()){  
    $varvalue = urlencode(stripslashes($varvalue)); 
}
else { 
    $value = urlencode($value); 
} 
$request .= "&$varname=$varvalue"; 
} 

$ch = curl_init();
//curl_setopt($ch,CURLOPT_URL,"https://www.sandbox.paypal.com/cgi-bin/webscr");
curl_setopt($ch,CURLOPT_URL,"https://www.paypal.com/cgi-bin/webscr");
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$request);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($ch);
curl_close($ch);
switch($result){
    case "VERIFIED":
        $message = "good: $".$_POST['mc_gross']." | ".$_POST['custom'];
        $amt = str_replace("$", "", $_POST['mc_gross']);
        $data = array(
               'STATUS' => 1,
               'AMOUNT' => $amt
        );

        $this->db->where('ID', $_POST['custom']);
        $this->db->update('donations', $data);        

    case "INVALID":
        $message ="bad";
        mail("[email protected]","paypal response", $message);
        break;
    default:
        $message ="other";
        mail("[email protected]","paypal response", $message);
}

失败的请求

request:cmd = _notify-validate&mc_gross = 2.00&protection_eligibility = Eligible&address_status = confirmed&payer_id = LDYM496TZ5PMS&tax = 0.00&address_street = 7 Malcom Ave Quarrington Hill&payment_date = 10:56:23 2014年7月10日PDT&address_stat&name = feet_char&t = name = 7&address_status = count = 4&windows_feed_char&= Q = 4&count_status == 4&windows_address = 6 = GB&ADDRESS_NAME =布伦丹fake¬ify_version=3.8&custom=168&payer_status=unverified&[email protected]&address_country=United英国及ADDRESS_CITY =达勒姆&量= 0&verify_sign = AO3SqMqkkL6g6znCfk.bTx0YGc9QAAC62A.uYD2AR27aMUKA8tjOenQg&PAYER_EMAIL =假@ gmail.com&txn_id = 0V51470288084925M&payment_type =即时与姓氏=屈臣氏ADDRESS_STATE = RECEIVER_EMAIL =假@ gmail的。 com&payment_fee = 0.38&receiver_id = 43PTLVVM58JD4&txn_type = web_accept&item_name = Hyubusa&mc_currency = USD&item_number =&residence_country = GB&transaction_subject = 168&payment_gross = 2.00&ipn_track_id = 8f6ab718d71f2

POST失败

mc_gross = 2.00&protection_eligibility =合格&address_status =已确认&payer_id = LDYM496TZ5PMS&tax = 0.00&address_street = 7 + Malcom + Ave%0D%0AQuarrington + Hill&payment_date = 10%3A56%3A23 + Jul + 10 = T&ed = 6&ed = 2C + 2014 4QT&FIRST_NAME =假&mc_fee = 0.38 address_country_code = GB&ADDRESS_NAME =假+假&notify_version = 3.8&定制= 168&payer_status =未经验证和业务=假%40gmail.com&ADDRESS_COUNTRY =美国+英国及ADDRESS_CITY =达勒姆&量= 0&verify_sign = AO3SqMqkkL6g6znCfk.bTx0YGc9QAAC62A.uYD2AR27aMUKA8tjOenQg&PAYER_EMAIL =假%40gmail.com&txn_id = 0V51470288084925M&payment_type =即时与姓氏= Watson&address_state =&receiver_email = adamhyubusa%40gmail.com&payment_fee = 0.38&receiver_id = 43PTLVVM58JD4&txn_type = web_accept&item_name = Hyubusa&mc_currency = USD&item_number =&residence_country = GB&transaction_subject = 168&payment_gross = 2.00&ipn_track_id = 8f6ab718d71f2

大卫·阮
if(function_exists('get_magic_quotes_gpc') and get_magic_quotes_gpc()){  
    $varvalue = urlencode(stripslashes($varvalue)); 
}
else { 
    $value = urlencode($value); 
} 

IPN变量已经进行了url编码,没有必要再次编码以将其发送回Paypal-这可能是某些事务起作用而另一些事务不起作用的原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章