Developer forum

Forum » Development » Concurrency issue in checkout handler?

Concurrency issue in checkout handler?

Anders Ebdrup
Reply

Hi Dynamicweb,

 

I can see some special handling for concurrency in the DIBS checkout provider. What does it do and which problems does it solve?

I am seeking for an answer as we may see some concurrency problems with the ePay checkout provider and we are trying to track the problem down.

 

Best regards, Anders

 


Replies

 
Nicolai Høeg Pedersen
Reply

Hi Anders

DIBS payments can be ended in 2 ways - by server to server call back, and by the success URL that DIBS redirects to. And we never know which one is firing first. So the code takes care of the checkoutdone is only handled once (and the notification that goes with it).

What kind of concurrency issue are you facing?

BR Nicolai

 
Anders Ebdrup
Reply

Hi Nicolai,

 

I have an order in the backend: ORDER243352 which is confirmed by ePay even though this is the registred callurl url on the order (we have started logging the referer):

/indkøbskurv.aspx?CheckoutHandlerOrderID=ORDER243349&ePayState=Callback&txnid=53748020&orderid=ORDER243349&amount=95500¤cy=208&date=20151019&time=2223&txnfee=0&paymenttype=2

And I also have the correct order confirmed by ePay, so my thought is that we are facing some sort of a concurrency issue in the checkout provider? That being said the logging on our "ghost order" is quite short - see attachment

 

Best regards, Anders

2015-10-22_1918.png
 
Anders Ebdrup
Reply

Hi Nicolai,

 

Can I do anything to avoid these "ghost orders"?

 

Best regards, Anders

 
Nicolai Høeg Pedersen
Reply

Hi Anders

I've had a developer to look at this. We need access to the solution log files to debug further. Can you mail me a URL so we can have a look?

BR Nicolai

 
Nicolai Høeg Pedersen
Reply

Hi Anders

We have been looking at this issue.

According to our developer who downloaded 2 log files and took a look at Payment settings in MC. He found that this site is using a third party Checkouthandler - callstack indicates that error happened 

   at Dynamicweb.eCommerce.Cart.CheckoutHandlers.ePay.ePay.StateOk(Order order) in e:\Projects\Drf.Go\Dependencies\Third party\ePay\ePay.cs:line 293

 

As far as i can see that is not ours implementation of checkout handler - so may be customer will try to use ours? Otherwise problem should be fixed inside custom checkouthandler. Ours is called "ePay payment window" (Dynamicweb.eCommerce.Cart.CheckoutHandlers.ePayPaymentWindow)

 

Can you verify this?

BR Nicolai

 
Anders Ebdrup
Reply

Hi Nicolai,

 

Yes, it is a custom checkout handler as you didn't have had it standard at that time and that is why I am asking about the DIBS checkout handler.

But have you made a similar implementation in the current ePay checkout handler now as you have in DIBS?

 

Best regards, Anders

 
Nicolai Høeg Pedersen
Reply

Hi Anders

Attached our implementation of ePay window - it does not have the same concurrency implementation as Dibs as we have not had any issues like that with that checkouthandler.

It is relatively easy to implement though - attached find our implementation of ePay and DIBS with the concurrency.

If you want, we can add the concurrency from DIBS to our ePay implementation, just to be sure.

BR Nicolai

 
Anders Ebdrup
Reply

Hi Nicolai,

 

It will be great if you can add concurrency handling in ePay, and then we can switch to the standard implementation instead and see if the problem continues.

 

Best regards, Anders

 
Nicolai Høeg Pedersen
Reply

TFS#19731 marked for 8.7.1 (Has been fixed, and is awaiting test and merge)

 
Anders Ebdrup
Reply

Hi Dynamicweb,

 

Is this available in 8.7.1 for download now?

 

Best regards, Anders

 
Nicolai Høeg Pedersen
Reply

Yes, it is in 8.7.1.3

 

You must be logged in to post in the forum