XF 1.2 Paypal glitch on user upgrade


Active member
I have a business paypal account and have been using an IPN for another program for some time. No problems money processes through regularly not a problem.

Paypal only allows one IPN so I will need to look at a switching php and there seems to be a good one at github so that should be OK. Before I set that up however I do some testing.

Via the paypal developer site you can test an IPN, so I drop in the IPN for my forums:

If I hit that from a browser I get "Request not validated" which makes sense. If I use the paypal IPN simulator:

I get
"We're sorry, we could not send an IPN."

No hints, help or suggestions, just sorry. I have done quite a bit of google searching and can't seem to find a common issue here.

I am on linux and as I said I have another program using an IPN with no problem. Any ideas on how I could work out what the actual problem is?


XenForo developer
Staff member
You don't need to worry about setting a different URL or doing any sort of switching for IPNs. PayPal supports transaction-specific callbacks using the notify_url parameter. You just need to have a URL in the IPN system in PayPal to enable the system.

The error from the simulator is, unfortunately, meaningless because it's not clear if the error is on their side or XenForo's side. It wouldn't be surprising if XF simply couldn't verify the request, as simulator requests likely post back to a different URL.

You will see some logs in the xf_user_upgrade_log table that may give you some information, but in general you shouldn't need to worry about it unless actual transactions are failing to go through.


Active member
OK I have done some more testing.

I can confirm if I view source on the Upgrade button the following is there
<input type="hidden" name="return" value="http://forums.ski.com.au/xf/account/upgrade-purchase" />
<input type="hidden" name="cancel_return" value="http://forums.ski.com.au/xf/." />
<input type="hidden" name="notify_url" value="http://forums.ski.com.au/xf/payment_callback.php" />
So that matches up with what you say regarding the notify_url.

When I try to go through the upgrade process I get a Paypal return page that says the following:

This payment cannot be completed and your account has not been charged. Please contact your merchant for more information.

Return to merchant and try a different payment methodUnfortunately, we're unable to process your payment using your PayPal account at this time. Please return to the merchant's website and try using a different payment method (if available).
I have double confirmed that the credit card in paypal is correct.

If I check the xf_user_upgrade_log table the most recent entry is:
user_upgrade_record_id = 0
processor = paypal
transaction_id = empty field
subscriber_id = empty field
transaction_type = error
message = Request not validated
transaction_details = [BLOB - 47 B] the contents of which appear to be a html file.
log_date = unix time stamp that appears to make sense to the first submission (ie if I do a time stamp convert it gives me todays date about an hour ago which is probably right considering daylight saving time here)

If I repeat the process to check another row is inserted into the table I get the same paypal error but the xf_user_ugrade_log table doesn't have another line added to it.

That credit card hasn't be paypal verified but it says I have a $700 monthly limit on it and I haven't used it previously this month. I have purchased via paypal with that credit card before.

Not sure which way to turn from here .....


XenForo developer
Staff member
Once the request goes off to PayPal, it's generally out of XenForo's hands - there might be some limits placed on your PayPal account (the merchant account) based on card or action types. There would need to be a log on PayPal's side to really give you any other information unfortunately. I'm not sure what else to really suggest.


Active member
OK incredibly stupid error on my behalf.

paypal account was registered with email of support@

I entered suport@

Didn't matter how many times I looked at it I didn't see the spelling error. :eek:

All works now.