說明:
1、這是本人一開始學習的時候找遍各種文檔,最後發現比較詳細的一篇文章,與君共勉!
2、本文爲轉載文章,原文地址:https://blog.csdn.net/zhanghuiqi205/article/details/82048924
因爲項目的需求,所以對於支付這塊,對接的企業支付寶的電腦網站支付和手機支付。寫這篇博客的主要目的就是想把支付這塊的對接給詳細的說一下其中的知識點。
博客所說的案例demo下載地址:https://pan.baidu.com/s/1qx3kUQh_9U2KlKGNrLqMLQ
使用企業支付寶,分爲四步:
1、使用企業身份成爲支付寶的用戶(螞蟻金服) 申請地址:https://open.alipay.com/platform/homeRoleSelection.htm.在頁面上註冊和完善身份。
2、申請接口使用權限
3、創建應用
4、代碼整合
我們來看一下支付寶支付的支付原理,當然官網有更合適的圖像,我這裏只是自己簡單的畫一下:
在這裏我已自己註冊的沙箱賬戶爲依據,給大家說明對接的流程:註冊成爲開發者後,可以申請沙箱賬號:
申請完成就可以看到我們的沙箱賬號,商家和買家的。
然後我們就可以下載電腦版和手機版的SDK和demo來開始組織我們的代碼,這樣可以節省我們很多時間。在我們對接之前需要很多參數去申請和填寫,主要有appid,商傢俬鑰,支付寶公鑰,支付寶網關地址。
appid和網關地址可以找到:
至於商傢俬鑰和支付寶公鑰的生成,我簡單說一下。點擊查看設置應用公鑰,會有生成的說明:
然後接下來我們就進入到我們代碼中去了:這裏我以自己的php爲主來說
Aop:支付寶支付的核心的目錄
lotusphp_runtime:php的框架
Pagepay:存儲支付的demo
config.php:配置文件
index.php:demo的入口文件
notify_url.php:默認的異步接口文件
return_url.php:默認的同步接口文件
接下來我們把代碼原封不動的全部放到我們的代碼中。並建立一個文件夾來保存,我保存在我的tp3下的extend文件下:
然後在配置文件下配置我們支付寶的參數:
然後就是在控制器中書寫我們的方法了。在這裏我們遇到的就是兩個問題,一個是你需要把demo中需要引入的文件引入到我們控制器中去,二就是命名空間的問題。需要自己對源代碼中的部分加入自定義的命名空間。我這裏是遇到這樣的問題。可能每個人遇到的不一樣吧。
接下來就是我書寫的方法:我會根據不同的支付方式,引入對應文件夾下的文件,文件裏面的代碼我都是有加過命名空間的。
電腦端的一些參數
手機版的參數:(其實大體的思路基本都是一致的,配置參數,寫好同步和異步方法)
這裏我主要寫一下電腦端的同步和異步方法,手機版一樣的。
同步方法:
異步方法:
之所以在每個方法中引入文件,是因爲考慮到手機版,因爲多次引入相同的文件,會有方法的重名。在tp3.0中C代表特殊的含義,所以源代碼中有一次需要更改函數的名字,就是這個位置:
接下來我們就會有同步和異步的通知了。demo一會我會整合給大家,其實這裏還有其他的知識點,比如import的使用,extend文件夾和vendor文件夾存放的各自含義,當然這些都是比較基礎的知識,我想的就是大家竟可能的吃透每個知識點,比如同步和一部通知那個會更加好呢,等等。接下來我們看看效果:
與所有程序愛好者共勉......