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


技術交流QQ群:422167709 想學習的朋友可以進入,各路IT大牛幫忙解決問題

 

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

 

  1. 合作身份者ID:12345564544
  2. 支付寶賬號:123@qq.com
  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        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM