public override PaymentProviderBeginPaymentResponse BeginPayment(BeginPaymentRequest request)
        {
            var result = new PaymentProviderBeginPaymentResponse <AyandehBankTranStatus>(Now);

            result.ProviderType = this.ProviderType;

            var  pec       = new ir.shaparak.pec.EShopService();
            var  orderid   = SafeClrConvert.ToInt32(request.PaymentCode);
            var  pay       = SafeClrConvert.ToInt32(request.Amount);
            byte pecStatus = 0;
            long auth      = 0;

            pec.PinPaymentRequest(Config.Credentials.Pin, pay, orderid, (string.IsNullOrEmpty(request.ReturnUrl) ? Config.CallbackUrl : request.ReturnUrl), ref auth, ref pecStatus);

            result.Code = auth;
            result.SendData.Add(BankCodeArgName, auth.ToString());
            result.Status     = pecStatus;
            result.Succeeded  = (pecStatus == 0 && auth != -1);
            result.GatewayUrl = Config.GatewayUrl + $"?{BankCodeArgName}={auth}";
            result.SendMethod = Config.GatewayMethod;

            return(result);
        }
        public override ShetabPaymentStep1 BeginPayment(string paymentcode, decimal amount, string returnUrl)
        {
            var result = new ShetabPaymentStep1 <ParsianBankTranStatus>();

            result.BankType = this.BankType;

            var  pec       = new ir.shaparak.pec.EShopService();
            var  orderid   = SafeClrConvert.ToInt32(paymentcode);
            var  pay       = SafeClrConvert.ToInt32(amount);
            byte pecStatus = 0;
            long auth      = 0;

            pec.PinPaymentRequest(Config.Credentials.Pin, pay, orderid, returnUrl, ref auth, ref pecStatus);

            result.Code = auth;
            result.SendData.Add("au", auth.ToString());
            result.Status     = pecStatus;
            result.Succeeded  = (pecStatus == 0 && auth != -1);
            result.GatewayUrl = Config.GatewayUrl + "?au=" + auth.ToString();
            result.SendMethod = Config.GatewayMethod;

            return(result);
        }