支付寶支付是php高級課程中ThinkPHP商城項目課的內容之一,在此視頻中將會講解如何將支付寶作為第三方庫集成到ThinkPHP框架中,并且將支付寶的配置參數寫入自定義配置中從而達到在整個項目中靈活調用支付的目的。涉及到的知識點有使用vendor函數加載第三方擴展庫,對vendor函數做了詳細的介紹。使用C函數來讀取自定義配置。結合ThinkPHP的特性和支付寶第三方支付的調用方式做了支付寶集成到ThinkPHP框架的完整流程。
1. 支付寶支付–即時到賬
1.1. 獲取即時到賬sdk
獲取即時到賬sdk地址為:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.Ix6HLx&treeId=62&articleId=103566&docType=1
這是一個非常強大的SDK,包含了完整的demo,也就是說我們下載后只要簡單的配置就可以測試完整的付款流程?。?/p>
1.2. SDK目錄結構講解
目錄包括lib和img,當然為什么我的demo腳Alipay呢!是因為我下載后自己修改了名稱。好了我們先來看看sdk中都有哪些東西。上圖讓大家看得更明白
1.3. 開始使用demo
1.3.1. 使用前的配置(alipay.config.php)
當然我們只需要配置這四個位置,partner是在你的支付寶商家后臺可以查看得到,key也是在支付寶商家后臺查看,看下邊會有一副高清大圖帶大家看看在哪兒查找,這些本來是保密的東西哦。
注意notify_url和return_url的配置:聽過我講解的微信支付的同學應該已經明白這個是干什么用的了。對的就是告訴我們支付結果的地址。那這個地址的配置肯定是有講究的。首先,他的格式為http://商戶網址。這個商戶網址必須是經過備案的,而且在地址中不能帶有get方式的參數,必須保證外網可以正常訪問。如果不對了是不能跳轉的哦。往下看是不是有一個地址
1.3.2. 教你兩步完成支付
第一步拼接參數,這個參數的格式是怎么樣的呢:
注意了,除了out_trade_no,subject,total_fee,body其他的參數都是從配置文件中讀取的。那么這四個特立獨行的參數是什么意思呢?其實分別是訂單編號,商品名稱,訂單金額,訂單描述。
第二步建立請求
要注意了支付是調用阿里的東西支付的,那肯定要建立關系的,你來我往的一起完成支付,那就必須建立請求。建立請求是實例化AlipaySubmit,實例化之前當然要引入了。那就需要require_once lib/alipay_submit.class.php這個文件。
然后調用對象的buildRequestForm來建立請求當然是建立一個html請求了。那么這個方法的輸出也是一段html字符串了,為了解析我們簡單粗暴的使用了php的echo來處理。這一步執行時的結果就是下圖的樣子。
再熟悉不過了有木有。
1.4. 在ThinkPHP中集成支付寶支付
1.4.1. 有何不同?
當然是大有文章,其實也沒有什么不同。既然在TP中集成那么我們還是要入鄉隨俗,復合TP開發規范。那就是第三方擴展放在Libraray中的Vendor目錄下。那當然是把我們剛剛的demo拖過去就行了,簡單粗暴的拖過去,別手軟。然后,為了管理方便那個alipay.config.php我們是否可以閹割掉呢?當然是,但是又不能沒有配置數據,怎么辦呢?那就寫在自定義配置中。還記得C()函數嗎?當你需要配置中的數據時你肯定會想到他。
1.4.2. 把配置寫在Common/config.php中
是不是看著都感覺身心愉悅了?這樣我們就可以在項目中用C()函數非常方便的讀取到支付寶配置參數。
1.4.3. 引入alipay_submit.class.php
如果你在引入vendor中的擴展時你想不到vendor()這個函數時那么你就有必要來魏老師的課堂再學習下ThinkPHP的項目開發了,魏老師一定會念叨到你想吐,還記得大話西游中的only you嗎?
vendor(‘Alipay.lib.alipay_submit’,’’,’.class.php’);
vendor的三個參數我再說一次嘍,第一個參數就是類庫的路徑,第二個參數本來可以定義類庫的根目錄的默認是Vendor那就不用修改了,第三個參數是類庫的后綴,因為默認是.php而我們的文件時alipay_submit.class.php那么我們就自己設定下。
1.4.4. 獲取配置參數:
1.4.5. 構造要請求的參數數組
看著注釋中的無需改動就感覺很感動有木有,阿里的工程師真的好貼心。其他參數都是從配置中拿到的。只有四個參數要自己傳。他們的意義我已經嘮叨過了。當然還有很多參數,根據自己的需求自己去查閱一下。
1.4.6. 建立請求,距離成功只有半步之遙
這樣你的請求就建立了,那么,如果看到掃碼頁面說明你成功了,如果報錯了,請別砸電腦,掰鍵盤。靜下心來分析分析。
1.4.7. 關于通知
為了接收支付結果消息,支付寶是允許我們自己設置兩個地址作為通知地址的,分別是異步通知地址和同步通知地址。異步通知地址是不需用頁面參與的,將結果推送到后臺,而且不能有除約定之外的其他輸出。
1.4.8. 異步消息通知地址
異步消息通知地址配置的參數名為notify_url,這個地址必須符合外網可以訪問的條件。在支付時支付寶系統會帶著POST的參數來訪問該地址。該地址接受的參數可以再支付寶即時到賬文檔中查看。我們在接收到數據后要對數據進行判斷并更新我們自己系統中的訂單狀態。
當然你可能會想這樣安全嗎?萬一別人知道我們的異步通知地址后模擬post怎么辦。其實支付寶為我們考慮到了這一點。所以我們需要對接受到的請求進行驗證。驗證的方法如下。
新聞熱點
疑難解答
圖片精選