酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)...
酷友觀點/經驗:支付接口返回數據接收地址,session數據丟失(或者說失效)的問題淺析(原創文章)? | |
?????? 最近手頭在開發一個游戲官網,在支付模塊采用神州付技術支持,神州付數據表單中要求提供服務器返回地址和頁面返回地址,相信做過這類接口的朋友應該猜到這兩個地址的作用。小編解釋下,我們在購買物品或者服務完成,通過支付工具(支付寶、財付通、神州付等等)付款成功之后,支付工具會將訂單數據返回給服務器返回地址,同時將頁面跳轉到頁面返回地址....
?????? 在服務器返回地址接受返回過來的訂單數據時,會對支付過程進行判斷,如果支付成功,則在網站數據庫中添加訂單信息。我們添加訂單信息的時候往往會有個字段,用于存儲用戶姓名,而用戶姓名則會存儲在session("user_name")中。
?????? 好了,說到這里,問題出來了。session("user_name")中的數據只能在同一個網站下的網址中自動保存和傳遞,而服務器返回地址是由支付工具跳轉過來,在支付頁面是不存在session("user_name"),跳轉到服務器返回地址后,自然也就接收不到session("user_name")的值,在做訂單數據添加時,用戶姓名字段就成了空字段。這就是session丟失或者說是失效。
????? 最近在網上收羅了很多解決方案,整理之后,感覺有這么兩種方法還不錯...
??????第一:建立專門數據庫,在支付之前,根據訂單號對應存儲session("user_name")值,在跳轉回服務器返回地址時,再根據訂單號,從數據庫提取出session值來添加訂單信息。
????? 第二:有些支付工具可以使用,以神州付為例,在提交的訂單信息欄目中,有特別一項可以用于存儲用戶的私有信息(privatefield),那就可以利用這一項來代替session("user_name") ,接受session("user_name")值并返回給服務器返回地址,彌補了session不能跨網站傳值的缺陷。
????? 可能也還有跟好的方法,歡迎大家一起分享交流...
總結
以上是生活随笔為你收集整理的酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL 5.6 Threadpool
- 下一篇: GTK重拾--00