在沙箱環境調試支付SDK的時候,往往沙箱環境部署在本地,局限性大,在沙箱環境中有多種支付場景,往往是多人聯合開發,本地環境可能無法滿足異地聯合,是以把本地環境變成公網環境下進行調試開發會更好。
本次教程,我們将使用支付寶平台提供的沙箱環境,在本地配置測試模拟支付,并做内網穿透,通過cpolar穿透内網,實作在公網環境下的遠端通路,無需公網IP,也無需配置路由器。
1. 下載下傳當面付demo
進入支付寶開放平台沙箱應用(https://open.alipay.com/develop/sandbox/app),檢視産品清單–>已支援的産品,選擇一種支付場景,這裡選擇 當面付,然後點選檢視文檔
然後下載下傳官方提供demo,有三種語言,這裡以java語言為例,下載下傳java版demo
2. 修改配置檔案
demo下載下傳好後,把TradePayDemo和TradePaySDK兩個子產品倒入開發工具中,這裡以IDEA開發工具為例,需要注意,官方要求的JDK版本是1.6
倒入并且設定好JDK版本後,打開TradePayDemo下面的zfbinfo.properties配置檔案,填寫對應的資訊
注意配置檔案情況:
• 第一個配置資訊open_api_domain的值需要設定成支付寶開發平台以下對應的值
• pid和appid對應以下資訊
• private_key和public_key和alipay_public_key分别對應以下資訊
修改好配置檔案後,在Main啟動類,右鍵運作mian方法運作測試配置檔案是否正确,出現下單成功表示配置檔案正确
3. 打包成web服務
接下來把TradePayDemo這個web項目打包成web服務.
接着右鍵重新運作Main類的main方法
然後在輸出的路徑上可以看到出現了一個.war的web war包
接下來把這個war包放在tomcat中的webapps目錄下運作.(這裡tomcat版本為8.5.84)
運作tomcat
4. 區域網路測試
在浏覽器上輸入http://localhost+:端口号/TradePayDemo_war exploded/index.html,通路支付頁面,出現如下界面表示成功
5. 内網穿透
接着使用cpolar穿透本地支付寶支付沙箱環境demo,使得遠端可以進行通路沙箱環境進行測試。cpolar支援http/https/tcp協定,不限制流量,操作簡單,無需公網IP,也無需路由器。
cpolar官網:https://www.cpolar.com/
在本地安裝cpolar内網穿透之後,在浏覽器上通路本地9200端口,打開cpolar web ui 界面:http://127.0.0.1:9200。
點選左側儀表盤的隧道管理——建立隧道,由于tomcat中配置的是8040端口,是以我們要來建立一條http隧道,指向8040端口:
• 隧道名稱:可自定義,注意不要與已有的隧道名稱重複
• 協定:http
• 本地位址:8040
• 域名類型:免費選擇随機域名
• 地區:選擇China top
點選建立
隧道建立成功後,點選左側的狀态——線上隧道清單,可以看到,剛剛建立的隧道已經有生成了相應的公網位址,将其複制下來
6. 測試公網通路
打開浏覽器,通路剛剛複制的公網位址,出現如下界面表示公網通路成功
7. 配置二級子域名
由于以上使用cpolar所建立的隧道使用的是随即公網位址,該位址為随機臨時位址,24小時内會發生變化,不利于長期遠端通路。
是以我們可以為其配置二級子域名,該位址為固定位址,不會随機變化【ps:cpolar.cn已備案】
需要注意,配置固定二級子域名需要将cpolar更新到基礎套餐或以上。
登入cpolar官網,點選左側的預留,選擇保留二級子域名,設定一個二級子域名名稱,點選保留
• 地區:選擇china
• 二級域名:可自定義
• 描述:即備注,可自定義
位址保留成功後,将其複制下來,本例為alipayTest
通路本地9200端口,打開cpolar web ui 界面,點選左側的隧道管理——隧道清單,找到支付接口測試隧道,點選右側的編輯
修改隧道資訊:
• 域名類型:選擇二級域名
• Sub Domain:填寫剛剛保留成功的二級子域名
點選更新
點選左側的狀态——打開線上隧道清單,可以看到公網位址已經更新成為了二級子域名,複制對應的公網位址
8. 測試使用固定二級子域名通路
我們打開浏覽器,通路我們剛剛配置成功的固定二級子域名,出現如下資訊表示成功。