java支付寶支付,支付手機支付,pc網站支付

1:在擼代碼之前 先去開通支付寶支付的賬戶  提交私鑰 公鑰一系列反鎖的 事情 下面簡單介紹一下我的支付過程

以下是整個項目的結構 只是做了個支付的測試 所有結構很簡單 大神勿噴:


上面的 lib裏面的 jar 大部分都可以在 支付寶的官方dome裏面下載  

當然 在寫完文章 我會附上我的源碼地址:  在這裏 主要貼出  兩個主要類的 代碼 和  web.mlx 的配置 還index.html的按鈕

CsPay.Java  

[java] view plain copy
 print?在CODE上查看代碼片派生到我的代碼片
  1. public class CsPay extends HttpServlet {  
  2.     private static final long serialVersionUID = 1L;  
  3.     protected void doGet(HttpServletRequest request,  
  4.             HttpServletResponse response) throws ServletException, IOException {  
  5.         doPost(request, response);  
  6.     }  
  7.     protected void doPost(HttpServletRequest request,  
  8.             HttpServletResponse response) throws ServletException, IOException {  
  9.         // 參數目前都是 寫死的 根據業務需求 寫活  
  10.         Map<String, String> maps = new HashMap<String, String>();  
  11.         maps.put("out_trade_no", UtilDate.getOrderNum());  
  12.         maps.put("total_amount""0.01");  
  13.         maps.put("subject""Iphone6 16G");  
  14.         maps.put("body""Iphone6 16G");  
  15.         maps.put("product_code""QUICK_WAP_PAY");  
  16.         // 下面兩個 參數的 KEY 不要亂寫 要和工具類裏面對應  
  17.         maps.put("ReturnUrl""http://domain.com/CallBack/return_url.jsp");  
  18.         maps.put("NotifyUrl""http://domain.com/CallBack/notify_url.jsp");  
  19.         try {  
  20.             AlipayClientFactory ali = new AlipayClientFactory();  
  21.             String form = ali.ydAndPc_Pay(maps);  
  22.             if (!form.equals("err")) {  
  23.                 response.setContentType("text/html;charset=utf-8");  
  24.                 response.getWriter().write(form);// 直接將完整的表單html輸出到頁面  
  25.                 response.getWriter().flush();  
  26.             }  
  27.         } catch (AlipayApiException e) {  
  28.             e.printStackTrace();  
  29.         }  
  30.     }  
  31. }  

調用 支付工具類 AlipayClientFactory.java :裏面包含 支付 訂單查詢  訂單退款  掃描支付 等等 ...

我這裏只貼 支付那一塊代碼  想看全的 待會貼上下載地址:

[java] view plain copy
 print?在CODE上查看代碼片派生到我的代碼片
  1. // 手機網頁支付 網站支付  
  2. public String ydAndPc_Pay(Map<String, String> maps)  
  3.         throws AlipayApiException {  
  4.     AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();  
  5.     String NotifyUrl = maps.get("NotifyUrl");  
  6.     String ReturnUrl = maps.get("ReturnUrl");  
  7.     // 後臺回調  
  8.     if (!StringUtils.isEmpty(NotifyUrl)) {  
  9.         alipayRequest.setNotifyUrl(NotifyUrl);  
  10.         // bizContent 中不需要 公共參數  
  11.         maps.remove("NotifyUrl");  
  12.     }  
  13.     // 頁面回調  
  14.     if (!StringUtils.isEmpty(ReturnUrl)) {  
  15.         alipayRequest.setReturnUrl(ReturnUrl);  
  16.         // bizContent 中不需要 公共參數  
  17.         maps.remove("ReturnUrl");  
  18.     }  
  19.     String bizCon = JSON.toJSONString(maps);  
  20.     alipayRequest.setBizContent(bizCon);  
  21.     String form = "";  
  22.     try {  
  23.         form = AlipayClientFactory.getAlipayClientInstance()  
  24.                 .pageExecute(alipayRequest).getBody();  
  25.     } catch (AlipayApiException e) {  
  26.         form = "err";  
  27.         e.printStackTrace();  
  28.     } // 調用SDK生成表單  
  29.     return form;  
  30. }  


web.xml 配置:

[html] view plain copy
 print?在CODE上查看代碼片派生到我的代碼片
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"  
  3.     xmlns:web="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  4.     id="WebApp_ID" version="2.5">  
  5.     <display-name>ACPSample_WuTiaoZhuan</display-name>  
  6.     <welcome-file-list>  
  7.         <welcome-file>index.html</welcome-file>  
  8.     </welcome-file-list>  
  9.     <servlet>  
  10.         <servlet-name>csPay</servlet-name>  
  11.         <servlet-class>com.cs.alipay.CsPay</servlet-class>  
  12.     </servlet>  
  13.     <servlet-mapping>  
  14.         <servlet-name>csPay</servlet-name>  
  15.         <url-pattern>/csPay</url-pattern>  
  16.     </servlet-mapping>  
  17. </web-app>  

index.html:

[java] view plain copy
 print?在CODE上查看代碼片派生到我的代碼片
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta charset="UTF-8">  
  5. <title>Insert title here</title>  
  6. </head>  
  7. <body>  
  8.     <a href="http://localhost:8080/csalipay/csPay">AAAAA</a>  
  9. </body>  


下面是 點擊按鈕 手機端調支付的效果圖:

下面是 PC端 調用支付的效果:

一下 是點擊跳轉過後的頁面:  支付寶自定義組裝返回的支付頁面:


最後 附上源碼的下載地址:http://download.csdn.NET/detail/wangbo54979/9630419

新手發帖 大神勿噴


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章