酷友观点/经验:支付接口返回数据接收地址,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不能跨网站传值的缺陷。
可能也还有跟好的方法,欢迎大家一起分享交流...
最新文章
- java多线程通信 例子
- 触摸java常量池
- asp.net 获取当前项目的根目录路径
- ReferenceQueue的使用
- AVPlayer的使用本地视频
- SQL是关于集合的
- qt+2012+qtcreator 配置
- iOS开发之深入探讨runtime机制02-runtime的简单使用
- ANDROID_MARS学习笔记_S01原始版_016_Service
- .net 实现注册邮箱验证激活
- django笔记(二)
- Swift - 滑块(UISlider)的用法
- Rosenbrock function
- python基础学习之文件操作&;函数
- shell脚本颜色输出(实例未编辑)
- APP如何进行通信的
- Linux之文档与目录结构 目录的相关操作 Linux的文件系统
- vue:vue-resource
- Java为什么不支持多继承
- [Selenium] Java代码获取屏幕分辨率
热门文章
- js小例子(标签页)
- ural 1072. Routing
- Codeforces Round #364 (Div. 2) B. Cells Not Under Attack
- js两个小技巧【看到了就记录一下】
- ubuntu 安装 OpenCv 及其Qt的开发环境配置
- SVN版本控制工具使用学习
- 【BZOJ2186】【SDoi2008】沙拉公主的困惑 数论
- 【BZOJ2038】【2009国家集训队】小Z的袜子(hose) 分块+莫队
- POJ 3320 尺取法,Hash,map标记
- RSA加密算法原理及RES签名算法简介