paypal 的ipn机制的疑问

onetwofree 2011-04-02 11:25:37
现已已经完成了购物车的工作和支付的工作了。

ipn接受数据的接口也做通了。如果流程正常完成,当订单的交易每次交易状态的更改后,网站都会受到来自paypal的ipn请求,收到请求后更新订单数据。一切没有问题。

但是必须要能考虑好可能发生的异常:
譬如:本站的ipn的地址为: http://abc.vicp.net:81/paypal_ipn.asp
1)当自身网站由于临时技术故障(如IIS重启,回收站资源在回收的过程中),那么网站无法记录到这个ipn请求。无法更新订单的信息。

2)其他网络故障的时候(如受到ipn请求时,回发到paypal验证的时候遇到网络故障,xmlhttp请求返回非200状态)。

第一个问题,google的时候,有说如果paypal发送ipn失败的时候,会在4天内连续尝试重发。但是用paypal的sandbox测试的时候,一直没能收到重发的ipn请求。是否正式使用paypal的时候,paypal的服务器会正常尝试发送,仅仅是sandbox自身的问题而导致不重发呢?

第二个问题,我想收到ipn数据的时候,记录到数据库中,以便网站后台可以自动尝试读取这些数据然后post到paypal进行验证。请问这种做法是否可以呢?

...全文
287 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
LONGZHEZHILONG 2011-05-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 buker19999 的回复:]
1、PP正式环境下是如果遇到接收方是非200状态时,是会重复发的,sandbox没有这个机制。
2、这个问题似乎并不成立,既然PP把数据给你,你也保存好了,你又post给它验证什么呢?
[/Quote]

同意第一个观点

我想回答第二个问题:当你接受到paypal的post数据时,你是可以用数据库来保存这些数据的,但是保存完之后,你不必再从数据库中取出来再post到paypal去验证是否合法,而是直接用刚接收的数据在后台中post到paypal去验证是否合法。保存到数据库中只是为了方便你的查看,没其他用途。
猜我是几娃 2011-04-08
  • 打赏
  • 举报
回复
1、PP正式环境下是如果遇到接收方是非200状态时,是会重复发的,sandbox没有这个机制。
2、这个问题似乎并不成立,既然PP把数据给你,你也保存好了,你又post给它验证什么呢?
qpang 2011-04-08
  • 打赏
  • 举报
回复
回答你第一个问题: PayPal 真实环境下IPN服务器是会重复发送IPN消息直到你收到为止
如果确实没有,你可以登录到你的paypal.com,然后可以让ipn重新发一次,但是只有一次

第二个问题 你先记录了数据,然后再验证,这样做存在一定的风险。

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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