支付宝接口notify_url 和return_url有什么区别,notify_url页面好像不能读取session

2024-12-04 11:25:44
推荐回答(2个)
回答1:

汗,怎么会不能读取Session呢?给你粘贴段淘宝技术的解释:

返回页面(return_url文件)工作原理 

即:商户系统请求/支付宝响应交互模式 

1、 构造请求数据 

商户通过提供的接口代码示例,通过代码示例的规则,程序构造与运算得到sign加密结果以及构造后的请求给支付宝的数据集合。GET方式下是URL地址链接,POST方式下是支付宝网关地址及参数集合。 

2、 发送请求数据 

把构造完成的数据集合,通过页面链接跳转或表单提交的方式传递给支付宝。 

3、 请求的交易 

支付宝得到这些集合后,会先做安全校验等验证,一系列验证通过后便会处理完成这次发送过来的数据请求。 

4、 返回相应数据 

支付宝对处理完成的交易,程序上自动进行重新构造成URL地址链接,以自动跳转的方式跳回商家在请求时设定好的页面路径地址(参数return_url,商家没设定,则不会跳回)。 

5、 对相应的数据进行处理

商家的返回页面(参数return_url指定页面文件)得到支付宝返回的数据,把这些数据结合自身网站情况,进行数据处理(如:订单更新)。 

返回页面(notify_url文件)工作原理 

即:支付宝主动通知交互模式(支付宝反馈数据) 

前提:若要支付宝能主动通知,需商户在请求时设定好通知的页面路径(参数notify_url),且该页面文件完全空白,无任何字符。 

1、 发起通知 

一旦交易状态发生变更(如:买家已付款,等待卖家发货),支付宝便会根据自动进行数据处理,并主动调用商户在请求时设定好通知的页面路径(参数notify_url) 

2、 对通知数据进行处理 

商户网站收到支付宝发送过来的通知数据,把这些数据结合自身网站情况,进行数据处理,如:处理返回页(参数return_url)漏掉的订单,做订单更新,即补单措施。 

3、 在页面上输出success 

商户网站处理完成所有的数据处理以后,即程序运行最后,返回写页面“success”这7个字符(页面上只允许输出success),以表示自己已经成功处理完成自己的业务。 

4、 完成处理该次通知,不再发送通知 

支付宝得到商户反馈回来的“success”7个字符信息,进行核对与验证,结束此次通知流程。 

注意: 

如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。一般情况下 25 小时以内完成8 次通知(通知的间隔频率一般是:2m,10m,10m,1h,2h,6h,15h)。

回答2:

肯定不能读取到对应的session的,充值完成后,notify_url这个页面并不是用户访问的,是淘宝的服务器访问过来的,相当于一个新用户,服务器产生一个新的session。
你可以考虑充值成功后,让用户进行刷新积分,从数据库提取积分重新赋值到用户session。