前言git
作支付寶網頁支付的同窗都會遇到一個問題,支付寶平臺的支付結果異步回調很難調試,由於這個回調是反饋到部署的外網環境的,而開發環境沒有對外獨立ip,開發環境在編寫支付後續的邏輯代碼就顯得很困難,若是能讓支付寶平臺的回調請求到開發環境來,邊調試邊開發就爽YY了。本文將提供兩種解決方案,方案2的提供相關源代碼,以方便用到的各位同窗。github
方案一異步
路由器內網映射,在路由器上配置,將內網的某個ip和端口與外網的某個端口映射綁定。當請求外網的映射端口時,會請求到內網映射的ip和端口,這個方案最簡單,但有兩個侷限:一是部分的路器器不支持和多層路由時可能失敗;二是隻能請求到內網的一個固定ip,也就是一個開發者。調試
方案二進程
本身寫代碼實現數據轉發,監聽服務部署在公網上,接收支付寶的回調,而後把請求內容轉發給內網的多個開發者開發環境中,每一個開發者均可如下斷調試;這個解決方案由PayProxy和PayClient兩部分組成,PayProxy部署在公網,提供Http給支付寶和TCP服務給PayClient,PayClient運行在開發者機器上,用於接收PayProxy發過來的支付結果參數數據,並把這些參數合成一個Http請求,請求到開發者的本機IIS上,開發者就能夠使用VS等附加IIS進程下斷看了。這個文案要求開發者在IIS裏建一個站點,文件目錄指到開發目錄,調試的時候,使用附加IIS進程調試(實際上個人開發環境都是這樣調試,通常不使用直接啓動VS裏的項目來調試,以爲啓動耗時!)。ip
開源&貢獻支付寶
如裏個人努力同時能給別人帶來生產力,這是我很高興的,因此我也不吝嗇把這些舉手之勞的東西開源出來,說不定你們在這上面還能挖出使用到其它領域的做用。路由
https://github.com/xljiulang/PayProxy開發
老九20151009部署