日期:2014-05-17  浏览次数:20480 次

关于支付宝和财付通接口的问题,神一般的问题..
财付通:
在return_url页面中,我商家页面处理订单订单状态执行成功,需要返回一个成功页面,
code :response.redirect("http://xxx.aspx");
但是代码在这里报异常,直接执行了异常处理,然后返回首页..,错误日志现实是response.end 线程中止..
然后我用reshandler.doshow(""http://xxx.aspx"");
一样报异常

支付宝:
情况与上面差不多.也是在return页面上,订单处理成功,没有返回指定页,
code :response.redirect("http://xxx.aspx");
根本没执行这个代码,也没爆异常处理,就直接回首页了...这是神马情况...

纠结了2天,还没弄清楚神马情况....请高人指点迷津..


------解决方案--------------------
返回一个成功页面,是异步还是同步的??
异步的不能用session的。
------解决方案--------------------
没遇到过,帮顶下
------解决方案--------------------
那些文档说的都不准的,财付通跟支付宝的return url定义也不一样。
我看楼主的问题,还是异常处理那部分引起的
------解决方案--------------------
Response.Redirect是完全为了兼容老ASP模式的方法。其内部会强制性抛出一个ThreadAbortException结束后面的流程。
你换成它的重载(url,false)后不结束后面的流程,换成HttpContext.Current.ApplicationInstance.CompleteRequest()跳过整个执行管道完成END逻辑。

------解决方案--------------------
探讨
return那个是同步的吧,notifly才是异步吧?而且我没用session,我就想回调一个成功页面

------解决方案--------------------
探讨
Response.Redirect是完全为了兼容老ASP模式的方法。其内部会强制性抛出一个ThreadAbortException结束后面的流程。
你换成它的重载(url,false)后不结束后面的流程,换成HttpContext.Current.ApplicationInstance.CompleteRequest()跳过整个执行管道完成END逻辑。

------解决方案--------------------
Response.Redirect是完全为了兼容老ASP模式的方法。其内部会强制性抛出一个ThreadAbortException结束后面的流程。
你换成它的重载(url,false)后不结束后面的流程,换成HttpContext.Current.ApplicationInstance.CompleteRequest()跳过整个执行管道完成END逻辑。


正解
------解决方案--------------------
探讨
Response.Redirect是完全为了兼容老ASP模式的方法。其内部会强制性抛出一个ThreadAbortException结束后面的流程。
你换成它的重载(url,false)后不结束后面的流程,换成HttpContext.Current.ApplicationInstance.CompleteRequest()跳过整个执行管道完成END逻辑。

------解决方案--------------------
你注意看一下,文档中是否已经定义了 response 或 request,跟你的
response.redirect相冲突了。
------解决方案--------------------
程序员真辛酸啊,一个小小的细节有时就要捣鼓半天,有时更是纠结几天都没解