问题:

项目A使用项目B的支付宝配置信息,支付成功后,进入到了回调地址中,回调地址中的业务处理代码页执行成功,但是在跳转到商户页面时,跳转到非指定页面(如登录页面)或跳转到指定页面但是要求登录。

原因:

session丢失

解决方法:

方法一:在蚂蚁开放平台给项目A创建单独的应用,并指定项目A自己的回调地址。

方法二:蚂蚁开放平台的项目B中不指定回调地址。

方法三:在回调地址中携带登录用户的session信息,然后在回调地址中接收登录用户的session信息,判断如果获取不到登录用户的session,则把携带过来的session信息赋值。

下面代码是在回调地址中加上登录用户的session信息,

$aop = new AopClient ();
$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
$aop->appId = 'your app_id';
$aop->rsaPrivateKey = '请填写开发者私钥去头去尾去回车,一行字符串';
$aop->alipayrsaPublicKey='请填写支付宝公钥,一行字符串';
$aop->apiVersion = '1.0';
$aop->signType = 'RSA2';
$aop->postCharset='GBK';
$aop->format='json';
$request = new AlipayTradePagePayRequest ();//组织登录用户的session信息,作为参数传递给回调方法,returnUrl是通过get接收参数,所以传递的参数中不能包含=,因此使用urlencode方法和http_build_query方法处理登录用户的session信息
$loginInfo = urlencode(http_build_query(session('login_user_auth')));//设置请求的异步和同步回调地址
$request->setNotifyUrl('http://www.example.com/index.php?s=/ModuleName/ControllerName/notifyUrl');//异步跳转地址
$request->setReturnUrl('http://www.example.cn/index.php?s=/ModuleName/ControllerName/returnUrl/loginInfo/'.$loginInfo);//同步跳转地址$request->setBizContent("{" ."\"out_trade_no\":\"20150320010101001\"," ."\"product_code\":\"FAST_INSTANT_TRADE_PAY\"," ."\"total_amount\":88.88," ."\"subject\":\"Iphone6 16G\"," ."\"body\":\"Iphone6 16G\"" .
"}");
$result = $aop->pageExecute ( $request); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
$resultCode = $result->$responseNode->code;
if(!empty($resultCode)&&$resultCode == 10000){echo "成功";
} else {echo "失败";
}

下面代码是在回调地址中对接收到的参数做处理,

/*** 支付宝支付成功的同步回调函数*/public function returnUrl(){//接收支付宝的通知返回参数$arr = $_GET;//获取到传递给回调方法中的登录用户的session信息parse_str(urldecode($arr['loginInfo']),$loginInfo);//销毁掉参数中多余的参数,支付宝验签时指定了需要的参数,其他的都是多余的参数,需要unset掉unset($arr['loginInfo']);Vendor('Alipay.service.AlipayTradeService');$alipaySevice = new \AlipayTradeService($config);$result = $alipaySevice->check($arr);#此处的$arr中不能有支付宝指定验签参数之外的其他参数,否则返回的$result为falseif($result) {//验证成功/**************商户的业务逻辑代码******************/...//判断登录用户的session是否还在$loginSession = session('login_user_auth');//如果不在了,则把传递的session信息赋值if(empty($loginSession)){session('login_user_auth', $loginInfo);}//业务处理完后,跳转到商户的页面$this->success('/ModuleName/ControllerName/ActionName');//$this->redirect('/ModuleName/ControllerName/ActionName');}else {//验证失败echo "fail";}}

如上处理后,就解决了回调方法后跳转到商户页面session丢失的问题。

支付宝支付成功后要重新登录问题解决小记相关推荐

  1. 支付宝支付成功后通知在微信打开的提示页面

    背景 正常情况下,在微信浏览器使用支付宝支付,会出现一大坨链接,让你手动的复制到浏览器打开去操作. 这样的用户体验,别说用户,就连没有审美的程序员也不能忍的. 于是阿力饼饼给出了方案,倒不是解决跳转的 ...

  2. 支付宝支付成功后session失效

    在做一个项目的时候,接入了支付宝的支付,在支付成功后,支付宝回调给定的回调地址,回来后登录信息失效了,找了好多资料,没有发现好的解决方法.项目中用的是spring+shiro,后来这样修改 在调用支付 ...

  3. 支付宝支付成功后验证失败

    错误的原因:     签名失败. 解决办法:     修改密钥的相对路径. 举例:(看了之后一定要自己领悟!领悟!再领悟!然后...) 1.假设你网站系统某订单要发起的支付URL是如下这样的:     ...

  4. 支付宝回调地址index.php,支付宝支付成功回调地址怎么不改变当前页面?

    手机端支付宝支付成功后 会有一个回调地址"http://pay.xxx.com/channel/alipayWap/return_url.php?is_success=T&notif ...

  5. android支付宝支付成功后调其他界面,支付宝支付成功回调地址怎么不改变当前页面?...

    手机端支付宝支付成功后 会有一个回调地址"http://pay.xxx.com/channel/alipayWap/return_url.php?is_success=T&notif ...

  6. app接入支付宝后,支付成功后,回调不响应

    1.在支付时使用的是 [[AlipaySDK defaultService] payOrder: fromScheme: callback:^(NSDictionary *resultDic) { N ...

  7. 关于订单支付成功后一些逻辑的处理

    2019独角兽企业重金招聘Python工程师标准>>> 在实际的工作当中有可能涉及微信支付或是支付宝支付,支付成功后支付网关需要把成功支付的订单信息回调到你指定的方法上,然而有些情况 ...

  8. 【注释张豪华版 Path酷炫动画】极速get花式Path (支付宝支付成功动画)

    本篇文章已授权微信公众号 hongyangAndroid (鸿洋)独家发布 转载请标明出处: http://blog.csdn.net/zxt0601/article/details/54018970 ...

  9. Android自定义控件(二)——支付宝支付成功动画

    读律看书三九年,乌纱头上有青天,男儿欲画凌烟阁,第一功名不爱钱. 不知道大家关注过没有,在你使用支付宝的过程中,有一个支付成功的动画,虽然说很小,但看起来其实还是蛮实用的,涉及的知识点有Android ...

最新文章

  1. 精益与敏捷开发(随笔)
  2. 6道简单的python练习题,来看看你python基础学的咋样
  3. 【Django】基于Django架构网站代码的目录结构---转载
  4. jzoj4282-[NOIP2015模拟10.29B组]平方数游戏【构造】
  5. 前端学习(2802):完成资讯页面详情
  6. win10关闭快速启动_Win10系统做了这3项优化,让你的电脑告别卡顿
  7. java springboot点餐外卖源码
  8. 一篇文搞懂《AOP面向切面编程,DevOps生命周期
  9. Flutter 2.10 开发Windows桌面应用快速入门
  10. 线粒体DNA(mtDNA)捕获探针panel试剂盒myBaits Expert Mito,适用各种样本类型(包含降解和环境DNA,化石或博物馆样本均可),应用于遗传学研究
  11. 户外便携吹尘器方案浅析
  12. autoit-v3 编辑工具SciTE Script Editor 解决中文乱码+中文换行崩溃问题
  13. 网络工程的工作任务课堂作业
  14. 统计打印字符串arg中每个字符出现的次数
  15. 优秀工程师应该具备哪些素质_优秀的工程师该具备什么能力?
  16. zabbix学习笔记——入门篇
  17. Ac Rush 楼天成回忆录
  18. Spring Bean 是什么?
  19. 《赖世雄的英语学习法》笔记
  20. 德国奔驰将自主研发车载系统MB.OS,对抗Tesla

热门文章

  1. 灵飞经·西城八部·风流云散1
  2. [歌曲推荐] 基于语义信息的歌曲推荐
  3. 【vs2022】vs2022的git安装后git bash 右键消失:新增在当前路径打开
  4. 消防标识线是什么颜色?消防标志和标牌有什么设置要求?
  5. EduSoho 网校系统部署
  6. 072 定积分之积分上限函数
  7. 高分文章信手拈来?这本有望破10分的期刊,国人发文占比过半
  8. java获取域名Whois注册信息
  9. c语言循环 等待,[转载]while语句实现等待一段时间:编写延时循环
  10. 职业规划之ABZ,未雨绸缪35岁危机