最近公司讓我寫了一些支付方面的東西,本人也是支付小白,以前並無作過,開始還怕作很差,問同事有沒有作過支付啊,結果天然是沒有作過,而後我就想不過是幾個接口而已,很簡單的,秉着這個想法,我就開始研究怎麼寫了,到最後也寫好了,簡單的支付也沒有太複雜的東西,如今過來記錄一下。json
廢話很少說,直接開始:api
調用支付寶接口,Java後臺須要寫三個接口:服務器
第一個接口:app請求Java後臺,後臺返回加簽後的訂單信息字符串app
第二個接口:支付寶支付成功後,異步請求的邏輯處理異步
第三個接口:在支付完成以後,跳轉回APP時,APP調用商戶後臺進行最終付款校驗。向支付寶發起訂單查詢請求。編碼
前期準備:加密
咱們只作開發任務處理,其他事情由產品或者其餘人員申請3d
一、獲取商戶號APPIDblog
二、支付寶官網能夠生成私鑰、公鑰接口
三、請求支付寶的網關地址
https://openapi.alipay.com/geteway.do
四、頁面跳轉同步通知頁面路徑
https://www.alipay.com
五、服務器異步通知路徑
六、編碼格式
UTF-8
七、返回格式
json
八、加密類型
RSA2
以上9個全都放在了配置文件裏,方便使用和更改
第一個接口:
app端,會向咱們發送請求,獲取一個加密事後的支付寶訂單字符串;
後臺須要作的,導入支付寶的jar包
第一步:實例化客戶端(參數:網關地址、商戶appid、商戶私鑰、格式、編碼、支付寶公鑰、加密類型)
第二步:實例化具體API對應的request類,類名稱和接口名稱對應,當前調用接口名稱:alipay.trade.app.pay
第三步:SDK已經封裝掉了公共參數,這裏只須要傳入業務參數。一下方法爲sdk的model入參方式
到這裏,app調用接口所須要的訂單字符串已經生成完畢了,返回給app,交給他們作處理就行了。
(只針對支付寶所需數據進行了說明處理,並無作具體的業務分析處理,具體狀況具體分析)
第二個接口:
第一步:從支付寶回調的request域中取值,獲取支付寶返回的參數集合
第二步:轉化參數
第三步:簽名驗證(對支付寶返回的數據進行驗證,肯定是支付寶返回的),調用SDK驗證簽名
驗證簽名經過,能夠獲取到的參數有
判斷最後一個參數,交易狀態,是否交易成功「TRADE_SUCCESS」
若是是,進行你的業務處理;若是不是,也作相應的操做;最後返回給支付寶「success」or「fail」
第三個接口:
第一步:拿到參數,本身生成的訂單號,實例化客戶端(參數:網關地址、商戶appid、商戶私鑰、格式、編碼、支付寶公鑰、加密類型)
out_trade_no 訂單號
判斷是否成功
而後作相應的處理。
到此,支付寶接口就算完了。
簡單記錄一下。
也但願能夠幫到須要的同窗。
.