Support

Home Forums Event Espresso Premium Registrations disappearing after successful payment to Moneris

Registrations disappearing after successful payment to Moneris

Posted: November 6, 2014 at 3:49 pm


Sean Faulkner

November 6, 2014 at 3:49 pm

The guts:
LAMP server – php 5.3
Wordpress 3.9.1
EE 3.1.36.5 P

EE Plugins:
– JSON api
– ticketing
– volume discount
Moneris payment gateway

On about 10-15% of our registrations, on average, event attendees will register, pay, and then not get sent their tickets. From the db side, they either have their record go missing (!), have their ID incrementally bumped up a number or two from their original registration, or show as incomplete. Another issue is people somehow managing to type in their email address wrong, which means neither the ticketing email or transaction receipts arrive. We are not using the member portion and I’m not interested in doing so at the moment given that it throws people into the WP backend.

This has been quite frustrating to work with and diagnose, and of note that we have another php-based site running on the same server using the same payment gateway, uses a similar process for payment verification, gets a similar volume of traffic and has had no issues with payments whatsoever.

What I’ve had to do to mitigate the problem is manually download the Moneris transactions per event, put them in a table and do a few queries to match up transactions without owners and/or incomplete but with approved payment.

It’s been hard to even try to diagnose and as we are short resources here, I have instead spent time fixing the transactions manually and performing customer service instead of trying to find a viable solution so that this won’t continue to happen. Frustratingly, I’ve not been able to reproduce the problem with my own tests, and can’t find a commonality from the logs between people experiencing the problem. It’s happened for both events with ~100 attendees up to ~2500, so even volume isn’t a determining factor (though obviously with more attendees, the stress it generates and the need to fix transactions quickly ramps up significantly)

Any help/hints/places to look would be much appreciated. Management is looking into alternative systems as I’ve been unable to work on other projects while this is in chaos.

Any advice would be appreciated.

Thanks,
Sean


Sean Faulkner

November 6, 2014 at 10:31 pm

I forgot to add that I have been monitoring the moneris_hpp.log, and it seems that some of the time, the failed transactions coincide with an entry like this one:

IPN Validation Errors: Couldn’t resolve host ‘www3.moneris.com’
[11/07/2014 12:17 AM]

Which obviously means what it says; however, I cross-checked those error datestamps against the transactions attempted at those times, and not all of them are broken (but many are), so it’s obviously unable to contact the IPN page properly sometimes, but I’m unsure as to why.

I also added a code snippet I got from another support forum entry to try and improve the logging verbosity in the EE_Moneris_HPP.class.php file, but it hasn’t helped yet:


$this->moneris_hpp_log( $log_entry, TRUE );
if ($this->ipnData['response_code'] < 50) {
return TRUE;
} else {
return FALSE;
}


Dean

November 7, 2014 at 2:57 am

Hi,

After adding the code modification above, was there any new information in the moneris_hpp.log file?

Have you contacted Moneris in respect to this issue? If so, what have they said?=


Sean Faulkner

November 7, 2014 at 12:13 pm

Hi:

No new information in the logs; the issue is that payments go through, so I’m assuming that means that the status code wouldn’t change.

Moneris wasn’t able to tell me anything definitive, but they said these types of errors most often happen when the redirect page is HTTP, not HTTPS. All of ours are HTTPS. They suggested either trying to set up some logging on the redirection page (in our case, the ‘thank you’ page), and/or trying to get their asynchronous URL feature working, which would provide an XML dump of what was posted. I’m not sure where to begin on either suggestion within EE.

I noticed another EE support agent suggesting a simplified transaction page template which fixed some Paypal IPN issues, but the instructions provided in the zip file are nonsensical to me.

The man hours lost to this are piling up.


Lorenzo Orlando Caum

  • Support Staff

November 7, 2014 at 2:33 pm

Hi Sean,

There should be instructions in the simplified transactions folder once it has been unzipped. Here is another explanation of those steps:

1) Download the file to your computer
2) Unzip the folder.
3) Login to your site with an SFTP of FTP client. FileZilla and Cyberduck are free options.
4) Browse to your theme’s folder:
/wp-content/themes/yourthemefolder
5) Upload the template file there
6) Go to your WordPress dashboard and then Pages and click on the Transactions page.
7) Change the page layout to use the simplified template (dropdown on right side of the screen. Then save changes.


Lorenzo


Sean Faulkner

November 7, 2014 at 8:41 pm

Thanks Lorenzo, I’ve done so and it’s not made a dramatic difference in the results. There are still people whose registrations are being missed (they ‘register’, pay via Moneris, and then have no entry in the db, sometimes have an id that has moved up a couple of numbers from the original, or don’t have their payment status updated and show as incomplete).


Sean Faulkner

November 10, 2014 at 6:52 am

Any more thoughts, anyone? I’m most concerned about entries in the wp_events_attendee table outright disappearing in spite of the fact that they’ve registered and paid properly.


Josh

  • Support Staff

November 12, 2014 at 4:50 am

Hi Sean,

What could be happening when “they ‘register’, pay via Moneris, and then have no entry in the db, sometimes have an id that has moved up a couple of numbers from the original” is they’re hitting the back button from Moneris and registering again.

If you try to do that on your site as a test, does it pop up a warning that you’ll overwrite your previous registration?


Sean Faulkner

November 12, 2014 at 8:10 am

Hi Josh:

While I’m sure that might account for some percentage of the errors, I was able to replicate the same problem myself while performing a transaction and I definitely did not ever hit the back button, which means that it doesn’t account for that error all of the time.

I will test now and let you know.

Thanks,


Sean Faulkner

November 12, 2014 at 11:26 am

While I test that, I will mention again – the idea that people clicking “back” on any kind of regular basis would likely be because some part of the transaction process was slow to load, perhaps getting to Moneris or getting back from Moneris. However, we have another site on the same server which also uses Moneris as its payment gateway and doesn’t experience any of these problems.


Josh

  • Support Staff

November 12, 2014 at 2:43 pm

Which problem Sean? The one where the entry in the database is no where to be found?

Another thing to do that may shed some light on what’s going on is go to Event Espresso > General Settings and turn on full logging. Then the next time you see a registration go missing, you can compare the log. And one more logging tool you can make use of is WordPress’s built in debug log.

The code in the gist linked here can be added to the wp-config.php to replace the standard WP_DEBUG define. What it will do is log all errors to a debug.log file. This way if there’s a PHP error thrown during a registration, you’ll know what it was.


Sean Faulkner

November 12, 2014 at 3:23 pm

Hi Josh:

I’ve had full logging on but just noticed it wasn’t writing properly – odd, because I’ve had the moneris_hpp.log writing fine to the same directory, but I just retried the chmod command on the directory and it started working again. This should help me be able to better diagnose when this issue happens, however, is it just going to accumulate as one huge log file? Or is there a setting to have it roll over? (I could write a cron job if needs be)


Sean Faulkner

November 12, 2014 at 3:23 pm

Hi Josh:

Also, I didn’t see any code you linked to in the gist (there was no gist that I can see)

Thanks,
Sean


Josh

  • Support Staff

November 12, 2014 at 5:53 pm

Yes, it will accumulate into one log file, but logging is recommended to only be run on a temporarily basis. Once you’re done with troubleshooting, you can turn off logging and delete the log file.

Sorry about the missing gist link, here’s the gist I was thinking of:

https://gist.github.com/joshfeck/9d4fcbdb37e52112e002


Sean Faulkner

November 12, 2014 at 8:06 pm

Thanks Josh. I’ve done the WP_DEBUG setting and even manually created and changed permissions on the debug.log file as per the instructions, but it doesn’t seem to be writing anything to it — is it just supposed to be in the root folder of the site?


Sean Faulkner

November 12, 2014 at 8:33 pm

Another caveat I didn’t mention before – occasionally one of our staff will enter in attendees through the wp-admin section, and there is no payment that takes place (she collects cash/cheques and then enters the payee as an attendee), and some of those registrations have had the same thing happen.


Sean Faulkner

November 13, 2014 at 7:30 am

I just purchased and applied a premium support token to this issue, but I can’t overstate the urgency – we have a national event happening here next week and if we can’t reliably sell tickets online we will need to figure out an alternative plan. Please respond ASAP.

Thanks,


Josh

  • Support Staff

November 17, 2014 at 5:36 pm

Hi Sean,

I replied to your emails.

The support post ‘Registrations disappearing after successful payment to Moneris’ is closed to new replies.

Have a question about this support post? Create a new support post in our support forums and include a link to this existing support post so we can help you.

Event Espresso