即时付款通知 (IPN)
服务介绍
客户向您发送付款、或付款遭到撤消或退款时,PayPal将向您指定URL的服务器发送通知。此通知将包含您客户的所有付款信息(例如,客户名称、付款金额),以及一段加密代码。当服务器收到通知时,它随后会将该信息(包括加密代码)发送回安全的PayPal URL。PayPal将对该笔交易进行确认,然后向您指定的服务器发送该笔交易有效性的确认信息。
提示:要启用即时付款通知,您需要在您的“用户信息”中输入您要用来接收通知信的URL。
启用了即时付款通知后,每次当您接收付款时您的服务器都会收到一个通知,此通知将以隐藏的“FORM POST”的方式发送到指定的URL,并将包括所有付款信息。该通知的表格变量请参阅即时付款通知(IPN)手册。
每次收到来自PayPal的IPN时,您必须在实施订单之前完成如下所述的通知确认过程。确认列出的信息将可确保交易合法。
通知确认
为了确保付款已进入您的PayPal账户,您必须验证用作“receiver_email”的电子邮件地址是否已在您的PayPal账户中注册并得到确认。
服务器收到即时付款通知后,您将需要通过构建一个发送到PayPal的HTTP POST对其进行确认。您的POST应发送到https://www.paypal.com/cgi-bin/webscr
(当您收到时)。您还需要将一个值为“_notify-validate”的名为“cmd”变量(例如,cmd=_notify-validate)附加到POST字符串。
PayPal将回复该POST,并在回复的正文中包含一个单词“VERIFIED”或“INVALID”。当您收到VERIFIED回复时,您需要在实施订单之前执行若干检查:
- 确认“payment_status”为“Completed”,因为系统也会为其他结果(如“Pending”或“Failed”)发送 IPN。
- 检查“txn_id”是否未重复,以防止欺诈者重复使用旧的已完成的交易
- 验证“receiver_email”是已在您的PayPal账户中注册的电子邮件地址,以防止将付款发送到欺诈者的账户
- 检查其他交易详情(如物品号和价格),以确认价格未改变
完成了以上检查后,您可以使用 IPN 数据更新您的数据库,并处理购物。
如果收到“无效”通知,则应将其视为可疑通知,并应对其进行调查。
IPN 变量
有关所有 IPN 变量的完整列表以及如何使用“即时付款通知”的详细说明,请参考网站付款标准版集成指南
Adobe Acrobat 是阅读PayPal的手册的必要工具。