Developer forum

Forum » Ecommerce - Standard features » Quickpay issue with order ID changing

Quickpay issue with order ID changing

Imar Spaanjaars Dynamicweb Employee
Imar Spaanjaars
Reply

Hi there,

We have a site that has an issue with Quickpay. Looks like the customer paid but the callback never made it onto the correct order. Below you see some of the logs from this order based on its AutoId. In Quickpay, the order is known and paid as WO187759. In Dynamicweb that order doesn't exist, but we have one with the next ID: WO187760 which has the correct contents but no payment associated with it. So, the customer paid, but we never got a correct payment confirmation and thus never shipped the order.

It seems that in CheckoutHandler, there's code to auto-fix the order ID based on the Auto ID (the first log line below). Shouldn't the Quickpay handler do something similar? The log indicates that it knows that WO187759 and WO187760 are related, so could it (should it) have marked WO187760 as completed and paid instead of erroring?

ERROR: ERROR (Fixed issue) Callback called with CheckoutHandlerOrderId = WO187759 that does not exist - found new orderid WO187760, with autoid 188692 (OrderID:WO187760 
ERROR: The ordernumber returned from callback does not match with the ordernumber set on the order: Callback: 'WO187759', order: 'WO187760' (OrderID:WO187760

Thanks,

Imar

 


Replies

 
Nicolai Pedersen Dynamicweb Employee
Nicolai Pedersen
Reply

Hi Imar

I do not think so. My guess is that the user somewhere in the process have pressed "Back" in the browser or opened another window before the callback comes in. It is also part of the security of the checkouthandlers that things are not fiddled on its way.

If you start a checkout and convert your cart to an order with an orderid, but complete is not set on the order yet because it is waiting for callback, and you then go back to DW, DW will convert the order back to a cart and discard the order number. Most payment gateways, including Quickpay, will not accept two checkouts for the same orderid which is why the order gets a new one.

When the callback comes in there is a checksum that has to match and part of that checksum is the orderid. We cannot just accept an order if the checksum does not match.

So in this case I am sure the user has opened another window and browsed the cart.

How often does this happen? Like once or does it happen over and over again? The log of the order will contain the history so you can see when the order was downgraded to a cart.

 
Imar Spaanjaars Dynamicweb Employee
Imar Spaanjaars
Reply

Yep, that all makes sense, and is exactly how I explained it to the customer :-)

It seems to happen about twice a month on average for a site with 30 to 60 orders a day. So, not a lot, but a little too much for the customer as it causes order to be not seen when paid.

Running this:

SELECT 
  OrderDebuggingInfoId, OrderDebuggingInfoOrderId, OrderDebuggingInfoSource, OrderDebuggingInfoTime, OrderDebuggingInfoMessage, OrderDebuggingInfoType, OrderDebuggingInfoOrderAutoId
 FROM EcomOrderDebuggingInfo
 WHERE OrderDebuggingInfoMessage like '%ERROR: The ordernumber returned from callback does not match with the ordernumber set on the order: Callback:%'
 ORDER BY OrderDebuggingInfoTime DESC

gives me this:

 

 
Nicolai Pedersen Dynamicweb Employee
Nicolai Pedersen
Reply

We need a solution and some orderids with the issue so we can look at the history of those orders.

Can you send some information to partnercenter and let them know about this thread?

Thanks!

 
Imar Spaanjaars Dynamicweb Employee
Imar Spaanjaars
Reply

Yep, thanks, I just sent an email to Care.

 

You must be logged in to post in the forum