Below are some of the reasons why you are either not receiving your ITN callback or it appears as if you're not receiving the ITN callback:
You're ITN page is unreachable
The URL specified by your notify_url variable could be unreachable.
To test this, open a browser and navigate to the URL yourself. Ensure that the page is in fact reachable and returns a valid HTML response (200 OK etc.).
If your browser times out or gets a 500 error response, then the page is unreachable and indicates that there could be a problem with your web server configuration. Contact your system administrator to resolve this.
You're ITN page performs a 302 redirect
If your notify page tries to redirect to another page immediately, it might not look like you are receiving the ITN callback as, for security reasons, ITN does not follow redirects.
Ensure that all the processing which needs to occur, occurs at the notify_url location itself without requiring a redirect to another location.
Typical instances where this occurs without your knowledge is
where your notify_url is actually protected by a login
mechanism and when the PayFast server tries to POST to it, the
system redirects to a login page asking for a username and
Test this by clearing all session cookies (or using a different browser to normal) and navigating to the page yourself. If it redirects you to another page, that's your problem.
You are making use of an incorrect port
PayFast makes use of ports 80, 8080, 8081 and 443 only