Reputation: 1
One month ago we passed from paypal standard to paypal pro. The integration work fine until Sunday: occasionally paypal return me
Payment_status = Completed
Errore = 503<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>503 Service Temporarily Unavailable</title>
</head><body>
<h1>Service Temporarily Unavailable</h1>
<p>The server is temporarily unable to service your
request due to maintenance downtime or capacity
problems. Please try again later.</p>
</body></html>
How can I find where is the problem?
Upvotes: 0
Views: 4700
Reputation: 1
The 503 response I was getting was "service unavailable" - not exactly the same as this one. The payment status was 'completed'
I phoned PayPal about it and they said it was a problem at their end which they were trying to resolve. They suggested I retry the call.
Here is what I did and it seems to be working.
//$req = set of key/value pairs sent by paypal
// Step 2: POST IPN data back to PayPal to validate
$ir = 0;
while($ir<3&&($ir==0||strpos($res,'Service Unavailable')>0)) {
if($ir!=0) { //wait and try again after 1st try
//log the problem somehow
$sam = 1;
sleep(2);
unset($res);
}
//setup the call
$ch = curl_init('https://www.paypal.com/cgi-bin/webscr');
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close'));
if( !($res = curl_exec($ch)) ) {
//log the problem somehow
curl_close($ch);
exit;
}
curl_close($ch);
$ir += 1;
}
Upvotes: 0