I had this exact same problem.
I spent hours with a PayPal sandbox account trying to figure out what the problem was and tracked it down to the initial status check that is performed. This is in GT/Payment/Remote/PayPal.pm on or around line 95:
$opts{on_invalid}->($status) if $opts{on_invalid};
return;
}PayPal was always returning INVALID regardless of whether it was a successful transaction.
I simply commented this out. It still goes on to check the real status of the order and correctly updates the links, logs etc, but the initial 'spoof' check is skipped. Probably not the best solution, but I didn't want to spent too much time on it. I'm assuming it's something to do with my configuration. I'm using FreeBSD 4.9 with Perl 5.8.5 and Apache/mod_perl.
I also have two email addresses assigned to the account, although the main email is specified in the lsql config.
I spent hours with a PayPal sandbox account trying to figure out what the problem was and tracked it down to the initial status check that is performed. This is in GT/Payment/Remote/PayPal.pm on or around line 95:
Code:
unless ($status eq 'VERIFIED') { $opts{on_invalid}->($status) if $opts{on_invalid};
return;
}
I simply commented this out. It still goes on to check the real status of the order and correctly updates the links, logs etc, but the initial 'spoof' check is skipped. Probably not the best solution, but I didn't want to spent too much time on it. I'm assuming it's something to do with my configuration. I'm using FreeBSD 4.9 with Perl 5.8.5 and Apache/mod_perl.
I also have two email addresses assigned to the account, although the main email is specified in the lsql config.