工具篇-web項(xiàng)目接入支付寶

1.入駐螞蟻金服

image.png
  • 輸入信息后進(jìn)入以下頁(yè)面
image.png
  • 選擇研發(fā)服務(wù)


    image.png
  • 設(shè)置公鑰私鑰


    image.png
  • 下載windows版密鑰工具并解壓


    image.png
  • 運(yùn)行腳本


    image.png
  • 生成密鑰


    image.png
  • 將公鑰設(shè)置到支付寶中


    image.png

2.編寫(xiě)代碼接入支付寶

  • 文檔地址

  • 導(dǎo)入支付寶支付依賴(lài)

    <dependency>
        <groupId>com.alipay.sdk</groupId>
        <artifactId>alipay-sdk-java</artifactId>
        <version>4.8.10.ALL</version>
    </dependency>
    
  • 編寫(xiě)獲取AlipayClient代碼

    通過(guò)文檔發(fā)現(xiàn)創(chuàng)建AlipayClient對(duì)象需要傳入較多的參數(shù)淹辞,因此我們自己去編寫(xiě)一個(gè)獲取該對(duì)象的工廠類(lèi),代碼如下:

    package com.briup.estore.util;
    
    import com.alipay.api.AlipayClient;
    import com.alipay.api.DefaultAlipayClient;
    
    public class AlipayConfig {
      /**
       * 服務(wù)網(wǎng)關(guān)   沙箱環(huán)境都是這個(gè)
       */
      public static String serverUrl = "https://openapi.alipaydev.com/gateway.do";
      
      /**
       * 應(yīng)用id  后期可以替換成自己的id
       */
      public static String appId = "2016080700191109";
      
      /**
       *  用戶(hù)私鑰   后期替換成自己的私鑰
       */
      public static String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCJX+FGCZpSS/eCp7Vy2yZENg5mpOSpWLIoWBXLK1aAZI4+dyMSVPV3a/w+cTXEpcqx+xYJkMIM2d6MdzCbdpRTXWZF9yrOH8E8mGCbpMAEo0m3KM35TERI3n627uzZFue71UyQjLOKEpkmp7wTZxWkWmdunyrTB1z1Ou5tHUlRBobyHxD33vNtYPnFCvvy60GJXDIAGi5DJITfARJd6SjlGRejy3Ki2X/NkTVpZPmjA1RGL4ib1jPhoC4Yk/NrAQ9xSNp1ZdaNHs6FErmxZzLqfICdc7jL3fCw/KHY3uRalw91q8TjSYHIenHk+oZRFeaoPgTLeyVf4LRsF/rVu1Q3AgMBAAECggEAOxtb7CyZj6tL9ZV/RsnwLw0rKRLtp8eX8C/mQKKG93tMkKfmGS8g5p85ywwe3FuRWP71vmvgcnMThFCMQ3fD3hKjvJraehHDrPTLLGy4icZQI1SVOxyLjObekos+sTFfx7vA07kWTuQtrSoijB6gezTCqCAn5uCWKJWQnLYrI4cN0jiVkWiYaeTj50PA561VnKaQblr68gd5CQy/COA0fiCxHdMGPCC9rOE97rUMvKelkBHIpgTbBRA7pNjvTYZg2dPk87FkgBKTwXSRe/SYR1TJqM7Y1TgB+6DmFi5luxrz/VPJTI4PxO/jeu0AOeA4iaBddiGY8OSfWw6HyKxI4QKBgQDdYxzUyxGk412JzKg2tXoiBZ7JDcd2hpF26p4etabKBW3A0euRe9AcLswfnw8IBUQckUYWGvkpU0i0dyN+TPaCtKPRR1onn7r7LzlqLEdqVxIICzTAoY3eFs5uLYKuLniUcXHK/p8RPKW+V4PwJMEkMBS64Kpa5GsmGwQWW6bPjwKBgQCe2jZwczJH/39hjUwN2zVo/1XLYx8oRDlUXSykegT8h9mJyGCBYV4FrXyz4vdeDetbJwAQlS+cfLMXK/4VTAlducmGZX61SYdOdbZG0WJYmbBLhtIHXMOrXPItJB6/+QSmoLn2HQgqLXPGGhr9m4EYl0ZUoCShtvJQBZlJYmJc2QKBgC44ykU3XKize80QeLJrc2N1DvDlOpbpg6dzVq4MuRUGyyJt8aP/WLT5pE6Z0/aVuuHIBv0Ihqr1I4HiOfvdr74cXvOL1SvesphNBMzBD+wI38/kHxB06nzLADCKufUJ6Mz9XofGX4mmwugZt4dE9TpL+5gE3ix58lETZOgSHKLLAoGAT+ojfQrW/tWQdbkpy8a95eaeeMWTBSTdWo3NSamBHLITRHej5TLgpCaVF8JVA+IoxyClrbH/09AAIOYm2vv3skknEw+4YOduxI//dT0dJsmaoURgIQgQAAOwaflD5vwV1OYC58fPNbjMB5tWfMNgfMiNv0EZbKmm2Y8XgI2YQnECgYEAsI3CPZO4GVZ21WYpTavxGydK9W6S5xrCCv3aiXFpTlNCWmxCP6jwokeBe3GImpB1tv48qyEDkc/R0KZFcuE8e8W5fisSSeiwK9pxE9tqrHROW6doRQdugM7NG7ItMmalghuhhUPcT0SUhR1zYKrCmuwAViO9ZSk1HVkiS6OaWco=";
      
      /**
       *  發(fā)送數(shù)據(jù)的格式 目前只能為json
       */
      public static String format = "json";
      
      /**
       *  設(shè)置字符集編碼 目前只能為utf-8
       */
      public static String charset = "utf-8";
    
      /**
       *  支付寶公鑰 后期替換成自己的支付寶公鑰
       */
      public static String publicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmB1EJz4RcK7ivh13AmltlsynU80xwn22PhPHwsdIlFszVWQKuWxCIf8mgk/krZJ78MnBxBdsSGgdSC7h7pwd2u0mabXnUPdenTgW+1QP1YkzW9mcqEvtzmJ+0u8lvr3GW9NXKTyLUlb1/Lt4BvJhVj0CnWtp5iDZdXx4iD+gP0b9hc/VK6Qh4TUKNEGtLkHpXhqWU61DpyIdsuTmNkI6PNwEkHmLRmK71GOCbXYIFqTL9ZzWuxuSdq6E8rgu8bnx2m5kAcV/ZLZaIqsh7adaJwLn8SwgEH+yNkVBrpYAkOuW75C36tXe3DisVEPuxA5mJ95yg/ktppukpiC/xwX3NQIDAQAB";
      
      /**
       *  支付寶簽名 目前是 RSA2
       */
      public static String signType = "RSA2";
    
      /**
       *  頁(yè)面跳轉(zhuǎn)同步通知頁(yè)面路徑 需http://格式的完整路徑钧嘶,不能加?id=123這類(lèi)自定義參數(shù)湖蜕,必須外網(wǎng)可以正常訪問(wèn)
       */
      public static String return_url = "http://localhost:8081/estore/index.jsp";
      
      public static AlipayClient getAlipayClient() {
          // 獲得初始化的AlipayClient
          AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.serverUrl, AlipayConfig.appId, AlipayConfig.privateKey, AlipayConfig.format, AlipayConfig.charset, AlipayConfig.publicKey, AlipayConfig.signType);
          return alipayClient;
      }
    
    }
    
  • 使用servlet去進(jìn)行支付測(cè)試

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
          try {
              AlipayClient alipayClient =
                      AlipayConfig.getAlipayClient();
              //設(shè)置請(qǐng)求參數(shù)
              AlipayTradePagePayRequest alipayRequest = 
                      new AlipayTradePagePayRequest();
              
              AlipayTradePayModel model = 
                      new AlipayTradePayModel();
              
              // 設(shè)定訂單號(hào) 必須要寫(xiě),且訂單號(hào)不能重復(fù)第晰,目前已經(jīng)只是做測(cè)試,已經(jīng)寫(xiě)死
              model.setOutTradeNo("44156");
              
              // 設(shè)置訂單金額
              model.setTotalAmount("100.00");
              // 訂單名字
              model.setSubject("書(shū)籍訂單");
              // 訂單描述
              model.setBody(System.currentTimeMillis()+"");
              
              // 產(chǎn)品碼
              model.setProductCode("FAST_INSTANT_TRADE_PAY");
              
              // 設(shè)置參數(shù)
              alipayRequest.setBizModel(model);
              
              // 設(shè)置回調(diào)地址
              alipayRequest.setReturnUrl(AlipayConfig.return_url);
                
              String result = alipayClient.pageExecute(alipayRequest).getBody();
                 
              response.setContentType("text/html;charset=utf-8");
              response.getWriter().println(result);
          } catch (Exception e) {
                  e.printStackTrace();
          }
          
      }
    
    
  • 訪問(wèn)該servlet結(jié)果如下


    image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末润文,一起剝皮案震驚了整個(gè)濱河市川队,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌系枪,老刑警劉巖雀哨,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異私爷,居然都是意外死亡雾棺,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)衬浑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)捌浩,“玉大人,你說(shuō)我怎么就攤上這事工秩∈龋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵助币,是天一觀的道長(zhǎng)浪听。 經(jīng)常有香客問(wèn)我,道長(zhǎng)眉菱,這世上最難降的妖魔是什么迹栓? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮倍谜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘叉抡。我一直安慰自己尔崔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布褥民。 她就那樣靜靜地躺著季春,像睡著了一般。 火紅的嫁衣襯著肌膚如雪消返。 梳的紋絲不亂的頭發(fā)上载弄,一...
    開(kāi)封第一講書(shū)人閱讀 52,696評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音撵颊,去河邊找鬼宇攻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛倡勇,可吹牛的內(nèi)容都是我干的逞刷。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼夸浅!你這毒婦竟也來(lái)了仑最?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤帆喇,失蹤者是張志新(化名)和其女友劉穎警医,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體坯钦,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡预皇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了葫笼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片深啤。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖路星,靈堂內(nèi)的尸體忽然破棺而出溯街,到底是詐尸還是另有隱情,我是刑警寧澤洋丐,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布呈昔,位于F島的核電站,受9級(jí)特大地震影響友绝,放射性物質(zhì)發(fā)生泄漏堤尾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一迁客、第九天 我趴在偏房一處隱蔽的房頂上張望郭宝。 院中可真熱鬧,春花似錦掷漱、人聲如沸粘室。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)衔统。三九已至,卻和暖如春海雪,著一層夾襖步出監(jiān)牢的瞬間锦爵,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工奥裸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留险掀,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓湾宙,卻偏偏與公主長(zhǎng)得像迷郑,于是被迫代替她去往敵國(guó)和親枝恋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容