Hey mate. I had similar problems when I 1st installed this plugin.
The Pending issue is because of a missing line in the programming.
$fields = array(
'USER' => urlencode(get_option('paypal_api_username')),
'PWD' => urlencode(get_option('paypal_api_password')),
'SIGNATURE' => urlencode(get_option('paypal_api_signature')),
'VERSION' => urlencode('72.0'),
'PAYMENTREQUEST_0_PAYMENTACTION' => urlencode('Sale'),
'PAYMENTREQUEST_0_AMT0' => urlencode($_POST['AMT']),
'PAYMENTREQUEST_0_AMT' => urlencode($_POST['AMT']),
'PAYMENTREQUEST_0_ITEMAMT' => urlencode($_POST['AMT']),
'ITEMAMT' => urlencode($_POST['AMT']),
'PAYMENTREQUEST_0_CURRENCYCODE' => urlencode($_POST['CURRENCYCODE']),
'RETURNURL' => urlencode($config->getItem('plugin_form_handler_url').'?func=confirm'),
'CANCELURL' => urlencode(get_permalink(get_option('paypal_cancel_page'))),
'METHOD' => urlencode('SetExpressCheckout')
);
Compare it to yours in paypalapi.php and that should sort out the pending payments issue.
Do you really need the IPN?
this plugin will tell you if payment is a success but wont update any info like when the transaction is cleared.
I already have IPN implementation that update the transaction details into a table in the same database.