After 16 hours of searching I found the solution here - https://github.com/apih/paypal-ipn-pdt Here is the code: $query_data = [
'cmd' => '_notify-synch',
'tx' => $GET['tx'],
'at' => $this->token
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, 'PayPal');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($query_data));
curl_setopt($ch, CURLOPT_URL, $this->url);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
... View more