Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Order missing after paypal payment received


Mac Fly

Recommended Posts

We are having some issues with Papal and orders not recording in the backend.

Received a Paypal email saying payment received. On checking the orders page there is no sign of the order. I can see the IPN in the paypal log with all the usual details but no record of the order in the database.  The order numbers have continued on past the number that has disappeared but this is really unusual given that the payment was processed correctly.  

Normally if the customer goes to paypal and the shop does not receive payment confirmation the order will sit at "preparing paypal standard" but in this case the order has disappeared altogether following a sucessful payment.

Anyone else having this issue and if so have you found out what's causing it? 

We've had it happen twice in the last two weeks. Prior to this is was a months ago so very intermittent. 

 

Paypal app version v5.018

Running 2.3.4 bootstrap with latest paypal module installed.

Link to comment
Share on other sites

Have you got an up-to-date certificate in the ext directory? See

 

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

Check the settings within the paypal account - if the return URL is wrong you will get that effect if the customer returns to the site before the IPN arrives.

Do you still get any paypal orders which do work? Do you get logs of notify_sync events?

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

It all works as normal 99.99% of the time. We have about 60 - 70 orders per day with about 50% coming from Paypal.

Yes we receive the notify_sync events in the logs. Sometimes this comes back before the IPN and visa versa and all works as it should. 

In the most recent case we only received the IPN in the logs but no record of the order on the orders page. There must be some sort of glitch in the database to cause the order to erase itself rather than update. Very hard to debug.

 

Seems it has happened to others in the past with the same version of oscommerce and paypal app. ( thread is archived, hence this new one ) 

 

 

 

Link to comment
Share on other sites

1 hour ago, Mac Fly said:

It all works as normal 99.99% of the time. We have about 60 - 70 orders per day with about 50% coming from Paypal.

Yes we receive the notify_sync events in the logs. Sometimes this comes back before the IPN and visa versa and all works as it should. 

In the most recent case we only received the IPN in the logs but no record of the order on the orders page. There must be some sort of glitch in the database to cause the order to erase itself rather than update. Very hard to debug.

 

Seems it has happened to others in the past with the same version of oscommerce and paypal app. ( thread is archived, hence this new one ) 

 

The other thread's not much help though, is it.

I believe the only way for the order to disappear is for the customer to come back to checkout_payment before the IPN hits. This could happen in the normal flow if they hit an error in checkout_process (eg. because of the cert) or it could also happen if they somehow (eg. with the back button or another open tab) get there by themselves.

To get to the bottom of it, I think you're going to have to start digging through the site access logs and figure out what path they took through the site pages. If we know that we might stand a chance of deducing the cause.

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

It's a remote possibility but the Order may be in the database without a numeric status. 

No numeric status means it would not show in the Order List, but everything else would be normal (emails sent, paypal received etc).

Link to comment
Share on other sites

2 minutes ago, burt said:

It's a remote possibility but the Order may be in the database without a numeric status. 

No numeric status means it would not show in the Order List, but everything else would be normal (emails sent, paypal received etc).

I've only seen this when there was a glitch on the edit order page but it's definitely worth checking.

It's a good idea to create an order status record with id 0 and suitable text (eg. error - needs manual reset) to prevent orders disappearing from the list.

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

1 minute ago, BrockleyJohn said:

It's a good idea to create an order status record with id 0 and suitable text (eg. error - needs manual reset) to prevent orders disappearing from the list.

It maybe an idea to add such a thing into Core.  Thoughts ?

Link to comment
Share on other sites

29 minutes ago, burt said:

It maybe an idea to add such a thing into Core.  Thoughts ?

It might be easier just to remove the requirement that the order status exist. 

LEFT JOIN orders_status s ON o.orders_status = s.orders_status_id AND s.language_id = " . (int)$languages_id . " WHERE 

Also consider the case where the missing order status is not 0. 

Always back up before making changes.

Link to comment
Share on other sites

14 minutes ago, ecartz said:

It might be easier just to remove the requirement that the order status exist. 


LEFT JOIN orders_status s ON o.orders_status = s.orders_status_id AND s.language_id = " . (int)$languages_id . " WHERE 

Also consider the case where the missing order status is not 0. 

that's more owner-proof

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

2 hours ago, BrockleyJohn said:

it could also happen if they somehow (eg. with the back button or another open tab) get there by themselves.

Looking at the logs this is exactly what happened. They have somehow got back to checkout_payment page after they completed payment on Paypal and got back to this page before the IPN causing the order to delete. 

Most likely they used the back button.

Next question is how can we stop this from happening? 

 

A message on the paypal page after payment is made to say ' DO NOT USE BACK BUTTON' would probably do the trick

Edited by Mac Fly
Link to comment
Share on other sites

If you were to change the paypal code not to delete the order but create a new one every time in checkout_payment, it wouldn't happen but you will end up with many more Preparing status orders than you already have.

You could try putting up a message telling people not to hit Back after paying, but it may affect confidence in your checkout.

If people have just started doing this, it may reflect an issue with Paypal's platform being slow or glitchy right now and that might sort itself out with a bit of luck.

Contact me for work on updating existing stores - whether to Phoenix or the new osC when it's released.

Looking for a payment or shipping module? Maybe I've already done it.

Working on generalising bespoke solutions for Quickbooks integration, Easify integration and pay4later (DEKO) integration at 2.3.x

Link to comment
Share on other sites

36 minutes ago, BrockleyJohn said:

If you were to change the paypal code not to delete the order but create a new one every time in checkout_payment, it wouldn't happen but you will end up with many more Preparing status orders than you already have.

I'd rather not do this. I'd end up manually checking all orders that are Preparing status to see if Payment was received in our Paypal account. Too much work for 1 / 1000 chance of the issue happening. 

36 minutes ago, BrockleyJohn said:

You could try putting up a message telling people not to hit Back after paying, but it may affect confidence in your checkout.

I meant for Paypal to have this on their page after payment is made, the one with the countdown timer to return to site. This is pretty much a standard notice on a lot of Payment providers payment complete pages. It could even be already there. I'll check later. If not I'll send them an email though wouldn't have high hopes for a response. 

 

36 minutes ago, BrockleyJohn said:

If people have just started doing this, it may reflect an issue with Paypal's platform being slow or glitchy right now and that might sort itself out with a bit of luck.

Don't think it's new issue. The previous thread above is from 2017.

Thank you all for your replies and time.

Edited by Mac Fly
Link to comment
Share on other sites

Just ran a test to see if i could replicate the problem. Using the back button after payment was paid on Papal i was able to get back to checkout_payment page but the IPN got back before me so order didn't erase. 

There is no message on paypal page to say do not use back button. 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...