Yeah, the Paypal/PFP interface went through some changes to their login. Here is the skinny that works on one of our PFP stores:
$PFPro_required[0][$nextIndex] = "HostAddress";
//$PFPro_required[1][$nextIndex] = "pilot-payflowpro.paypal.com"; //TESTING ONLY
$PFPro_required[1][$nextIndex] = "payflowpro.paypal.com"; // LIVE HOST
$nextIndex = count($PFPro_required[0]);
$PFPro_required[0][$nextIndex] = "Port";
$PFPro_required[1][$nextIndex] = "443";
$nextIndex = count($PFPro_required[0]);
$PFPro_required[0][$nextIndex] = "TimeOut";
$PFPro_required[1][$nextIndex] = "60";
$nextIndex = count($PFPro_required[0]);
$PFPro_required[0][$nextIndex] = "PARTNER";
$PFPro_required[1][$nextIndex] = "PayPal";
$nextIndex = count($PFPro_required[0]);
$PFPro_required[0][$nextIndex] = "USER";
$PFPro_required[1][$nextIndex] = "yourpfpusernamehere";
$nextIndex = count($PFPro_required[0]);
$PFPro_required[0][$nextIndex] = "VENDOR";
$PFPro_required[1][$nextIndex] = "yourpfpvendornamehere";
$nextIndex = count($PFPro_required[0]);
$PFPro_required[0][$nextIndex] = "PWD";
$PFPro_required[1][$nextIndex] = "yourpfppasswordhere";
$nextIndex = count($PFPro_required[0]);
$PFPro_required[0][$nextIndex] = "TENDER";
$PFPro_required[1][$nextIndex] = "C";
$nextIndex = count($PFPro_required[0]);
$PFPro_required[0][$nextIndex] = "TRXTYPE";
$PFPro_required[1][$nextIndex] = "S";
You will have two separate usernames setup in the PFP interface, one is the User and one is the Vendor. Both are necessary. The "Partner" will be "PayPal". They also updated the HOST to payflowpro.paypal.com and the Testing Host is pilot-payflowpro.paypal.com
Cheers,
Monica