는 요청을 실패 처리에도 불구하고 "INVALID"를 반환페이팔 IPN은 지불이
요청 : cmd를 = & mc_gross = 2.00 & protection_eligibility = 대상 & address_status을 _notify - 검증 = 확인 & payer_id = LDYM496TZ5PMS & 세금 = 0.00 & address_street = 7 Malcom Ave Quarrington Hill & payment_date = 10 : 56 : 23 2014 년 7 월 10 일 PDT & payment_status = 완료 & cha RSET = 창-1252 & address_zip = DH6 4QT & FIRST_NAME = 가짜 & mc_fee = 0.38 & address_country_code = GB & ADDRESS_NAME = 가짜 가짜 & notify_version = 3.8 & 사용자 정의 = 168 & payer_status = 확인되지 않은 & [email protected] & = 0 & verify_sign = AO3SqMqkkL6g6znCfk.bTx0YGc9QAAC62A.uYD2AR27aMUKA8tjOenQg & [email protected] & txn_id = 0V51470288084925M & PA address_country = 연합 왕국 & address_city = 더럼 & 양 yment_type = 인스턴트 LAST_NAME = & & 가짜 address_state = & & [email protected] payment_fee = 0.38 = & receiver_id 43PTLVVM58JD4 txn_type = & & web_accept ITEM_NAME Hyubusa = & mc_currency = USD = & & ITEM_NUMBER residence_country = GB = 168 transaction_subject & & payment_gross = 2.00 & ipn_track_id = 8f6ab718d71f2
는 01,235 POST
실패 16,mc_gross = 2.00 & protection_eligibility = 대상 & address_status = 확인 & payer_id = LDYM496TZ5PMS & 세금 = 0.00 & address_street = 7 + 말콤 + 번가 %의 0D %의 0AQuarrington + 힐 & PAYMENT_DATE = 10 % 3A56 % 3A23 + 7월 + 10 % 2C + 2014 + PDT & PAYMENT_STATUS = 완료 & 캐릭터 세트 = 창-1252 & address_zip = DH6 + 4QT & FIRST_NAME = 가짜 & mc_fee = 0.38 & address_country_code = GB & ADDRESS_NAME = 가짜 + 가짜 & notify_version = 3.8 & 고객 사양 m = 168 & payer_status = 확인되지 않은 & 사업 = 가짜 % 40gmail.com & address_country = 미국 + 영국 & address_city = 더럼 & 수량 = 0 & verify_sign = AO3SqMqkkL6g6znCfk.bTx0YGc9QAAC62A.uYD2AR27aMUKA8tjOenQg & payer_email = 가짜 % 40gmail.com & txn_id = 0V51470288084925M & payment_type = instant & last_name = 가짜 & 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
그래서, 내 페이팔 IPN이 반환되는 무의식적 인 반응들 때때로! ... 샌드 박스에서 테스트 할 때 제대로 작동합니다. 내 자신의 참조 그것을 테스트 할 때 잘 작동합니다.
가끔 기부금을 받으면 돈이 나오지만 ... 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);
}
실패한 요청
요청 : cmd를 = _notify-유효성 확인 = & mc_gross = 2.00 & protection_eligibility = 적격 & address_status을 & payer_id = LDYM496TZ5PMS & 세금 = 0.00 & address_street = 7 말콤 Aar Quarrington Hill & payment_date = 10 : 56 : 23 2014 년 7 월 10 일 PDT & PAYMENT_STATUS = 완료 & 캐릭터 세트 = 창-1252 & address_zip = DH6 4QT & FIRST_NAME = 가짜 & mc_fee = 0.38 & address_country_code = GB & ADDRESS_NAME = 브랜든 가짜 & notify_version = 3.8 & 사용자 정의 = 168 & payer_status = 확인되지 않은 & 사업 = 가짜 @ gmail.com & address_country = 연합 왕국 & address_city = 더럼 & 수량 = 0 & verify_sign = AO3SqMqkkL6g6znCfk.bTx0YGc9QAAC62A.uYD2AR27aMUKA8tjOenQg & [email protected],txn_id 0V51470288084925M = & & PAYMENT_TYPE = 인스턴트 LAST_NAME = & 왓슨 address_state = & & [email protected] payment_fee = 0.38 = & receiver_id 43PTLVVM58JD4 txn_type = & & web_accept ITEM_NAME = & Hyubusa mc_currency = USD = & & ITEM_NUMBER residence_country = GB transaction_subject & & payment_gross = 168 = 2.00 = & ipn_track_id 8f6ab718d71f2
=
mc_gross = 2.00 & protection_eligibility = 대상 & address_status POST
실패 & payer_id = LDYM496TZ5PMS & 세금 = 0을 확인했다.00 & address_street = 7 + 말콤 + 아베 %의 0D %의 0AQuarrington + 힐 & PAYMENT_DATE = 10 % 3A56 % 3A23 + 7월 + 10 % 2C + 2014 + PDT & PAYMENT_STATUS = 완료 & 캐릭터 = 윈도우 1252 & address_zip = DH6 + 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.uYD2AR27aMU KA8tjOenQg & payer_email = 가짜 % 40gmail.com txn_id = & & 0V51470288084925M PAYMENT_TYPE = 인스턴트 LAST_NAME = & & 왓슨 address_state = & receiver_email = adamhyubusa % & 40gmail.com payment_fee = 0.38 = & receiver_id 43PTLVVM58JD4 txn_type = & & web_accept ITEM_NAME = & Hyubusa mc_currency USD = & & residence_country ITEM_NUMBER = GB = & & transaction_subject = 168 payment_gross = 2.00 = & ipn_track_id 8f6ab718d71f2
POST 데이터의 원시 덤프를 제공 할 수 있습니까? PayPal에서 생성 한 문자열을 원시 덤프하고 실패했을 때이를 다시 보낼 수 있습니다. 어떤 이유로 든 일치하지 않아야합니다. 내 추측은 특정 주문에 대한 데이터의 URL 인코딩 또는 특수 문자와 관련이 있습니다. –
이것은 실패한 요청이 보이는 방법입니다 ... ... 주 질문에 게시 –
그래, 당신은 그들이 다른 것을 볼 수 있습니다. 하나는 URL로 인코딩되고 다른 하나는 인코딩되지 않습니다. 당신은 그들이 당신에게 보낸 것과 똑같이 PayPal로 되돌려 보낼 수 있도록 그 위치를 알아야합니다. –