⽀付宝沙箱关于执⾏异步回调时session域中的信息丢失,与解决办法
声明:本⼈⼩⽩起步,⼤学刚毕业,慢慢摸索,不对的地⽅,希望⼤佬指正,杠精勿喷,感谢感谢;
最近在做⼀个⽹上商城的时候,选择⽀付宝⽀付,但是在⽀付宝成功后,会进⾏异步回调,处理⽀付成功结果时候,会发现session失效,本来在session域中的值都为空;在⽹上看了⼀下;个⼈理解为是因为这个session对象是从⽀付宝那边发送过来的,不是从你浏览器⾥⾯发过来的,这个时候session是为空的,所以你根本收不到你原本代码中设置过来的session对象的信息,以⾄于session对象中取不出来你想要的信息
session下载仔细阅读不难发现,这个参数可以解决异步通知的的时候传⼊值的问题,
所以以下讲⼀下如何将session中的值传递到异步通知的⾥⾯的步骤
,在第⼀步:官⽅下载Java版本的SDK⽂件中的pay.jsp⽂件中
如图所⽰,前⾯获取浏览器中的session对象中什么值的⽆所谓,根据⾃⼰需求进⾏获取,拿到想要的值以后,必须要对该值字符串进⾏URLEncode编码,否则传值错误,上⾯已经解释的很详细了,再看不懂我也没招了
第⼆步:回到notify_url.jsp中
获取刚刚设置的参数passback_params的值,然后在进⾏解码,解码获得到的参数就是你刚刚设置的参数的值,注意:最多传输512位,超了的话,可以只取其中⼀个值,然后去数据库中获取这些数据,
问题差不多就解决完了,在异步回调就可以获取到session参数了,
另外补充⼀下,notify_url.jsp异步回调中不能重定向任何页⾯,后来问客服才知道这个问题的答案
不会的东西多问,多看,不要着急,慢慢来
,希望对刚接触⽀付宝的⼩⽩有所帮助,感谢!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论