Payfast支付网关ITN在php中重复响应

时间:2016-11-11 07:08:45

标签: php payment-gateway payment

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

1 个答案:

答案 0 :(得分:1)

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

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

  

从PayFast接收付款信息然后通过触发标题200告诉PayFast该页面是可到达的,付款引擎将进行几次尝试,一次立即然后再一次10分钟后,然后以更长的间隔指数级,直到它从您的Web服务器收到一个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