日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

支付宝服务窗的简单开发体会

發布時間:2024/9/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 支付宝服务窗的简单开发体会 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這兩天做了一下支付寶服務窗,記一下吧,做一個積累,防止以后再次需要開發時忘記。?項目的要求是可以使用支付寶的服務窗就可以了,相關交互也很簡單,只需要獲取到使用用戶的支付寶的唯一標識符(以前是openId,不過openId將會在2016年9月廢棄,現在使用userId。如果還是使用的openId,也就是遺留的項目,支付寶提供了相關的接口,可以使用openId換取userId<alipay.platform.userid.get>)就可以了。其實感覺支付寶提供的相關的文檔還是蠻全的。

支付寶服務窗開發主要需要:

  • 已申請支付寶服務窗的賬號

  • 外網可以訪問的url。本機上可以使用端口映射,主要開發時使用(直接使用ip+端口映射不知道可不可以,沒有試過)。
    3.openssl軟件,這個其實在支付寶提供的包里已經提供了(支付寶的手機網站支付的demo中有<demo網址。

  • 開發步驟

  • 激活開發者模式(必須驗簽和回復相關消息,偷懶的話可以不驗簽,直接將相關的消息響應給支付寶就好了,猜的,沒試過,應該)。

    這里相關的文檔還是蠻詳細的。生成公鑰和私鑰就不多說了,已近夠詳細了,簡單的說下它提供的demo吧(放到結尾說,排版好看點)。

  • 設置服務窗的菜單及相關的功能。其實這如果不需要支付寶提供的userId,那樣上面寫的和下面寫的所有東西都可以忽略,只要在管理中心的幾個菜單上點點就好了。
    同樣相關的文檔支付寶也已經提供。(文檔)。我使用的是只要獲取用戶的userId,不需要其他的用戶信息,所以只要scope=auth_base就好了。這里的代碼支付寶的demo中已經提供了,只要稍微改一下就可以使用:

    try {String authCode = this.getReqParam("auth_code");String userId = null;AlipaySystemOauthTokenRequest req = new AlipaySystemOauthTokenRequest();req.setGrantType("authorization_code");req.setCode(authCode);AlipayClient alipayClient = AlipayUtil.getAlipayClient();AlipaySystemOauthTokenResponse res = alipayClient.execute(req);XMap map = new XMap();if (null != res && res.isSuccess()) {userId = res.getAlipayUserId();map.put("appid", userId);System.out.println(userId);} else {System.out.println("authCode換取userId失敗");}this.outPut(map);} catch (AlipayApiException e) {e.printStackTrace();}

    如果獲取用戶的信息,支付寶的demo也有,直接刪刪改改就可以了。?這里需要注意一下的是需要導入支付寶的相關jar包,當然如果只是這里使用的話可以不使用支付寶的jar包,換成使用HttpClient來實現,但是相比較而言麻煩一下,直接使用支付寶的直接傳幾個參數而已,何樂而不為呢。如果還要使用其他信息,就要修改相關的scope,文檔里直接找就是了。

  • 支付寶服務窗demo

    支付寶的demo只要知道服務窗的基本功能就可以:

    • 純文本類型 MsgType:text

    • 事件類型 MsgType:event

      • 激活驗證開發者模式 (service:alipay.service.check)(EventType:verifygw)

      • 其他消息通知 (service:alipay.mobile.public.message.notify)

        • 服務窗關注事件 (EventType:follow)

        • 服務窗取消關注事件 (EventType:unfollow)

        • 服務窗進入事件 (EventType:enter)

          • 自定義場景進入事件

          • 普通進入服務窗事件

        • 根據actionParam進行轉發(服務窗點擊事件)(EventType:click)

          • authentication 申請開發者會員綁定事件: actionParam支付寶服務窗固定值(ActionParam:authentication )

          • delete 刪除開發者會員綁定事件:actionParam支付寶服務窗固定值(ActionParam:delete)

          • xxx 開發者自定義 (ActionParam:xxx)

      • 更多

    • 更多

    對照這看demo很容易就知道了。?從servlet開始:這方面主要在GatewayServlet里面。

    驗簽沒什么,直接調相關方法就好了,注意req的編碼和本項目的編碼。

    宏觀上來說demo主要是接收相關的req,然后取得該req的參數,進入(Dispatcher)獲取業務的分發器,然后在分發器中獲取業務的執行器。簡單點說,就是從上面的純文本類型開始驗證,逐漸細化到最里面的一層,將該層的功能返回對應的執行器(執行器也就是ActionExecutor接口,不同的功能就是該接口的不同的實現,以后添加功能直接添加該接口的實現就好了)。

    開發的時候可以直接使用相關的代碼,然后在里面刪減對應的功能就好了。不過話說如果像我現在的項目只要驗證,所以只要一個激活驗證開發者模式的驗證就好了,兩層驗證返回就好了,當然要求更低的可以直接返回相關的res就好,都可以不驗證。可以是可以,但是如果以后加功能的話。。。

    在LoginAuthServlet里面也就是取得用戶的userId和用戶的詳細信息等相關內容。

    其他的一些類都是一些例子,對于我這樣的新手+菜鳥來說簡直是福音。

    怎么說呢,一開始看見那么多類,都不想去看這個demo,后來沒辦法才去看的。清晰,第一感覺就是這個,不想自己寫的代碼,業務一復雜時自己都不想去看,不過由于源碼讀的少的原因,自從看完設計模式的書后,雖然大概也知道現在的比較出名的開源框架大概用了哪些,但是都是別人說的,從來沒有自己去體會過?;蛘哒f知道使用了相關的模式之后,再去讀源碼的時候自動去找相關的模式的使用情況,雖然知道他們很好,但是由于自己沒有去寫,從來不知道這玩意兒多好。但是看了這個demo后真心很。。。震撼,應該是,比比自己的代碼,就是去堆邏輯,固然有很多地方是用不上模式的,更多的原因是不熟。雖然知道這玩意用多了也不好,但是用了之后可以取舍,而這和不會用完全是兩回事,慢慢積累吧,會有一天脫離菜鳥的行列的。任重而道遠啊。


    來源:https://segmentfault.com/a/1190000004547818

    總結

    以上是生活随笔為你收集整理的支付宝服务窗的简单开发体会的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。