Let's see, you could google this search query: +java +code +post +paypal

You'll find this page which explains it all very nicely on how to post to
PayPal:
http://www.paypaldev.org/topic.asp?TOPIC_ID=228

My personal code is very similar to it.  I'm not the best coder so don't be
too critical of my code.  Below is a snippet of my method that does a POST
(HTTPS) to Verisign's PayFlowLink.  It shouldn't take much for you to do the
same to adapt it to HTTP(S?) Post to PayPal.

// BEGIN RELEVANT CODE SNIPPETS

// The basics are to put these things in your method:

// Add a security provider to allow SSL POSTs:
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

// Set a handler for SSL (not sure how this is different from the above
System.setProperty("java.protocol.handler.pkgs",
                "com.sun.net.ssl.internal.www.protocol");

try {
        // Setup the URL:
        URL url = new URL("https://payflowlink.verisign.com/RunTrans.cfm";);

        // Setup the connection object:
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();

        // Setup the query string --- WARNING this below is for
        // Verisign PayFlowLink, NOT PAYPAL!
        String separators = new String("&");
        StringBuffer parms = new StringBuffer("SOMETHING=SOMEVALUE" + separator);
        parms.append("PARAMTWO=VALUETWO" + separator);
        parms.append("PARAMTHREE=VALUETHREE" + separator);
        // An echo print for your testing mode (remove in production!!!!)
        System.out.println("Verisign POST is: " + parms.toString());

        // Use a byte array for the String in the connection and set various
        // properties for the connection
        byte[] bytes = parms.toString().getBytes();
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Content-Type",
                        "application/x-www-form-urlencoded");
        conn.setRequestProperty("Content-length",
                        String.valueOf(bytes.length));
        conn.setDoInput(true);
        conn.setDoOutput(true);
        OutputStream out = null;

        // Perform the HTTPS POST
        try {
                out = conn.getOutputStream();
                out.write(bytes);
                out.flush();
                out.close();
        } catch (Exception e) {
                System.out.println(
                "Error opening OutputStream from Verisign Payment Post is:"
                    + e.getMessage());
                return (false);
        }

        // Read the returned information
        BufferedReader reader =
                new BufferedReader(
                new InputStreamReader(conn.getInputStream()));

        // Figure out how to read it.  I use Perl5Utils to scan through
        // my Verisign result for specific error codes
        response = reader.readLine();

} catch (MalformedURLException mue) {
        System.out.println("Verisign Purchase: Bad URL, aborting.");
      return (false);
} catch (IOException ioe) {
        System.out.println(
                "Verisign Purchase: Failed Internet Connection Attempt.");
        return (false);
}

// END RELEVANT CODE SNIPPETS

Regards,
David

-----Original Message-----
From: Wendy Smoak [mailto:[EMAIL PROTECTED]
Sent: Friday, September 10, 2004 7:16 PM
To: Struts Users Mailing List
Subject: Re: Create and submit POST form from Action


From: "mail" <[EMAIL PROTECTED]>
> I populate my cart, and paypal expects a POST form submission to present
> the user with the payment forms (register/login/submit payment),
> and after the user submits or cancels the payment, paypal would submit a
> reply form to my site ... at least this is the flow I understand from the
> paypal developer docs.

AFAIK they do their thing and either post to your 'success' page or your
'failure' page.  So if you make your 'success' page a URL that maps to an
Action... wouldn't that do it?

You may also want to go talk with these guys:
http://www.paypaldev.org/topic.asp?TOPIC_ID=3239

--
Wendy Smoak


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to