不會作,看看也能夠會,要作好就仍是須要多學習
國慶回來就一直沒狀態,看完
《銀河護衛隊》,印象最深的居然是隻有兩句臺詞的
呆萌groot,昨天才休息一天,大耍大吃,今天仍是把昨天的知識學習一下。前些天同事作一網站,須要用到支付寶接口,因爲同事才學習PHP,我比他多學習了兩天,我就幫忙參考了一下。
demo就是教程
支付寶官方網站(https://b.alipay.com/order/techService.htm)下載了開發包,直接拷貝了PHP版本做爲咱們須要的版本,裏面直接就是一個demo。要怎麼作呢?沒吃過蛇肉還沒見過蛇跑啊,要是沒見過就去見識見識,畢竟關係到「人民幣」。按照用戶的習慣仍是熟悉一下流程:
加購物車(項目直接忽略,定向人羣)
- 下訂單 - 確認訂單 - 支付訂單。
思路整理分析:(僅僅來源於一個顧客的思路,不正確請留言指教一下,謝謝!)
下訂單:訂單數據交互至數據庫,跳轉至確認訂單頁面
確認訂單:訂單數據顯示給顧客確認一下
支付訂單:跳轉至支付流程頁面
訂單狀態:訂單狀態修改一下
問題整理分析:(問題來源於新手剛剛看完DEMO)
數據是經過表單提交信息至確認訂單頁面,直接獲取數據庫數據?仍是顯示錶單提交的信息?
確認訂單後跳轉至支付頁面,直接獲取數據庫數據?仍是顯示錶單提交的信息?
支付流程現實是這樣的
如圖一,下訂單頁面,頁面如圖,信息來源於第一界面,數據僅僅是針對顧客的第一預覽。
頁面中的信息無需如此,簡單修改了一下,提交訂單後跳轉至alipayapi.php,頁面內接受信息再讓用戶確認一下,或者直接取消顯示的確認按鈕,數據經過訂單號,查詢出商品單價等信息進行提交。(提到這裏僅僅是由於當時開發中的一個小插曲,異步的不能修改狀態,因而我幫忙測試的時候,我價格修改成了0.01元,支付成功,同步狀態修改,若是是發貨的話,不得氣死,還好只是相似於支付定金,還好有人審覈,可是這終究是一個問題)。問題來源於alipayapi沒有進行數據驗證,關係到錢的程序仍是要謹慎一點好。
走一下接口開發流程
很簡單的修改一下配置文件alipay.config.php,再而後簡單的配置一下alipayapi.php,主要說明一下這兩項:
//服務器異步通知頁面路徑
$notify_url = "http://商戶網關地址/create_direct_pay_by_user-PHP-UTF-8/notify_url.php";
//需http://格式的完整路徑,不能加?id=123這類自定義參數
//頁面跳轉同步通知頁面路徑
$return_url = "http://商戶網關地址/create_direct_pay_by_user-PHP-UTF-8/return_url.php";
//需http://格式的完整路徑,不能加?id=123這類自定義參數,不能寫成http://localhost/
這裏咱們默認通知頁面爲:http://www.pushself.com/
$notify_url = "http://www.pushself.com/notify.php";
$notify_url = "http://www.pushself.com/return.php";
notify.php頁面就是支付訂單頁面,登陸支付寶支付(掃一掃支付)後,支付寶自動抓取的頁面。
return.php頁面就是支付訂單頁面,登陸支付寶支付(掃一掃支付)後,頁面跳轉至的回調頁面。
主要是針對掃一掃支付,以上兩個頁面爲成功後作修改狀態操做,return.php是支付過程當中不能關閉瀏覽器,關閉了就不能修改狀態,相反此時notify.php就會起做用了,關閉瀏覽器後,支付寶自動抓取這個頁面,若是抓取到success,這次交易就完成了。
亂是亂了點兒
作事須要的是堅持,有些事情不作就永遠也不會。