我们的系统存在一些问题,我们允许客户使用PayPal付款,这很棒!
但在以下情况下我们有这个问题:
几天后,PayPal拒绝向我们付款,因为客户将其PayPal帐户与其银行帐户相关联。而且该银行账户的资金太低了。
那么,有没有办法让PayPal知道我们何时通过对我们服务器的API / URL调用?
答案 0 :(得分:2)
正如Dagon所说,IPN是解决这个问题的最好办法。
您将在服务器上设置监听器脚本,并且每次PayPal帐户上发生交易时,PayPal服务器都会将有关该帐户的数据发布到您的监听器脚本。根据发生的事务类型,您将获得不同的参数。你可以see a list of the types and parameters here。
您可以在IPN脚本中构建电子邮件通知,数据库更新等,以完全自动化后付款处理任务。
因此,在您提供的示例中,会发生的事情是,当事务首次发生时,将使用待处理的payment_status触发IPN,然后您还会看到名为pending_reason的参数echeck的值。这告诉您付款已经完成,但它是一个需要时间清除的echeck,因此状态再次是Pending而不是Completed。
几天后,当付款确实清除(或失败)时,您将获得另一个带有更新的payment_status的IPN。只有在收到实际的COMPLETED payment_status后,您才能交付订单。
同样,这可以在您的IPN脚本中自动完成。