2013-10-13 39 views
-1

我有一个用于贝宝的ipn文件,每当进行交易时,贝宝给我发送一个通知,一旦进行了交易,贝宝向我发送通知给我的php文件,我开始处理该交易。PayPal IPN Notificaiton POST可以伪造吗?

用户付费 - >贝宝发送notificaiton与transcation的POST值到我的PHP文件 - >交易被proccesed

我的问题是,可以在此POST值从其他地方insted的实时支付宝发送的?就像有人会发送假的邮政价值到我的IPN PHP文件,我的脚本会认为是贝宝,并将开始处理假交易。

回答

1

理论上,Paypal IPN消息可能是伪造的,但通知过程包括一个验证步骤,允许您验证IPN消息。

这是过程,从Paypal developer page采取:

的IPN消息认证协议包括四个步骤:

  1. 贝宝的HTTP POST的监听器,通知您事件的IPN消息。
  2. 您的监听器向PayPal返回空的HTTP 200响应。
  3. 您的听众HTTP将完整的,未更改的消息发送回PayPal;该消息必须包含与原始消息相同的字段(以相同的顺序),并以与原始消息相同的方式进行编码。
  4. PayPal发回一个单词 - 要么VERIFIED(如果消息匹配原始)或INVALID(如果消息不匹配原始)。
+0

没错。第3步和第4步确保您正在验证的IPN消息是源自PayPal的真正的IPN消息。当然,您需要对像receiver_email这样的东西运行自己的检查,以便它与您的帐户相匹配。 – Robert