paypal标准版支付成功,如何获取它的返回信息,使该订单在我的网站的状态改为“已支付”?

fyjade 2007-11-16 05:56:09
<input type="hidden" name="notify_url" value="http://XXX/payNotify.aspx">
<input type="hidden" name="return" value="http://XXX/payReturn.aspx">
这是用户post到paypal的表单项,我知道return是显示给用户看的信息,不做操作用;真正能够与paypal进行交互核对和对我的数据库字段进行操作的应该是notify_url这个页面。但查了很多文档,对详细的机制和实现方法还是比较模糊。请有过开发经验的大侠指点!
ps:没有购物车,就是直接支付单笔。
...全文
1935 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zouyunhu 2010-06-09
  • 打赏
  • 举报
回复
嘿嘿 介绍的很详细 非常感谢各位
fcuandy 2007-11-17
  • 打赏
  • 举报
回复
qq号短消息回你了,呵呵.有问题在发到论坛上大家一起讨论.分不是要紧的.
qq22345111 2007-11-17
  • 打赏
  • 举报
回复
paypal标准版支付成功,如何获取它的返回信息,使该订单在我的网站的状态改为“已支付”?
这个是你是数据库的问题!
应该有一个订单表,一个订单明细表
你前台所见的应该是指你的显示订单状态,你的显示页面去绑定数据库中的状态
xhlnb 2007-11-17
  • 打赏
  • 举报
回复
怎么你没有接口文档吗?
原理是这样的你发送到payReturn.aspx这个页面的时候 会带有一些参数过去的 比如 商户ID 密码 支付设置等及自定义的一些参数,不过这些统统经过MD5加密后再发送过去,好了对方处理完就把结果返回你所指定的页面payNotify,返回过来有一个字段值也是经过MD5处理,介时你就可以两都比较数据是否相等,另外充入成功有个独立的字段返回,是true你就可以自个处理业务了。
fyjade 2007-11-17
  • 打赏
  • 举报
回复
对了,感谢fcuandy兄。能把你的qq号告诉我吗?
本帖100分,fcuandy兄85分,xhlnb兄10分,qq22345111兄说得太模糊,也给5分。结贴。
fyjade 2007-11-17
  • 打赏
  • 举报
回复
感谢,正在用公网页面测试,如果成功马上给分。
fcuandy 2007-11-17
  • 打赏
  • 举报
回复
1
根据你的解答,我的理解是:notify_url页面接收paypal的回传是在后台进行的,也就是说我不需要让浏览器打开访问notify_url,它就可以响应回传并做出相应的处理。是这样的吗?

是这样的. 很简单的,你在 notify_url 里写一个很简单的东西比如
cmd.exe...("insert paylog(logtime) select getdate())");
支付一次,然后看paylog表的记录,就知道这个页面有没有被触发过了.
如果有记录,表明触发过了,而你又接收不到数据,那么说明你在paypal上的设置不对,或者你在notify_url取paypal post过来的数据时写的有问题.

2.
问题就在这里.
notify_url和reutrn url都要设置在公网上(不是说非要有公网ip,这里指的是能被外网访问,比如在你公司的路由器上设置端口映射指到内网一个web server的80端口上,只要外部能访问这个地址就可以了,什么花生壳的动态域名之类的都可以.).
你用loacalhost. 假设我就是paypal,我想给你post数据也post不过去.
fyjade 2007-11-17
  • 打赏
  • 举报
回复
fcuandy,你的解答让我对这个东东的理解又进了一步,谢谢。
根据你的解答,我的理解是:notify_url页面接收paypal的回传是在后台进行的,也就是说我不需要让浏览器打开访问notify_url,它就可以响应回传并做出相应的处理。是这样的吗?
但是我这样试了,结果看起来notify_url从未运行一样。
我测试用的notify_url和return都是http://localhost/…….aspx,不知道是不是这个原因,使得我“加上验证命令字串,再post到paypal”这个步骤的尝试未能成功。
fcuandy 2007-11-17
  • 打赏
  • 举报
回复
notify_url 指的是通过ipn方式post数据到的url.
return url指的是当支付成功后,从paypal跳转到的url.

一个是串连的,一个是并连的.
ipn方式,当你在paypal支付成功后,paypal会立即post一串数据到 notify_url.
return,当你在paypal支付成功后,paypay延时10s跳到你指定的url.当然你(作为顾客)可以马上点跳回来.

具体的你可以到 sandbox.paypal.com 看看.或是developer.paypal.com

当使用 auto return 方式时,
支付成功,paypay跳到你指定的url,并显式(get方式)的将数据提交到你指定的url.你支付完成,在你指定的url栏就可以看到它提交过来的参数.

当使用 ipn 方式时,
支付成功,(或是争议,或是撤消支付),都会 post 一串数据到你指定的 url . 你的url中程序获得post的数据,然后加上验证命令字串,再post到paypal指定的 验证的url,再次获得它的返回结果,若 VERIFIED 则表示得到的信息是有效的. 若 INVALID 则表示你开始得到的数据是无效的.
要注意,即使是 VERIFIED ,也不代表是支付成功. 这个仅仅是验证信息有效. 是支付成功,还是撤款,还是争议,或是其它交易变更都是在第一次得到的数据中的取得的.Payment_status还是什么,我记不太清,具体参数值,请参见paypal order integration guide
fyjade 2007-11-17
  • 打赏
  • 举报
回复
感谢xhlnb和qq22345111的热心解答,不过还是没能解开我的疑问。
我现在没弄懂了是:如上我的表单里的两个隐藏域,(1)"notify_url"的value是"http://XXX/payNotify.aspx",(2)"return"的value是"http://XXX/payReturn.aspx",那么:
1、paypal的返回值是传到我的notify_url页面还是return页面?
2、paypal的页面和我的notify_url页面和return页面之间的交互流程是怎样的?
3、我应该在我的notify_url页面和return页面里写怎样的代码来接收和处理paypal的回传值?

62,046

社区成员

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

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

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

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