1. 程式人生 > >java支付寶app支付-代碼實現

java支付寶app支付-代碼實現

java exceptio ech 頁面 orm 設置 value cnblogs rep

1.我們需要在支付寶商戶平臺配置好,取到四個參數如下(這是支付寶官方配置地址):https://www.cnblogs.com/fuzongle/p/10217144.html

  1. 合作身份者ID:12345564544
  2. 支付寶賬號:[email protected]
  3. 商戶的私鑰 :CSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzzICE
  4. 支付寶的公鑰:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzzICE

2.我們在項目中配置工具類上面四個號碼,寫到工具類中

 1 package cn.com.hanyu365.com.expand.alipay.config;
2 3 /* * 4 *類名:AlipayConfig 5 *功能:基礎配置類 6 *詳細:設置帳戶有關信息及返回路徑 7 *版本:3.3 8 *日期:2012-08-10 9 *說明: 10 *以下代碼只是為了方便商戶測試而提供的樣例代碼,商戶可以根據自己網站的需要,按照技術文檔編寫,並非一定要使用該代碼。 11 *該代碼僅供學習和研究支付寶接口使用,只是提供一個參考。 12 13 *提示:如何獲取安全校驗碼和合作身份者ID 14 *1.用您的簽約支付寶賬號登錄支付寶網站(www.alipay.com) 15 *2.點擊“商家服務”(https://b.alipay.com/order/myOrder.htm
) 16 *3.點擊“查詢合作者身份(PID)”、“查詢安全校驗碼(Key)” 17 18 *安全校驗碼查看時,輸入支付密碼後,頁面呈灰色的現象,怎麽辦? 19 *解決方法: 20 *1、檢查瀏覽器配置,不讓瀏覽器做彈框屏蔽設置 21 *2、更換瀏覽器或電腦,重新登錄查詢。 22 */ 23 24 public class AlipayConfig2 { 25 //↓↓↓↓↓↓↓↓↓↓請在這裏配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 26 // 合作身份者ID,以2088開頭由16位純數字組成的字符串 27 public static String partner = "";
28 //支付寶賬號 29 public static String seller_id = ""; 30 // 商戶的私鑰 存在本地 不需要配置 rsa_private_key_pkcs8.pem 31 public static String private_key = ""; 32 // 支付寶的公鑰,無需修改該值 查看支付寶公鑰 33 public static String ali_public_key = ""; 34 //↑↑↑↑↑↑↑↑↑↑請在這裏配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 35 // 調試用,創建TXT日誌文件夾路徑 36 public static String log_path = "D:\\"; 37 // 字符編碼格式 目前支持 gbk 或 utf-8 38 public static String input_charset = "utf-8"; 39 // 簽名方式 不需修改 40 public static String sign_type = "RSA"; 41 42 }

3.配置文件寫好了,就直接可以在項目中調用支付寶了工具類地址下載:www.fuzongle.com 下載完成後直接導入配置上面的四個參數即可使用。

4.下面是直接使用項目代碼調用支付寶代碼 (這個就是可以調用支付了非常容易了 關鍵工具類 我已經把工具類寫好了 你們直接調用即可)

 1      /** 
 2       *開通vip----支付寶支付
 3       * @return
 4      * @throws Exception 
 5       */
 6     @RequestMapping("/openVipPay")
 7     public Object balanceWechat(@RequestParam(value= "Cn", required=true, defaultValue="0" )String Cn,Integer userId,HttpServletRequest request, HttpServletResponse response) throws Exception {
 8          Map<String, Object> hashMap = new HashMap<String, Object>();
 9             //1.傳入支付的金額
10             Double     money=0.01;
11             //2.隨機生成一個訂單號
12             String ORDER_NO = "JYJY"+new SimpleDateFormat("yy").format(new Date()) + String.valueOf(System.currentTimeMillis()/1000).substring(7,10)+String.valueOf((int) ((Math.random() * 9 + 1) * 10000));    
13             //獲取絕對路徑
14               String path = request.getContextPath();  
15               String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //String.valueOf(findByid.getTotal_price())
16             //重點就這個調用了 工具類:傳入金額 名字 訂單號 回調地址                                                    
17               String sign = orderPay.payInfo("名字", "描述","金額", “訂單號”,basePath+"app/appOpenVip/returnUrl.do");
18               hashMap.put("data",sign);
19               return new BaseJsonRep<Object>(hashMap);
20             
21     
22     }
23     
24          /**
25       * 支付寶回掉數據
26       * @throws IOException
27       */
28      @RequestMapping(value = "/returnUrl" )
29      public BaseJsonRep<Object> returnUrl(@RequestParam(value= "Cn", required=true, defaultValue="0" )String Cn,String callback, HttpServletRequest request,HttpServletResponse response) throws IOException{
30             Double     money=0.1;
31            Map<String, String> param = new HashMap<String, String>();
32           Map<String, Object> hashMap = new HashMap<String, Object>();
33                Map<String,String[]> requestParams = request.getParameterMap();
34                param = new AlipayUtil().getParam(requestParams);
35               //商戶訂單號
36               String ORDER_NO = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");
37               //支付寶交易號  流水號
38               String TRADENUM = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");
39               //交易狀態
40               String trade_status = new String(request.getParameter("trade_status").getBytes("ISO-8859-1"),"UTF-8");
41               //支付寶實際交易金額
42               String PAYAMOUNT = new String(request.getParameter("total_fee").getBytes("ISO-8859-1"),"UTF-8");
43               boolean verify_result = AlipayNotify.verify(param);
44              if(verify_result){
45                  if(trade_status.equals("TRADE_FINISHED") || trade_status.equals("TRADE_SUCCESS")){
46                     // 我們直接查詢訂單號
47                      //ORDER_NO  支付成功了 可以回顯訂單號,去查詢數據庫修改支付成功,上面的代碼固定即可。
48                  }
49                }
50             return null;
51        }
52        

java支付寶app支付-代碼實現