Posted: July 15, 2019 at 7:09 am
Over the last two weeks we have been experiencing a sporadic issue with our online event registrations. We are using EE 4.9.82.p
Yesterday was pretty typical, we had 16 registrations and 2 reportedly failed, but they hadn’t actually. Here’s what happens each time …
The customer completes their order and then they click Pay Now and are sent to PayPal. The transaction goes well and PayPal sends the customer a confirmation email. We too get a confirmation from PayPal and can see the successful transaction in our PayPal account.
However, EE sends an email to the customer to say the transaction failed and in the EE backend the order status is ‘Incomplete’. Each failed order has this error message …
IPN Validation failed! Paypal responded with ‘ 400 Bad Request Bad Request Your browser sent a request that this server could not understand.’
Clearly the Instant Payment Notification fails but we can’t understand why it only happens occasionally.
Any thoughts please?
May I ask are you using PayPal Express Checkout or PayPal Standard? If you’re not sure, you can go to Event Espresso > Payment Methods and review what’s activated there.
We are using standard.
What you can do to avoid the IPN validation issue is you switch to use PayPal Express checkout instead. You can use your same PayPal account with PayPal Express.
Here’s a link to the documentation that you can follow to get up and running with PayPal Express:
Would we need to buy a Support License Key for $299.95 in order to use PayPal Express?
Also this is our busiest time of year and we can’t tolerate any downtime. Could the switch over be instant?
You do not need to buy a Support License Key for $299.95 in order to use PayPal Express. PayPal Express is built into Event Espresso 4, so your Personal License includes PayPal Express.
I should prefix this (as I don’t think its clear above) that the PayPal Standard payment method has been deprecated within EE for some time now and weird issues with IPN’s randomly not working, then suddenly fixing themselves is one of the reasons for us doing so.
New users of Event Espresso have PayPal standard hidden on activation, they can enable it using a filter, but its no longer supported and has effectively been replaced by PayPal Express.
We spent a considerable amount of time working through issues with users on PayPal standard, one day IPN’s would fail, the next they worked (with no changes to the plugin at all). Then all of a sudden they would stop again, or the IPN’s would be heavily delayed (24hours+) and so on. We didn’t make the decision to deprecated PayPal standard lightly and imo, your best bet is to move away from it for a ‘better’ implementation, aka PayPal Express
It’s important to mention that as it’s unlikely that any efforts your developer goes through to troubleshoot/fix the above will result in changes to the plugin in the long term.
With that said, you’ve asked for comments, but there isn’t much of an analysis we can comment on as they don’t provide any actual details.
Whilst this is mostly correct, the part that he appears to be referring to (the commend about something being ‘wack’) is essentially a catch-all for when we send the response to PayPal and an error is returned.
Again, is pretty much correct, however:
This is not an issue with the IPN request arriving too early/late.
The IPN is hitting the site and the request sent back to PayPal from that returns an error, in your case its:
Something is incorrect in the request, what this is we can’t say from the above, it can be any number of issues with the request.
That’s correct and we don’t rely solely on IPN’s, but we also can’t ignore them.
PayPal POST back the user to the site and also send and IPN, we have to monitor for both, why? Because users often seem to close their browser when they make a payment and never actually return to the site, the only way we can then validate a payment is via the IPN.
I’m not going much detail here for the reasons mentioned above.
There is not enough detail here for us to comment on really.
What do they consider unusual here?
They could do this, or just add the full request to the log itself and view it there.
However, the reason I opened my post with the above is this is essentially a waste of time for you both. The PalPal standard integration method is slow and unreliable (their docs state this when you read between the lines) and PayPal now has ‘better’ methods to use. We used one of those to create a new payment method, PayPal Express and then again with PayPal Express with Smart Buttons.
Your developer is welcome to open a pull request with any changes they make to the PayPal standard payment method to fix this, but as mentioned, as it’s deprecated it is unlikely to be included as eventually that Payment method will be removed.