支付宝公共服务窗开发总结
前些日子有幸接觸了支付寶服務(wù)窗的開發(fā),總的來說,和微信的服務(wù)窗開發(fā)很像,老大確定的用HTML5+CSS3開發(fā),來寫一下自己的總結(jié),Java方向。
后臺用的servlet+jdbc的方式,因為功能很少,操作不多,邏輯處理也不多,就算套用大框架,也用不到那么全面的功能??偨Y(jié)主要說一下和支付寶相關(guān)的代碼,其他部分暫可一帶而過。
公私鑰
首先,開發(fā)支付寶服務(wù)窗要有客戶與支付寶談成協(xié)議之后,在支付寶服務(wù)窗頁面用指定的賬戶登錄后,第一步要做的,就是激活開發(fā)者模式。這里需要用到的三個值,支付寶公鑰、開發(fā)者公鑰、開發(fā)者私鑰,支付寶公鑰是開發(fā)者模式頁面提供的,開發(fā)者公私鑰是用支付寶提供的工具計算生成的,其中,私鑰要再進一步轉(zhuǎn)化成pkcs8格式,才能進行java開發(fā),當(dāng)然,所有的這些都是用支付寶工具生成,按照給定的指定輸入到cmd窗口就可以。
支付寶網(wǎng)關(guān)和開發(fā)者網(wǎng)關(guān)
這兩個概念要區(qū)分,支付寶網(wǎng)關(guān)是支付寶提供的網(wǎng)關(guān)地址,開發(fā)者網(wǎng)關(guān)是需要由我們開發(fā)部署的網(wǎng)關(guān)地址,那么我們做的就是一個servlet,部署到外網(wǎng)服務(wù)器上之后,就可以與支付寶網(wǎng)關(guān)交換數(shù)據(jù),以達到激活網(wǎng)關(guān)的效果。
激活開發(fā)者模式
開發(fā)者網(wǎng)關(guān)并非一定要servlet,只不過我們寫java后臺,用servlet來與支付寶交互數(shù)據(jù)很方便。開發(fā)者模式的激活,要求開發(fā)者網(wǎng)關(guān)直接返回一個支付寶指定的消息,這條消息具體應(yīng)該如何編寫,公私鑰以及如何簽名,在支付寶的開發(fā)文檔里都有詳細寫明,這里不再進一步描述。按照要求寫好返回消息之后,在開發(fā)者模式頁面填寫相關(guān)信息,就會提示激活成功。
菜單配置
支付寶服務(wù)窗口所有按鈕的反應(yīng)模式,都由link out alipay 這三種反應(yīng)模式,即參數(shù)中的actionType?
link:顧名思義,直接彈出一個頁面,支付寶不做任何消息操作,也不接收任何傳值的行為,彈出的頁面地址由配置菜單時指定,寫在actionParam中。
out:當(dāng)菜單中的反應(yīng)模式配置為out時,即支付寶要發(fā)送一個消息到開發(fā)者網(wǎng)關(guān),由開發(fā)者網(wǎng)關(guān)識別消息并進行響應(yīng),此時actionParam中配置的參數(shù)為開發(fā)者自己指定的字符串(如:actionParam:ZFB_01),如果開發(fā)者網(wǎng)關(guān)對這個消息不做任何響應(yīng),那么支付寶手機錢包會報出網(wǎng)絡(luò)異常的提示。
alipay:這種方式是調(diào)用支付寶已開發(fā)好了的服務(wù),只能在開發(fā)者平臺上配置,如地圖功能等,但是說實話,感覺不好用。。。地圖不如自己寫頁面來的方便。
支付寶消息
支付寶所有消息,都有request和response構(gòu)成,成對出現(xiàn),而且有特定的格式,如果request發(fā)送之后沒有response,則會報出網(wǎng)絡(luò)異常的錯誤。
每一種request和response都有指定的格式,有必填項,有可選項,response有一個最簡短的構(gòu)造方式,不做任何處理,只是回復(fù)一下支付寶,可適用于大部分情況,具體構(gòu)造形式需參考支付寶開發(fā)文檔。
執(zhí)行流程參考
那么當(dāng)我們配置好開發(fā)者網(wǎng)關(guān)之后,servlet是這樣執(zhí)行的,當(dāng)支付寶發(fā)送請求到我們的開發(fā)者網(wǎng)關(guān),發(fā)送的request,既是servlet方法中的request,servlet中的request是由HttpServletRequest包裝,為了方便我們獲取,對request的解析,用了專門的方法:
那么,按照上面的做法,我們獲得了一個map對象,其中包含著支付寶發(fā)送來的請求,然后,我們需要根據(jù)請求的內(nèi)容來判定此條請求是用來做什么的(比如:綁定,解綁,點擊菜單等),那么我們需要一個分配器來解析這條請求的內(nèi)容,有了分配器的眾多的if else之后,對應(yīng)的業(yè)務(wù)邏輯可以包裝在執(zhí)行器中,比如我獲取到一個賬戶綁定的請求之后,我需要用執(zhí)行器去解析這個請求的內(nèi)容,識別為綁定請求之后,再進入對應(yīng)的執(zhí)行器, 由執(zhí)行器同步返回一個賬戶綁定的response。
來源:http://blog.csdn.net/u012103056/article/details/40339585
總結(jié)
以上是生活随笔為你收集整理的支付宝公共服务窗开发总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支付宝服务窗的简单开发体会
- 下一篇: 赣榆(说一说赣榆的简介)