I've been using PayPal IPN for years, and on Sept 13, 2016, my IPN listener started having problems. It looks like the mc_shipping field isn't being returned at all now, and custom field is coming back empty (though I am sending the user's ID).
Here is the code I use to contact PayPal:
$ch = curl_init('https://www.paypal.com/cgi-bin/webscr');
$myemail = "[email protected]";
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)) ) {
$error = "CURL ERROR";
$text = "Got " . curl_error($ch) . " when processing IPN data";
include ("log_ipn_error.php");
curl_close($ch);
exit;
}
curl_close($ch);
Here is what I'm getting back from PayPal:
cmd=_notify-validate&mc_gross=4.95&protection_eligibility=Eligible&address_status=confirmed&item_number1=03&payer_id=[removed for security reasons]&address_street=[address removed for security reasons]&payment_date=09%3A04%3A13+Sep+14%2C+2016+PDT&payment_status=Completed&charset=windows-1252&address_zip=59422&first_name=[name removed for security reasons]&mc_fee=0.44&address_country_code=US&address_name=[name removed for security reasons]¬ify_version=3.8&custom=&payer_status=unverified&business=molly%40thetripclip.com&address_country=United+States&num_cart_items=1&mc_handling1=0.00&address_city=Choteau&verify_sign=AuRlNZvMOhdn8iDWY5YoMB9iRTDzAIjG.3f9vIDCnjWeCMq94kt.qaLM&payer_email=[customer email removed for security reasons]&btn_id1=16432817&contact_phone=[phone no removed for security reasons]&txn_id=95R75212V2997631V&payment_type=instant&last_name=[name removed for security reasons]&address_state=MT&item_name1=5+Trip+Clip+Activities&receiver_email=[my email address]&payment_fee=0.44&quantity1=1&receiver_id=FSRPNTT2JQ9LE&txn_type=cart&mc_gross_1=4.95&mc_currency=USD&residence_country=US&transaction_subject=&payment_gross=4.95&ipn_track_id=73e7cbaf7590a
I've found one other person asking a similar question (with no answer), but I can't find anything from PayPal saying that they are changing the IPN fields.