Php 使用贝宝支付信息
我已经使用php集成了Paypal。我知道有返回url,这意味着收到付款后,它将返回到我们网站的url。Php 使用贝宝支付信息,php,paypal,payment-gateway,Php,Paypal,Payment Gateway,我已经使用php集成了Paypal。我知道有返回url,这意味着收到付款后,它将返回到我们网站的url。我的问题是,如果收到付款,但由于互联网问题,它不会返回到我们的网页,我如何知道收到了特定用户的付款?下面的项目可能会有所帮助。即时付款通知应该可以工作,但在网络故障的情况下,如果付款到达PayPal,但购买者没有返回您的站点完成购买,那么您仍然应该收到PayPal的电子邮件,告知您已收到付款 您会收到一封带有姓名和电子邮件地址的确认电子邮件-请注意,有时这可能不是用户当前最活跃的电子邮件地址
我的问题是,如果收到付款,但由于互联网问题,它不会返回到我们的网页,我如何知道收到了特定用户的付款?下面的项目可能会有所帮助。即时付款通知应该可以工作,但在网络故障的情况下,如果付款到达PayPal,但购买者没有返回您的站点完成购买,那么您仍然应该收到PayPal的电子邮件,告知您已收到付款 您会收到一封带有姓名和电子邮件地址的确认电子邮件-请注意,有时这可能不是用户当前最活跃的电子邮件地址。当然,您也可以登录PayPal仪表板查看所有详细信息 您可以从电子邮件中查找您的付款详细信息,并将其与数据库中您自己的用户记录进行比较。如果他们为PayPal使用的电子邮件与他们在您的网站上注册的电子邮件不同,您仍然可以从电子邮件中查找他们的姓名-实际上,在我的个人经历中,付款出现这样的问题似乎是极为罕见的 我设置了一个脚本,向我的用户发送带有密码的电子邮件,以获取他们购买的在线产品,并通过电子邮件发送给他们,以便他们稍后可以将其与电子邮件地址一起提交。这是返回到我的脚本时发生的第一件事,因此,至少如果网站未能正确响应,他们可以在以后获得他们购买的内容 脚本使用PHPMailer和cc的me以及他们的密码,因此如果他们写投诉,我可以将其重新发送给他们。如果PayPal返回即时支付通知完全失败,这没有帮助,但其他答案非常全面,并详细说明了PayPal重复尝试过程
即时付款通知脚本可以从PayPal下载,以便根据上面链接的文章进行修改。为此,您必须使用notify\u url
<input type="hidden" name="notify_url" value="https://domain-name.com/ipn.php">
在应用程序中,您应该有一个订单状态字段。如果您尚未收到ipn,则不会将状态更改为“已支付” 之后,如果您收到Paypal发来的有人付款的电子邮件,请检查订单号,然后手动更改状态 我如何知道付款是从特定用户处收到的
Paypal将向用户和您发送电子邮件。如果出现网络问题,并且Paypal无法发出IPN消息,则根据他们的文档,他们将重试15次,最多4天 IPN消息服务并不假定您的侦听器将接收所有IPN消息。由于互联网不是100%可靠,IPN可能会丢失或延迟。为了解决这些问题,IPN消息服务包括一个重试机制,它以不同的间隔重新发送消息,直到您的侦听器确认收到消息为止。IPN消息可能在原始消息发送后四天内出现。最大重试次数为15次
老实说,这是贝宝标准最大的漏洞之一。IPN是一种事后回调(就像PDT一样),他们会检查以确保获得
200
响应,否则会重试(您可以使用PayPal帐户中的IPN历史记录来重新发送丢失的IPN)。但是这种方法仍然依赖于您及时获得回调,而且它不是万无一失的。更糟糕的是,您需要验证IPN呼叫,这会导致另一个失败点,即致电PayPal以确保他们确实向您发送了您获得的IPN
有几种方法可以解决这个问题
贝宝为您的问题提供了两种解决方案
干杯,如何知道与我的web应用程序链接的购买者的用户名您能让您的web应用程序在尝试购买时向您发送通知吗?