public SendTransactionRequest BuildSendTransactionRequest(ShoppingCart cart, ChannelType channel,
                                                                  string externalUniqueNumber, Options options)
        {
            if (cart == null)
            {
                throw new ArgumentNullException(nameof(cart));
            }
            if (externalUniqueNumber == null)
            {
                throw new ArgumentNullException(nameof(externalUniqueNumber));
            }
            if (channel == null)
            {
                throw new ArgumentNullException(nameof(channel));
            }

            var callbackUrl = string.IsNullOrEmpty(Onepay.CallbackUrl) ? Onepay.DefaultCallback : Onepay.CallbackUrl;

            var request = new SendTransactionRequest(
                externalUniqueNumber, cart.Total, cart.ItemQuantity,
                GetTicksNow(), cart.Items, callbackUrl, channel.Value,
                options?.CommerceLogoUrl, options?.QrWidthHeight
                );

            PrepareRequest(request, options);
            onePaySignUtil.Sign(request, options.SharedSecret);
            return(request);
        }
        public SendTransactionRequest BuildSendTransactionRequest(ShoppingCart cart, Options options)
        {
            SendTransactionRequest request = new SendTransactionRequest(
                Guid.NewGuid().ToString(), cart.Total, cart.ItemQuantity,
                GetTicksNow(), cart.Items, Onepay.FakeCallbackUrl, "WEB");

            PrepareRequest(request, options);
            onePaySignUtil.Sign(request, options.SharedSecret);
            return(request);
        }