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