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)根據驗證規則驗證資訊的有效性,並作出相應的更改操作(例:有效則更改訂單為已付款狀態,無效則記錄非法請求資訊)
詳細流程:
退款和關閉訂單類似,詳細請檢視官方文件