酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)

简介: 酷友观点/经验:支付接口返回数据接收地址,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不能跨网站传值的缺陷。

      可能也还有跟好的方法,欢迎大家一起分享交流...

目录
相关文章
|
5月前
|
前端开发 算法 Serverless
中后台前端开发问题之保证用户的token等信息的唯一性和不可伪造性如何解决
中后台前端开发问题之保证用户的token等信息的唯一性和不可伪造性如何解决
57 0
|
8月前
|
小程序 开发者
【经验分享】支付宝小程序如何获取外部链接携带的参数
【经验分享】支付宝小程序如何获取外部链接携带的参数
365 7
|
数据采集 存储 搜索推荐
Python爬虫实战:如何避免被禁止请求
爬虫是一种自动从互联网上获取数据的程序,它可以用于各种目的,例如搜索引擎、数据分析、网络安全等。然而,爬虫也可能遇到一些困难和挑战,例如被目标网站禁止请求。禁止请求是指网站通过一些技术手段,阻止或限制爬虫访问其内容,例如返回403 Forbidden或503 Service Unavailable等状态码,或者重定向到其他页面,或者要求输入验证码等。禁止请求的情况会影响爬虫的正常运行和数据获取,因此,我们需要了解如何应对和解除禁止请求的情况。
266 0
Python爬虫实战:如何避免被禁止请求
|
移动开发
微信h5扫码接口范例:多个扫码框支持的办法,通过引入一个参数来区分及使用localStorage保证之前扫到的数据不丢失
微信h5扫码接口范例:多个扫码框支持的办法,通过引入一个参数来区分及使用localStorage保证之前扫到的数据不丢失
128 0
|
存储 缓存 NoSQL
项目实战典型案例1——redis只管存不管删除 让失效时间删除的问题
项目实战典型案例1——redis只管存不管删除 让失效时间删除的问题
97 0
|
存储 缓存 NoSQL
【项目实战典型案例】01.redis只管存不管删除让失效时间删除的问题
【项目实战典型案例】01.redis只管存不管删除让失效时间删除的问题
|
运维 测试技术
【超干货】近期收到的测试面试题分析
【超干货】近期收到的测试面试题分析
|
存储 自然语言处理 Dubbo
几行代码轻松实现跨系统传递 traceId,再也不用担心对不上日志了!
新项目查日志太麻烦,多台机器之间查来查去,还不知道是不是同一个请求的。打印日志时使用 MDC 在日志上添加一个 traceId,那这个 traceId 如何跨系统传递呢?
1181 0
|
存储 关系型数据库 MySQL
面试常见问题-接口怎么做的幂等
面试常见问题-接口怎么做的幂等
126 0

热门文章

最新文章