paypal支付成功后不会异步调用notify_url里面的页面

Netcean 2011-08-31 03:52:35

<form name="paypal" target="_blank" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick"/>
<input type="hidden" name="notify_url" value="http://www.xxx.com/paypal/success.aspx"/>
<input type="hidden" name="business" value="wj02w0_1314675989_biz@126.com"/>
<input type="hidden" name="item_name" value="order information"/>

<input type="hidden" name="amount" value="10.00"/>
<input type="hidden" name="currency_code" value="USD"/>
<input type="hidden" name="on0" value="customerId"/>
<input type="hidden" name="os0" value="stephen"/>
<input type="hidden" name="on1" value="address"/>
<input type="hidden" name="os1" value="shanghai china"/>
<input type="hidden" name="return" value="http://www.xxxx.com/paypal/ok.aspx"/>
<input type="hidden" name="cancel_return" value="http://www.xxx.com/paypal/cacel.aspx"/>
<input name="button1" type="button" value="Go to Paypal" onclick="javaScript:this.form.submit();"/>
</form>


上面是提交的页面,里面已经设定了notify_url(并且在paypal后台也设置了同样网址的“即时付款通知习惯设定”),当支付成功后会跳转到ok.aspx页面,就是不会访问notify_url所设置的页面。

success.aspx页面的代码是:

protected void Page_Load(object sender, EventArgs e)
{
HttpCookie cookie = new HttpCookie("PaypalInfoErr");
DateTime dt = DateTime.Now;//定义时间对象
TimeSpan ts = new TimeSpan(1, 0, 0, 0);//cookie有效作用时间,具体查msdn
cookie.Expires = dt.Add(ts);//添加作用时间
cookie.Values.Add("ppItem", DateTime.Now.ToString());
Response.AppendCookie(cookie);//确定写入cookie
}

里面就把当访问该页时,把当前的时间写入cookie,而过一会我刷新GetCookie.aspx,发现PaypalInfoErr一直为空
GetCookie.aspx


protected void Page_Load(object sender, EventArgs e)
{
if (Request.Cookies["PaypalInfoErr"] != null)
{
Response.Write("<br/>PaypalInfoErr不为空");
Response.Write("<br/>" + Request.Cookies["PaypalInfoErr"]["ppItem"].ToString());
}
}
...全文
1881 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
justxcy 2013-06-13
  • 打赏
  • 举报
回复
额,还是没有解决到底怎么才能跳转notify_url嘛,我也遇到了这样的问题了,怎么办?到底有没有人知道啊
utopia 2011-10-18
  • 打赏
  • 举报
回复
notify_url" value="http://www.xxx.com/paypal/success.aspx"/>
return" value="http://www.xxxx.com/paypal/ok.aspx"/>

notify_url 和 return 是不一样的, 看下paypal的资料先

return就是用来返回给客户看到, paypal付款后, 自动会跳到这里, 一般显示给客户说, 付款成功 等等。

notify_url 实际上用来处理付款成功后, 本地数据库的一些操作,这个可以理解为异步的, 用户即使付款成功后, 就断电机器烧了, 或者关闭了浏览器, paypal也会朝notify_ur定义的链接发数据, 这里设定的链接,本来就不是给客户看的链接,而是后端处理用的。
usstdiy 2011-10-18
  • 打赏
  • 举报
回复
看错了,你是写cookie,把cookie写道paypal服务器上了。
然后在自己电脑上读cookie,当然读不到。
usstdiy 2011-10-18
  • 打赏
  • 举报
回复
没看过开发手册,猜想:
notify_url 应该是服务端通知,而不是浏览器重定向,由paypal服务器发起对succ页面的web请求,你的代码里是写的是获取cookie,是想获取客户端信息,实际获取的却是paypal服务器上的cookie,因此永远是false。
在page_load加个日志,可以知道是否被notify.
Netcean 2011-09-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 evil_steve 的回复:]
确定支付成功?
[/Quote]

是的,确定支付成功。付款、收款帐户都有记录
子夜__ 2011-09-01
  • 打赏
  • 举报
回复
没懂啥意思。。
Netcean 2011-09-01
  • 打赏
  • 举报
回复
IPN代码在哪看
我是在沙箱中测试的。
evil_steve 2011-08-31
  • 打赏
  • 举报
回复
确定支付成功?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧