1. //从 PayPal 出读取 POST 信息同时添加变量?cmd?
2. Enumeration en = request.getParameterNames();
3. String str = "cmd=_notify-validate";
4. while (en.hasMoreElements()) {
5. String paramName = (String) en.nextElement();
6. String paramValue = request.getParameter(paramName);
7. str = str + "&" + paramName + "="
8. + URLEncoder.encode(paramValue, "utf-8");
9. //此处的编码一定要和自己的网站编码一致,不然会出现乱码,paypal回复的通知为‘INVALID’
10. }
11. System.out.println("paypal传递过来的交易信息:" + str);
12. //建议在此将接受到的信息 str 记录到日志文件中以确认是否收到 IPN 信息
13. //将信息 POST 回给 PayPal 进行验证
14. //设置 HTTP 的头信息
15. //在 Sandbox 情况下,设置:
16. URL u = new URL("https://www.sandbox.paypal.com/cgi-bin/webscr");
17. //正式环境
18. // URL u = new URL("https://www.paypal.com/cgi-bin/webscr");
19. URLConnection uc = u.openConnection();
20. uc.setDoOutput(true);
21. uc.setRequestProperty("Content-Type",
22. "application/x-www-form-urlencoded");
23. PrintWriter pw = new PrintWriter(uc.getOutputStream());
24. pw.println(str);
25. pw.close();
26. //接受 PayPal 对 IPN 回发的回复信息
27. BufferedReader in = new BufferedReader(new InputStreamReader(
28. uc.getInputStream()));
29. String res = in.readLine();