Sto tentando la richiamata IPN, utilizzando la servlet. Il codice che sto usando è fornito da paypal per verificare i dati dell'ipn. Ma ogni volta ottengo una risposta INVALID.Sandbox paypal Ritorno IPN NON VALIDO
Ecco il codice:
Enumeration en = req.getParameterNames();
String str = "cmd=_notify-validate";
while (en.hasMoreElements()) {
String paramName = (String) en.nextElement();
String paramValue = req.getParameter(paramName);
//str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue,"UTF-8"); // for UTF-8 i set the encode format in my account as UTF-8
//str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue,"ISO-8859-1");// for ISO-8859-1 i set the encode format in my account as ISO-8859-1
str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue); //default as provided by paypal
}
URL u = new URL("http://www.sandbox.paypal.com/cgi-bin/webscr");
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
PrintWriter pw = new PrintWriter(uc.getOutputStream());
pw.println(str);
pw.close();
BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
String res = in.readLine();
in.close();
if (res.equals("VERIFIED") || !res.equals("VERIFIED")) {
//Update database...
} else if (res.equals("INVALID")) {
//INVALID
}
Ho controllato tutte e tre le possibilità offerte da PayPal in caso di ritorno paypal VALIDO come segue:
1) Parametri mancanti - Come io sono inviare tutti i parametri senza problema dei parametri mancanti
2) URL non valido. - Sto usando sandbox così URL è: http://www.sandbox.paypal.com/cgi-bin/webscr
3) Codifica dei caratteri. - Provato con codifica dei caratteri uguale alla codifica dei parametri di impostazione dell'account paypal.
la richiesta di I rimando a PayPal utilizzando i seguenti parametri:
cmd = _notify-convalidare & cognome = Utente & test_ipn = 1 & address_name = Test + utente & txn_type = web_accept & receiver_email = sellr1_1252495907_biz% 40gmail.com & residence_country = US & address_city = San Jose + & payment_gross = & payment_date = 01% 3A55% 3A04 + settembre + 26% 2C + 2009 + PDT & address_zip = 95131 & payment_ status = Completato & address_street = 1 + Main + St & first_name = Test & PAYER_EMAIL = buyer1_1252495751_per% 40gmail.com & protection_eligibility = idoneo & payer_id = BXBKS22JQCUWL & verify_sign = AOMkeg7ofCL7FJfioyWA19uCxD4XAgZirsjiGh8cUy1fd2YAqBwOkkst & payment_type = istante & affari = sellr1_1252495907_biz% 40gmail.com & address_country_code = US & mc_fee = 0.64 & address_status = confermato & transaction_subject = true + Su & quantità = 1 & notify_version = 2.8 & mc_currency = EUR & personalizzato = & addr ess_state = CA & payment_fee = & handling_amount = 0.00 & payer_status = verificato & il trasporto = 0.00 & item_name = true + Su & fiscale = 0.00 & username = hannonj & charset = windows-1252 & item_number = 567 & mc_gross = 10.00 & txn_id = 7F456350BS7942738 & receiver_id = MASSU6BSR9SC2 & address_country = Stati Uniti +
prega, uno può indirizzare al senso adeguato? Non riesco a ottenere ciò che è sbagliato nel codice o nell'URL o in qualsiasi altra cosa. Ho provato tutte le possibilità. Mi aiuti per favore.
che era esattamente il mio problema –