【问题标题】:Payfast payment gateway ITN rersponse in php [closed]php中的Payfast支付网关ITN响应[关闭]
【发布时间】:2017-03-25 09:10:09
【问题描述】:

我已集成 payfast 支付网关。重定向成功页面和通知页面后,我没有收到 payfast 的任何响应。什么是响应参数以及如何在数据库中存储事务详细信息?

【问题讨论】:

  • 你的 notify_url 是否返回 200 响应?
  • @Daniel_ZA 我们如何检查 notify_url 的状态?
  • @PathikVejani 您可以使用 Postman 或任何其他类似工具在页面上发布帖子,然后查看回复。

标签: php payment-gateway payment


【解决方案1】:

付款成功后,PayFast 将通过 ITN 回调将他们的return variables 返回到您的系统。

如果根据documentation 返回header 200 响应,这些返回变量将返回到您的notify_url

从 PayFast 接收支付信息,然后通过触发 header 200 告诉 PayFast 这个页面是可访问的,支付引擎将进行几次尝试,立即尝试一次,然后在 10 分钟后再次尝试,然后以更长的时间间隔呈指数增长,直到它从您的网络服务器收到 OK 200。

您将能够通过$_POST 变量访问返回的值,并使用这些值来更新您的数据库。

// Notify PayFast that information has been received
header( 'HTTP/1.0 200 OK' );
flush();

// Posted variables from ITN
$pfData = $_POST;

//update db
switch( $pfData['payment_status'] )
{
 case 'COMPLETE':
    // If complete, update your application, email the buyer and process the transaction as paid                    
 break;
 case 'FAILED':                    
    // There was an error, update your application
 break;
 default:
    // If unknown status, do nothing (safest course of action)
 break;
}

您可以查看 PayFast 示例 PHP ITN 代码here

【讨论】:

  • 你好丹尼尔。一个SA'n在这里。我正在笔记本电脑上的 codeigniter 框架和 WAMP localhost 环境中实现 Payfast。现在它似乎没有解析 PF 源 IP 地址,返回“源 IP 无效”(使用他们开发页面上的 PF 代码。你认为这是因为它在“本地主机”上,我试图实现一个返回?(如果相关,我的签名逻辑确实匹配/验证,所以我已经超越了这一点)。感谢任何输入,谢谢。
  • 嘿马里奥,当尝试将返回变量回发到您的 notif_url 时,PayFast 将无法访问您的本地主机。您可以使用 Ngrok 等服务来设置到本地主机的隧道。
  • 与此同时,我将脚本复制到我的实时服务器 d-base.co.za 并返回相同的错误。但是,我确实注意到 PF 网页上的脚本与我去年获得的版本(cURL 部分)略有不同。我只是要通过它,看看我是否发现了一些变化。我很感激你的回复。如果我发现问题,出于兴趣,会通知您。谢谢回复的小伙伴。赞赏。
  • 现在我很困惑,不确定它是否正确。当我在屏幕上转储var_dump($_SERVER['REMOTE_ADDR']) 时,它会返回我的本地路由器 IP 地址,并且脚本在我的远程服务器上。你可以在这里看到它link。我假设这是正确的?另外,我用你建议的 Ngrok 创建了一个隧道,它返回的 remote_address 是“::1”。我不确定要尝试什么。
猜你喜欢
  • 2017-03-23
  • 2017-04-26
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
  • 2020-01-29
  • 2012-12-12
  • 1970-01-01
  • 2011-01-18
相关资源
最近更新 更多