【问题标题】:Integrate Paypal in Web Application using Java使用 Java 将 Paypal 集成到 Web 应用程序中
【发布时间】:2011-12-20 23:07:20
【问题描述】:

我想将 paypal 集成到我的 Web 应用程序中。我正在使用 RESTEasy API 来处理宁静的请求。我想知道如何在我的应用程序中集成贝宝。我已经从他们的网站下载了 paypal java sdk,但现在我没有很好的应用程序可以帮助我将 paypal 集成到我的应用程序中。任何人都可以推荐任何网站,在网站中逐步集成贝宝或简单易懂吗?

【问题讨论】:

    标签: java paypal


    【解决方案1】:

    Paypal 提供了一些examples 甚至是wizard,它们会为您生成一些代码。

    在之前的链接下线后,从这个小教程开始:https://developer.paypal.com/docs/checkout/integrate/#

    【讨论】:

      【解决方案2】:

      我们必须按照以下步骤在 java web 应用程序中配置 paypal。这里我展示了 Paypal 到 Paypal 和 CreditCard 到 Paypal 支付的配置。

      1.创建一个沙盒帐户。
      2.创建网络应用程序。
      3.将以下struts2操作与您的代码集成。如果您想与任何其他操作一起使用,则只需采用方法并直接使用。

      public class PaypalAction extends ActionSupport implements SessionAware {
      
      
          private static final long serialVersionUID = 1L;
          private String resultString;
          private String token;
      
          @SuppressWarnings("rawtypes")
          private Map finalMap = new HashMap();
      
          public void paypalPay() {
              HttpServletRequest request = ServletActionContext.getRequest();
              HttpServletResponse response = ServletActionContext.getResponse();
              Integer payPercent = 10;     
              Map result = new HashMap();
              String data1 = "";
      
              try {
                  data1 = URLEncoder.encode("USER", "UTF-8") + "="+ URLEncoder.encode("Sandbox UserName","UTF-8");
                  data1 += "&" + URLEncoder.encode("PWD", "UTF-8") + "="+ URLEncoder.encode("Sandbox Password", "UTF-8");
                  data1 += "&" + URLEncoder.encode("SIGNATURE", "UTF-8") + "="+ URLEncoder.encode("Sandbox Signature","UTF-8");
                  data1 += "&" + URLEncoder.encode("METHOD", "UTF-8") + "="+ URLEncoder.encode("SetExpressCheckout", "UTF-8");
      
                  data1 += "&" + URLEncoder.encode("RETURNURL", "UTF-8") + "=" + URLEncoder.encode(request.getRequestURL().toString().replaceAll(request.getServletPath(), "") + "/successPage","UTF-8");
                  data1 += "&" + URLEncoder.encode("CANCELURL", "UTF-8") + "="+ URLEncoder.encode(request.getRequestURL().toString().replaceAll(request.getServletPath(), "") + "/failurePage",   "UTF-8");
      
                  data1 += "&" + URLEncoder.encode("VERSION", "UTF-8") + "="+ URLEncoder.encode("104.0", "UTF-8");            
                  data1 += "&" + URLEncoder.encode("AMT", "UTF-8")+ "=" + URLEncoder.encode("10", "UTF-8");                       
                  data1 += "&" + URLEncoder.encode("CURRENCYCODE", "UTF-8") + "=" + URLEncoder.encode("USD", "UTF-8");            
                  data1 += "&" + URLEncoder.encode("L_NAME0", "UTF-8") + "=" + URLEncoder.encode("Sample Test", "UTF-8");
                  data1 += "&" + URLEncoder.encode("L_AMT0", "UTF-8") + "=" + URLEncoder.encode("10", "UTF-8");                   
                  data1 += "&" + URLEncoder.encode("CUSTOM", "UTF-8") + "="+ URLEncoder.encode("Thank You For business","UTF-8");         
                  data1 += "&" + URLEncoder.encode("DESC", "UTF-8") + "=" + URLEncoder.encode("Product Details", "UTF-8");                    
                  data1 += "&" + URLEncoder.encode("NOSHIPPING", "UTF-8") + "="+ URLEncoder.encode("1", "UTF-8");
      
      
              } catch (UnsupportedEncodingException e) {
                  e.printStackTrace();
              }
              result = post(data1);
      
      
      
              Iterator<?> iter = result.entrySet().iterator();
      
              while (iter.hasNext()) {
                  Map.Entry mEntry = (Map.Entry) iter.next();
      
              }
      
              if(result!=null){
      
                  token = (String) result.get("TOKEN");
                  String url = "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express"+ "-" + "checkout&token=" + (String) result.get("TOKEN");
                  try {
                      response.sendRedirect(url);
                  } catch (IOException e) {
      
                      e.printStackTrace();
                  }
      
              }
      
      
          }
      
          public String successPage() {
              HttpServletRequest request = ServletActionContext.getRequest();
      
              String payerID = request.getParameter("PayerID");
              String token=request.getParameter("token");
              doPaypalPayment(payerID,token);
              return "success";
          }
      
      
          public String failurePage()
          {
      
              return "failurePage";
          }
      
      
          public void doPaypalPayment(String payerID, String token2) {
              Map result = new HashMap();
              String data = "";
              try {
      
                  data1 = URLEncoder.encode("USER", "UTF-8") + "="+ URLEncoder.encode("Sandbox UserName","UTF-8");
                  data1 += "&" + URLEncoder.encode("PWD", "UTF-8") + "="+ URLEncoder.encode("Sandbox Password", "UTF-8");
                  data1 += "&" + URLEncoder.encode("SIGNATURE", "UTF-8") + "="+ URLEncoder.encode("Sandbox Signature","UTF-8");
      
                  data += "&" + URLEncoder.encode("METHOD", "UTF-8") + "="+ URLEncoder.encode("DoExpressCheckoutPayment", "UTF-8");
                  data += "&" + URLEncoder.encode("PAYERID", "UTF-8") + "="+ URLEncoder.encode(payerID, "UTF-8");
                  data += "&" + URLEncoder.encode("PAYMENTACTION", "UTF-8") + "="+ URLEncoder.encode("Sale", "UTF-8");
                  data += "&" + URLEncoder.encode("TOKEN", "UTF-8") + "="+ URLEncoder.encode(token2, "UTF-8");
                  data += "&" + URLEncoder.encode("AMT", "UTF-8") + "="+ URLEncoder.encode("10", "UTF-8");
                  data += "&" + URLEncoder.encode("VERSION", "UTF-8") + "="+ URLEncoder.encode("104.0", "UTF-8");
                  data += "&" + URLEncoder.encode("CURRENCYCODE", "UTF-8") + "="+ URLEncoder.encode("USD", "UTF-8");
      
              } catch (UnsupportedEncodingException e) {
                  e.printStackTrace();
              }
      
              result = post(data);    
          }
      
      
           public void deformatNVP()
              {   
                  try
                  {
                      String delims = "[&]";
                      String equals = "[=]";
                      String[] tokens = this.resultString.split(delims);
      
                      for(int i = 0; i < tokens.length; i++)
                      {
                          String[] newTokens = tokens[i].split(equals);
                          this.finalMap.put(URLDecoder.decode(newTokens[0], "UTF-8"), URLDecoder.decode(newTokens[1], "UTF-8"));
                      }
      
                  } catch (Exception e) {
                      System.out.println(e.toString());
                  }
                  //return finalMap;
              }
      
              public Map post(String data)
              {
                  try
                  {
                      //Connect to the url
                      URL url = new URL("https://api-3t.sandbox.paypal.com/nvp");
                      URLConnection conn = url.openConnection();
                      conn.setDoOutput(true);
                      OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
                      //Post the data
                      wr.write(data);
                      wr.flush();
      
                      // Get the response
                      BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                      this.resultString = rd.readLine();
                      deformatNVP();
                      wr.close();
                      rd.close();
      
                  } catch (Exception e) {
                      System.out.println(e.toString());
                  }
                  return finalMap;  
              }
      
      
      
      
      
              @Override
              public void setSession(Map<String, Object> arg0) {
                  // TODO Auto-generated method stub
      
              }
      
      
               public void doPaypalPaymentWithCreditCard() {
                      try 
                      {
                          //Load the caller service
      
                          //Create a new map to hold the result
                          Map result = new HashMap();
      
                          // Construct data request string
                         String data1 = URLEncoder.encode("USER", "UTF-8") + "="+ URLEncoder.encode("Sandbox UserName","UTF-8");
                         data1 += "&" + URLEncoder.encode("PWD", "UTF-8") + "="+ URLEncoder.encode("Sandbox Password", "UTF-8");
                         data1 += "&" + URLEncoder.encode("SIGNATURE", "UTF-8") + "="+ URLEncoder.encode("Sandbox Signature","UTF-8");                    data += "&" + URLEncoder.encode("METHOD", "UTF-8") + "=" + URLEncoder.encode("DoDirectPayment", "UTF-8");
                          data += "&" + URLEncoder.encode("AMT", "UTF-8") + "=" + URLEncoder.encode("20.10", "UTF-8");
                          data += "&" + URLEncoder.encode("VERSION", "UTF-8") + "=" + URLEncoder.encode("80.0", "UTF-8");
                          data += "&" + URLEncoder.encode("IPADDRESS", "UTF-8") + "=" + URLEncoder.encode("192.168.1.0", "UTF-8");
                          data += "&" + URLEncoder.encode("PAYMENTACTION", "UTF-8") + "=" + URLEncoder.encode("Sale", "UTF-8");
                          data += "&" + URLEncoder.encode("CREDITCARDTYPE", "UTF-8") + "=" + URLEncoder.encode("Visa", "UTF-8");
                          data += "&" + URLEncoder.encode("ACCT", "UTF-8") + "=" + URLEncoder.encode("4532513511140817", "UTF-8");
                          data += "&" + URLEncoder.encode("EXPDATE", "UTF-8") + "=" + URLEncoder.encode("102014", "UTF-8");
                          data += "&" + URLEncoder.encode("CVV2", "UTF-8") + "=" + URLEncoder.encode("123", "UTF-8");
                          data += "&" + URLEncoder.encode("FIRSTNAME", "UTF-8") + "=" + URLEncoder.encode("Jason", "UTF-8");
                          data += "&" + URLEncoder.encode("LASTNAME", "UTF-8") + "=" + URLEncoder.encode("Michels", "UTF-8");
                          data += "&" + URLEncoder.encode("STREET", "UTF-8") + "=" + URLEncoder.encode("123", "UTF-8");
                          data += "&" + URLEncoder.encode("CITY", "UTF-8") + "=" + URLEncoder.encode("Papillion", "UTF-8");
                          data += "&" + URLEncoder.encode("STATE", "UTF-8") + "=" + URLEncoder.encode("NE", "UTF-8");
                          data += "&" + URLEncoder.encode("ZIP", "UTF-8") + "=" + URLEncoder.encode("68046", "UTF-8");
                          data += "&" + URLEncoder.encode("COUNTRYCODE", "UTF-8") + "=" + URLEncoder.encode("US", "UTF-8");
      
      
                          result = post(data);
      
                          //This will iterate through the entire response map
                          Iterator iter = result.entrySet().iterator();
                          while (iter.hasNext()) {
                                  Map.Entry mEntry = (Map.Entry) iter.next();
                                  System.out.println(mEntry.getKey() + " : " + mEntry.getValue());
                          }
      
                          //Now that you have a response check to see if it is a success
                          String ack = "" + result.get("ACK");
                          if("Success".equals(ack))
                          {
                              System.out.println("Congratulations your transaction was a success");
                          }
                          else
                          {
                              System.out.println("There was an error with your request.");
                          }
                      } 
                      catch (Exception e) 
                      {
                          System.out.println(e.toString());
                      }
                  }//end of main function
      
      
      
      
      }
      

      这对我来说很好用。希望它对那些想通过 paypal 配置付款的人有所帮助。

      【讨论】:

      • 能否请我们发布您的完整代码。我的意思是所有课程,以便像我这样刚接触 paypal 的人可以从中受益
      猜你喜欢
      • 2011-07-25
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-10
      • 2016-11-25
      • 2020-12-27
      • 2023-03-23
      相关资源
      最近更新 更多