public async Task <IShopOrder> HandleCallbackAsync(HttpContextBase context)
        {
            var order = await ResolveOrderAsync(context);

            if (order == null)
            {
                return(null);
            }

            if (order.PaymentStatus == (int)PaymentStatus.Authorized)
            {
                order.WriteLog("debug", "Payment is already authorized");

                return(order);
            }

            var handled = OrderProcessor.HandleCallback(context, order);

            if (!handled)
            {
                HandleCallbackInternal(context, order);
            }

            return(order);
        }