1. 程式人生 > >PHP開發常見功能實現流程

PHP開發常見功能實現流程

一、pc端網站登入

1、獲取並過濾使用者提交的使用者名稱和密碼以及驗證碼

2、驗證使用者提交驗證碼和session中的驗證碼是否一致

3、驗證使用者名稱是否存在

4、根據使用者名稱獲取密碼,並校驗密碼是否一致

5、密碼一致,則登入成功,跳轉到對應的首頁

圖示:

二、pc端網站註冊

1、ajax獲取使用者要註冊的使用者名稱和手機號,並驗證是否被佔用,如果已經被佔用,給出相應提示

2、根據生成的隨機數字組合連線簡訊平臺傳送驗證碼

3、刪除本號碼下驗證碼快取

4、新增本號碼下驗證碼快取

5、Ajax獲取兩次密碼並進行比對,如果不一致,作出相應提示

6、驗證驗證碼是否一致

7、如果密碼一致,則執行註冊,並跳轉到首頁,刪除當前手機號驗證碼快取

圖示:

三、第三方登入(qq,微信,微博,coding.net,百度,github等)

各個第三方登入平臺流程類似,這裡介紹qq第三方登入

1、在qq開發者平臺獲取到app_id , app_key , 回撥地址

2、拼接請求url

3、請求時攜帶state狀態值,用於防範csrf攻擊,回撥頁面會原樣返回

4、處理回撥,驗證返回的state值和本地state值是否一致

5、如果state值一致,則再根據返回的code值獲取accsess_token

6、根據accsess_token獲取openid和使用者資料(在第三方平臺上,每一個qq號對應一個唯一的openid)

7、根據openid執行本地登入註冊操作

比如(根據openid判斷是否為網站新使用者,如果是新使用者,則執行網站內部的註冊程式,並生成一個對應的uid,然後將uid寫入session或cookie,實現保持會話。如果openid已經存在,則執行登入操作,直接將openid對應的uid寫入session或cookie,保持會話)。

四、支付流程(第三方支付)

1、使用者將商品加入購物車或立即購買

2、在購物車進行結算或者立即購買時,獲取商品數、總價格,攜帶引數跳轉到確認訂單頁面(包括地址,姓名,商品數,價錢,支付方式等)

3、將訂單資訊寫入資料庫,並跳轉到訂單建立成功頁面

4、使用者點選支付,確認支付請求時,後端根據訂單資訊拼接第三方支付請求url ,並進行請求,跳轉到第三方支付頁面

5、使用者登入第三方賬戶,並進行支付

6、使用者支付成功後,跳轉到支付成功頁面,然後跳轉到同步通知頁面(請求第三方支付時傳入的return_url)

6、商城網站接收到支付非同步通知後(notify_url)根據驗證規則驗證資訊的有效性,並作出相應的更改操作(例:有效則更改訂單為已付款狀態,無效則記錄非法請求資訊)

詳細流程:

退款和關閉訂單類似,詳細請檢視官方文件