IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Post Method - Servlet ou JSF


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut Post Method - Servlet ou JSF
    Bonjour,
    Je bloque sur un problème qui je pense a une résolution très simple.
    J'ai a envoyer une formulaire en method post, soit pas une backbean de jsf ou par un servlet.

    J'explique le processus, le client choisi un produit, puis les informations de payement sont envoyer au site de payement, mais je ne peux pas utiliser de formulaire directement dans la page car j'utilise IceFace et je crée une transaction dans ma base.

    Pour les servlets j'ai fait une method "bricolage" qui auto send le formulaire avec une variable javascript, et ca marche mais c'est pas propre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
                    out.println("<html>");
                    out.println("<head>");
                    out.println("<title>Servlet SendPayPal</title>");
                    out.println("</head>");
                    out.println("<body>");
                    out.println("<div align='center' class='Style1'><p>S&eacute;curisation du paiement en cour ... </p><p>Merci de patienter</p></div>");
                    out.println("<form method=post name=pay id=pay action='https://www.sandbox.paypal.com/cgi-bin/webscr' method='post'>");
                    out.println(FormGenerator.generateForm(listVaria));
                    out.println("</form>");
                    out.println("<SCRIPT LANGUAGE=JavaScript>");
                    out.println("document.pay.submit();");
                    out.println("</SCRIPT>");
                    out.println("</body>");
                    out.println("</html>");
    Si vous avez des idées, ou des tuto a proposé ça m'aiderais bien,
    merci de votre aide

  2. #2
    Membre expérimenté Avatar de wace
    Inscrit en
    Septembre 2003
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 224
    Par défaut
    Hi,

    Quel est le code généré par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    out.println(FormGenerator.generateForm(listVaria));
    Si je comprends bien ton probleme, tu veux forcé l'utilisation de la methode post pour envoyer ton formulaire a ton serveur?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    Bonjour,
    Merci de ton attention, car je cherche toujours une solution ^^

    Le morceau de code génère simplement des champs hidden :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public static String generateForm(ListVaria listVaria){
            StringBuffer buffer = new StringBuffer();
            int i = 0;
            for(PayVariable varia : listVaria.getListKey()){
                buffer.append("<input type='hidden' name='"+varia+"' value='"+listVaria.getListValue().get(i)+"'> \n\r");
                ++i;
            }
            return buffer.toString();
        }
    Ces données ne sont pas destiner a mon serveur mais au payement de type paypal.

    Si tu a une idée pour envoyer se formulaire, j'ai le même problème pour mon realm module. Que j'ai résolut avec une method Get (En attendent bien sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try { 
                    getExternalContext().redirect("j_security_check?j_username="+inputLogin.getValue().toString()+"&j_password="+inputPassword.getValue().toString());              
                } catch (IOException ex) {
                    Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex);
                }

  4. #4
    Membre expérimenté Avatar de wace
    Inscrit en
    Septembre 2003
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 224
    Par défaut
    Hi,

    Est ce normal que tu es deux fois method=post?
    Regarde sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    out.println("<form method=post name=pay id=pay action='https://www.sandbox.paypal.com/cgi-bin/webscr' method='post'>"

    Autre question pour comprendre le processus:
    Tu génére un formulaire que tu envois au client et qui execute la method submit au chargment de la page pour envoyer directement le formulaire au serveur paypal, c'est ca ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    Je t'envoie un exemple du formulaire généré.
    Ce formulaire s'envois de lui même et l'utilisateur fait aucune action, c'est le javascript qui fait l'action par document.send_tpe.submit();.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <form method=post name=send_tpe id=send_tpe action="https://www.paypal.com/cgi-bin/webscr" method="post">
    <input type="hidden" name="cmd" value="_xclick">
    <input type="hidden" name="item_number" value="3">
    <input type="hidden" name="amount" value="3">
    <input type="hidden" name="no_shipping" value="1">
    <input type="hidden" name="no_note" value="1">
    <input type="hidden" name="currency_code" value="EUR">
    <input type="hidden" name="lc" value="FR">
    <input type="hidden" name="bn" value="PP-BuyNowBF">
    <input type="hidden" name="first_name" value="">
    <input type="hidden" name="last_name" value="">
    <input type="hidden" name="address1" value="">
    <input type="hidden" name="address2" value="">
    <input type="hidden" name="city" value="">
    <input type="hidden" name="state" value="">
    <input type="hidden" name="zip" value="">
    <input type="hidden" name="email" value="">
    ...
    </form>
    <SCRIPT LANGUAGE=JavaScript>
    document.send_tpe.submit();
    </SCRIPT>

  6. #6
    Membre expérimenté Avatar de wace
    Inscrit en
    Septembre 2003
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 224
    Par défaut
    Et cette solution ne te conviens pas?

    Je t'avoue que sinon je ne comprends pas bien ce que tu veux de plus, mais n'hesite pas a nous faire par de tes questions et de tes doutes ... on est aussi la pour ca ... et on coute moins cher qu'un psy pour informaticien

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    C'était surtout pour trouver une méthode plus sécuriser.
    Car je trouve que c'est un peux de bricolage de faire ça, et surtout l'utilisateur peux capturer ces variables.
    Si je pouvez directement de ma page jsf envoyer les données form.
    Mais effectivement si il n'y a pas de solution autre je garde cela qui fonctionne

    Merci de votre aide, et si vous avez des suggestion n'hésiter pas.

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/12/2010, 09h42
  2. Réponses: 6
    Dernier message: 08/09/2010, 09h56
  3. POST entre servlets
    Par natoine dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 20/09/2009, 14h09
  4. Executer plusieurs POST method pour un URLLoader
    Par Nanard_ dans le forum Flex
    Réponses: 1
    Dernier message: 15/01/2009, 17h57
  5. URLConnection et Multiple POST method
    Par Nanard_ dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 15/01/2009, 15h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo