我正在使用Website Payments Standard
集成,并且在PDT
中,如果由于某些事情导致交易失败,我对在return
页面上向客户显示消息感到困惑,但我不能直接作为Paypal
的响应获得消息,而是获得代码。我想创建一个函数,将代码作为参数并返回错误消息。我去这里读了payment_status
变量。当我看到相同的变量可以在一个地方设置为1,在另一个地方设置为3时,我很困惑。在我的场景中,它到底会返回什么?1除以3还是1除以11?
编辑参见此链接中Mass Pay Variables
和Payment Information Variables
下的变量
payment_status根据txn_type是不同的。这就是为什么它们像这样被分类。如果您得到一个masspay的txn_type,那么payment_status将只是这三个中的一个。大多数txn_type都有一个payment_status,属于您提到的11个列表。如果你使用的是一个标准的按钮,你通常会遵循支付信息变量部分的信息。
另一个注意事项,确保您没有使用PDT处理任何付款后处理,如更新数据库,发送电子邮件通知等。即使启用了Auto-Return,也不能保证用户会返回到你的返回URL,如果他们不这样做,代码将永远不会运行。
相反,您应该使用IPN来处理这样的处理,这与PDT非常相似,只是它完全独立于签出流发生。只要任何交易发生在您的帐户PayPal的服务器将有关该交易的数据POST到您的IPN监听器URL。数据将与您使用PDT查看的数据相同,但是无论用户是否返回您的站点,都将始终触发IPN。
IPN还将允许您正确处理诸如电子支票,欺诈过滤器等在交付产品之前需要清除的未决付款。当等待付款发生时,您将获得一个IPN,当付款更新为完成、失败或其他情况时,您将获得另一个IPN。
IPN还允许您自动执行基于退款、争议等的任务。这是一个非常强大的工具,同样,它绝对比PDT更值得推荐。