Question

Je suis en train rappel IPN, en utilisant servlet. Le code que je utilise est fourni par paypal pour vérifier les données IPN. Mais chaque fois que j'obtenir un Infirme réponse.

Voici le code:

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   
    }

J'ai vérifié les trois possibilités offertes par paypal en cas de retour paypal VALIDE comme suit:

1) Paramètres manquants - Comme je suis envoyer tous les paramètres aucun problème de paramètres manquants

2) URL non valide. - J'utilise bac à sable est donc URL: http://www.sandbox.paypal.com / cgi-bin / webscr

3) de codage de caractère. -. Essayé avec codage de caractères identique paramètre de réglage compte paypal encodage

la demande Je RENVOYER à paypal en utilisant les paramètres suivants:

  

cmd = _notify-validate & last_name = User & test_ipn = 1 & address_name = Test + utilisateur & 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 + septembre + 26% 2C + 2009 + PDT & address_zip = 95131 & payment_status = Terminé & address_street = 1 + Main + St & prenom = test & PAYER_EMAIL = buyer1_1252495751_per% 40gmail.com & protection_eligibility = Eligible & payer_id = BXBKS22JQCUWL & verify_sign = AOMkeg7ofCL7FJfioyWA19uCxD4XAgZirsjiGh8cUy1fd2YAqBwOkkst & payment_type = instant & business = sellr1_1252495907_biz% 40gmail.com & address_country_code = US & mc_fee = 0,64 & address_status = confirmed & transaction_subject = True + Up & quantité = 1 & notify_version = 2,8 & mc_currency = EUR & custom = & address_state = CA & payment_fee = & handling_amount = 0.00 & payer_status = vérifié & expédition = 0.00 & item_name = True + Up & taxes = 0.00 & username = hannonj & charset = windows-1252 & item_number = 567 & mc_gross = 10.00 & txn_id = 7F456350BS7942738 & receiver_id = MASSU6BSR9SC2 & address_country = Etats + Unis

S'il vous plaît, quelqu'un peut me diriger vers la bonne direction? Je ne reçois pas ce qui est mal le code ou l'URL ou toute autre chose. J'ai essayé toutes les possibilités. S'il vous plaît aidez-moi.

Était-ce utile?

La solution 3

Merci les gars pour votre réponse. ohhh Je l'ai résolu enfin.

En fait, en aviser URL J'ai aussi ajouté un paramètre de nom d'utilisateur. Paypal veulent les valeurs des paramètres pour IPN même que revenir au servlet. (Vous pouvez l'obtenir comme req.getParameterNames ()). Comme je l'ai paramètre nom d'utilisateur supplémentaire, qui n'est pas connu paypal. Paypal rentrait VALIDE.

scroll top