使用第三方支付回调时SESSION失效的问题

最近使用支付宝api的过程中,遇到了一个问题,完成支付后由支付宝回调的return_url.php文件开始,之前保存用户登陆信息的SESSION失效了。百度之后看到一篇帖子写的颇为清晰,他的方法我并没能理解,因此找出了适合自己的方法。

1、在付款的表单中新加一个隐藏的input,用于放SESSION中的登陆信息。当然也可以在第二部中直接从SESSION中读取信息,但是那样做耦合度太高,因此采用这种方式

<input type="text" name="WIDextra_common_param" value="..select from session..">

2、在alipayapi.php文件中找到要请求的参数数组$parameter,并将该input值加入其中

$parameter = array(
    ....
    "extra_common_param"=> $_POST['WIDextra_common_param']
);
3、在return_url.php中,使用GET方法获取extra_common_param的值并更新SESSION

$extra_common_param = $_GET['extra_common_param'];
//更新SESSION
再进行自定义跳转,即可。


extra_common_param为AlipayAPI中的公共参数(以前好像叫私有域),就是专门用来存放用户的其他信息,在构造请求参数数组的时候它的名字必须是API文档中写的名字,这样才能GET到该参数。Alipay不允许自定义参数,否则会导致验证失败,因此需要严格遵守文档中的命名格式,该参数名在各版本中可能会有所不同。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值