Exemplo n.º 1
1
        public void YapiKredi(PosForm pf)
        {
            // Banka bilgileri.
            string mid = "xxx";
            string tid = "xxx";

            try
            {
                Random rnd = new Random();
                string ccno = pf.kartNumarasi.ToString(), expdate = pf.yil.ToString().Replace("20", string.Empty) + pf.ay, cvc = string.Format("{0:000}", pf.guvenlikKodu), orderid = "1234567890123456789" + rnd.Next(11111, 99999), amount = pf.tutar.ToString(), currencycode = "YT", instnumber = pf.taksit.ToString();

                C_Posnet posnetObj = new C_Posnet();
                bool result = false;
                posnetObj.SetURL("https://www.posnet.ykb.com/PosnetWebService/XML");
                posnetObj.SetMid(mid);
                posnetObj.SetTid(tid);
                result = posnetObj.DoSaleTran(ccno, expdate, cvc, orderid, amount, currencycode, instnumber, "", "");

                if (pf.taksit > 0) { posnetObj.SetKOICode(pf.taksit.ToString()); }

                if (posnetObj.GetApprovedCode() == "1")
                {
                    this.sonuc = true;
                    this.code = posnetObj.GetAuthcode();
                    this.referansNo = posnetObj.GetHostlogkey();
                }
                else
                {
                    this.sonuc = false;
                    this.hataMesaji = posnetObj.GetResponseText();
                }
            }
            catch (Exception)
            {
                this.sonuc = false;
                this.hataMesaji = this.sistemHatasi;
            }
        }
Exemplo n.º 2
0
        public IList <KeyValuePair <string, string> > GetPaymentOptions(ProcessPaymentRequest processPaymentRequest)
        {
            var result = new List <KeyValuePair <string, string> >();

            //remove
            //result.Add(new KeyValuePair<string,string>("1", "1. seçenek"));
            //result.Add(new KeyValuePair<string, string>("2", "2. seçenek"));
            //result.Add(new KeyValuePair<string, string>("3", "3. seçenek"));
            //result.Add(new KeyValuePair<string, string>("4", "4. seçenek"));
            //return result;

            C_Posnet posnet      = new C_Posnet();
            var      hostAddress = _YapiKrediPaymentSettings.UseTestServer ? _YapiKrediPaymentSettings.TestServiceUrl : _YapiKrediPaymentSettings.ServiceUrl;

            posnet.SetURL(hostAddress);
            posnet.SetMid(_YapiKrediPaymentSettings.UseTestServer ? _YapiKrediPaymentSettings.TestMerchantId : _YapiKrediPaymentSettings.MerchantId);
            posnet.SetTid(_YapiKrediPaymentSettings.UseTestServer ? _YapiKrediPaymentSettings.TestTerminalId : _YapiKrediPaymentSettings.TerminalId);

            posnet.DoKOIInquiry(processPaymentRequest.CreditCardNumber);
            if (posnet.GetApprovedCode() == "1")
            {
                string code = "";
                for (int i = 1; i <= posnet.GetCampMessageCount(); i++)
                {
                    code = posnet.GetCampCode(i);
                    if (string.IsNullOrWhiteSpace(code))
                    {
                        continue;
                    }
                    result.Add(new KeyValuePair <string, string>(code, posnet.GetCampMessage(i)));
                }
            }

            if (result.Count > 0)
            {
                result.Insert(0, new KeyValuePair <string, string>("", _localizationService.GetResource("Payments.CC.YapiKredi.SelectOption")));
            }
            else
            {
                ILogger loger = EngineContext.Current.Resolve <ILogger>();
                loger.Error("Payments.CC.YapiKredi: errorcode:" + posnet.GetResponseCode() + "\n\r errortext:" + posnet.GetResponseText());
            }

            return(result);
        }
Exemplo n.º 3
0
        public void YapiKredi(PosForm pf)
        {
            // Banka bilgileri.
            string mid = "xxx";
            string tid = "xxx";

            try
            {
                Random rnd = new Random();
                string ccno = pf.kartNumarasi.ToString(), expdate = pf.yil.ToString().Replace("20", string.Empty) + pf.ay, cvc = string.Format("{0:000}", pf.guvenlikKodu), orderid = "1234567890123456789" + rnd.Next(11111, 99999), amount = pf.tutar.ToString(), currencycode = "YT", instnumber = pf.taksit.ToString();

                C_Posnet posnetObj = new C_Posnet();
                bool     result    = false;
                posnetObj.SetURL("https://www.posnet.ykb.com/PosnetWebService/XML");
                posnetObj.SetMid(mid);
                posnetObj.SetTid(tid);
                result = posnetObj.DoSaleTran(ccno, expdate, cvc, orderid, amount, currencycode, instnumber, "", "");

                if (pf.taksit > 0)
                {
                    posnetObj.SetKOICode(pf.taksit.ToString());
                }

                if (posnetObj.GetApprovedCode() == "1")
                {
                    this.sonuc      = true;
                    this.code       = posnetObj.GetAuthcode();
                    this.referansNo = posnetObj.GetHostlogkey();
                }
                else
                {
                    this.sonuc      = false;
                    this.hataMesaji = posnetObj.GetResponseText();
                }
            }
            catch (Exception)
            {
                this.sonuc      = false;
                this.hataMesaji = this.sistemHatasi;
            }
        }
Exemplo n.º 4
0
        ResultMessageModel YapiKredi()
        {
            try
            {
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
                C_Posnet posnetObj = new C_Posnet();
                bool     result    = false;

                #region Pos Configuration
                posnetObj.SetMid("");
                posnetObj.SetTid("");
                posnetObj.SetURL("https://www.posnet.ykb.com/PosnetWebService/XML");
                #endregion

                string instalment = "00";

                if (Instalment > 1)
                {
                    instalment = "0" + Instalment;
                }

                string amount_send = PaymentAmount.ToString();

                if (PaymentAmount.ToString().Contains(","))
                {
                    string[] split_amount = PaymentAmount.ToString().Split(',');

                    if (split_amount[1].Length > 2)
                    {
                        amount_send = split_amount[0] + "" + split_amount[1].Substring(0, 2);
                    }
                    else
                    {
                        amount_send = split_amount[0] + "" + split_amount[1];
                    }
                }
                else if (PaymentAmount.ToString().Contains("."))
                {
                    string[] split_amount = PaymentAmount.ToString().Split('.');

                    if (split_amount[1].Length > 2)
                    {
                        amount_send = split_amount[0] + "" + split_amount[1].Substring(0, 2);
                    }
                    else
                    {
                        amount_send = split_amount[0] + "" + split_amount[1];
                    }
                }

                result = posnetObj.DoSaleTran(CreditCard.CardNumber, CreditCard.Year + "" + CreditCard.Month, CreditCard.Cvc, Util.CreateOrderId(), amount_send, "YT", instalment);

                if (result)
                {
                    if (posnetObj.GetApprovedCode() == "1" || posnetObj.GetApprovedCode() == "2")
                    {
                        return(new ResultMessageModel {
                            Status = true
                        });
                    }
                    else
                    {
                        return(new ResultMessageModel {
                            Status = false, Message = posnetObj.GetResponseText(), Code = posnetObj.GetResponseCode()
                        });
                    }
                }
                else
                {
                    return(new ResultMessageModel {
                        Status = false, Message = posnetObj.GetResponseText(), Code = posnetObj.GetResponseCode()
                    });
                }
            }
            catch (Exception ex)
            {
                return(new ResultMessageModel {
                    Status = false, Message = ex.Message
                });
            }
        }
Exemplo n.º 5
0
        protected ProcessPaymentResult AuthorizeOrSale(ProcessPaymentRequest processPaymentRequest)
        {
            var      customer = _customerService.GetCustomerById(processPaymentRequest.CustomerId);
            C_Posnet posnet   = new C_Posnet();

            var hostAddress = _YapiKrediPaymentSettings.UseTestServer ? _YapiKrediPaymentSettings.TestServiceUrl : _YapiKrediPaymentSettings.ServiceUrl;

            posnet.SetURL(hostAddress);
            //"https://netpos.YapiKredi.com.tr/servlet/cc5ApiServer";
            //"https://testsanalpos.est.com.tr/servlet/cc5ApiServer";
            // test=> http://setmpos.ykb.com/PosnetWebService/XML
            // prod=> https://www.posnet.ykb.com/PosnetWebService/XML
            posnet.SetMid(_YapiKrediPaymentSettings.UseTestServer ? _YapiKrediPaymentSettings.TestMerchantId : _YapiKrediPaymentSettings.MerchantId);
            posnet.SetTid(_YapiKrediPaymentSettings.UseTestServer ? _YapiKrediPaymentSettings.TestTerminalId : _YapiKrediPaymentSettings.TerminalId);

            string ccNo        = processPaymentRequest.CreditCardNumber;
            string expMonth    = GetMonth(processPaymentRequest.CreditCardExpireMonth.ToString());
            string expYear     = (processPaymentRequest.CreditCardExpireYear % 100).ToString();
            string expDate     = expYear + expMonth;
            string cv2         = processPaymentRequest.CreditCardCvv2;
            string orderGUID   = processPaymentRequest.OrderGuid.ToString().Replace("-", "").Substring(0, 24);
            var    currency    = GetCurrency(_currencyService.GetCurrencyById(_currencySettings.PrimaryStoreCurrencyId));
            string amount      = Math.Round(processPaymentRequest.OrderTotal, 2).ToString().Replace(".", "").Replace(",", "");
            string installment = processPaymentRequest.Installment == 1 ?"00" : processPaymentRequest.Installment.ToString().PadLeft(2, '0');

            int KOIICode = 0;

            if (int.TryParse(processPaymentRequest.CCOption, out KOIICode))
            {
                if (KOIICode > 0 && KOIICode < 7)
                {
                    posnet.SetKOICode(KOIICode.ToString());
                }
            }

            bool posnetResult = posnet.DoSaleTran(ccNo, expDate, cv2, orderGUID, amount, currency, installment);



            var result = new ProcessPaymentResult();

            if (!posnetResult)//can not communicate
            {
                result.Errors.Add(_localizationService.GetResource("Checkout.Payment.ConnectionNotEstablished"));
            }
            else
            {
                string code = posnet.GetApprovedCode();
                if (code == "1" || code == "2")//success
                {
                    result.AuthorizationTransactionId = posnet.GetHostlogkey();
                    result.PaymentCampaignNotes       = KOIICode.ToString();
                }
                else if (code == "0")
                {
                    result.Errors.Add(this.ConvertPaymentMessage(posnet.GetResponseCode().Trim()));
                    ILogger loger = EngineContext.Current.Resolve <ILogger>();
                    loger.Error("Payments.CC.YapiKredi: errorcode:" + posnet.GetResponseCode() + "\n\r errortext:" + posnet.GetResponseText());
                }
            }
            return(result);
        }
Exemplo n.º 6
0
    /// <summary>
    /// Puan Sorgulama, Vade Sorgulama, Ön Otorizasyon, Satış gibi POS İşlemlerini gerçekleştirir.
    /// </summary>

    /* Create FÜ - 00.00.00 - 00:00
     * Edit FÜ - 12.08.2012 - 18:30 Summary kısmı eklendi.
     */
    /// <param name="PT">POS İşlem Tipleri Objesi</param>
    /// <param name="P">POS Bilgileri Objesi</param>
    /// <param name="K">Kredi Kartı Bilgileri Objesi</param>
    /// <param name="O">Ödeme Bilgileri Objesi</param>
    /// <returns>
    /// SHOPClass.Odemeler.POSDurum objesi döndürür.
    /// </returns>
    public SHOPClass.Odemeler.POSDurum PosIslem(SHOPClass.Sabitler.PosIslemTipleri PT, SHOPObjeler.Tanimlar.POS P, SHOPObjeler.Tanimlar.KrediKart K, SHOPObjeler.Tanimlar.OdemeBilgileri O)
    {
        #region Obje İçin Yeni Instance Oluşturma
        SHOPObjeler.Tanimlar.POSIslem PI = new SHOPObjeler.Tanimlar.POSIslem();
        Objeler.Tanimlar.Messages     M  = new Objeler.Tanimlar.Messages();
        #endregion

        if (P != null && K != null)
        {
            try
            {
                #region YKB Pos Instance
                C_Posnet CP = new C_Posnet();
                #endregion

                #region Empty Bool Instance
                Boolean B = false;
                #endregion

                #region POS Bilgileri
                #region Mağaza ID, Terminal ID vb. Gibi Bilgileri Atama
                CP.SetMid(P.MID);
                CP.SetTid(P.TID);
                #endregion
                #region URL Ayarlama
                if (P.Test)
                {
                    if (!string.IsNullOrEmpty(P.TestURL))
                    {
                        CP.SetURL(P.TestURL);
                    }
                    else
                    {
                        CP.SetURL(P.URL);
                    }
                }
                else
                {
                    CP.SetURL(P.URL);
                }
                #endregion
                #endregion

                #region Islem ID
                //! 24 karakter istiyor
                IslemID = IslemID + (new Random((int)DateTime.Now.Ticks)).Next().ToString() + (new Random((int)DateTime.Now.Ticks)).Next().ToString();
                IslemID = IslemID.Substring(0, 24);
                #endregion

                #region İşlem Tipleri
                switch (PT)
                {
                    #region Puan Sorgula
                case SHOPClass.Sabitler.PosIslemTipleri.Puan:
                    #region İşlem Tipini Atama
                    PD.ProcessType = SHOPClass.Sabitler.PosIslemTipleri.Puan;
                    #endregion
                    B = CP.DoPointInquiryTran(K.KartNo, TersCevir(K.SonKullanim));
                    break;
                    #endregion

                    #region Vade Farkı Öğren
                case SHOPClass.Sabitler.PosIslemTipleri.Vade:
                    #region İşlem Tipini Atama
                    PD.ProcessType = SHOPClass.Sabitler.PosIslemTipleri.Vade;
                    #endregion
                    B = CP.DoVFTInquiry(K.KartNo, KurusCevir(O.Tutar.ToString()), O.Taksit.ToString(), P.KampanyaKodu);
                    break;
                    #endregion

                    #region Ön Otorizasyon Yap
                case SHOPClass.Sabitler.PosIslemTipleri.Otorizasyon:
                    #region İşlem Tipini Atama
                    PD.ProcessType = SHOPClass.Sabitler.PosIslemTipleri.Otorizasyon;
                    #endregion
                    B = CP.DoAuthTran(K.KartNo, TersCevir(K.SonKullanim), K.CVC, IslemID, KurusCevir(O.Tutar.ToString()), P.ParaBirimleri.Where(x => x.Key == 1).Select(x => x.Value).FirstOrDefault(), O.Taksit.ToString());
                    break;
                    #endregion

                    #region Satış Yap
                case SHOPClass.Sabitler.PosIslemTipleri.Satis:
                    #region İşlem Tipini Atama
                    PD.ProcessType = SHOPClass.Sabitler.PosIslemTipleri.Satis;
                    #endregion
                    B = CP.DoSaleTran(K.KartNo, TersCevir(K.SonKullanim), K.CVC, IslemID, KurusCevir(O.Tutar.ToString()), P.ParaBirimleri.Where(x => x.Key == 1).Select(x => x.Value).FirstOrDefault(), O.Taksit.ToString());
                    break;
                    #endregion
                }
                #endregion

                if (B == true)
                {
                    #region Durum Kodu
                    if (!string.IsNullOrEmpty(CP.GetApprovedCode()))
                    {
                        PI.DurumKodu = CP.GetApprovedCode();
                    }
                    #endregion

                    if (CP.GetApprovedCode() == "1" || CP.GetApprovedCode() == "2")
                    {
                        //- İşlem Onaylandıysa
                        #region INFO
                        //x GetHostlogkey Referans numarası
                        //x GetAuthcode Onay Kodu
                        //x GetTotalPoint Kullanılabilir Toplam Puan
                        //x GetTotalPointAmount Kullanılabilir Toplam Puan Tutarı (Yeni Kuruş cinsinden)
                        //x GetPoint Kazanılan Toplam Puan
                        //x GetPointAmount Kazanılan Toplam Puan Tutarı (Yeni Kuruş cinsinden)
                        //x GetInstalmentNumber Taksit sayısı
                        //x GetInstalmentAmount Taksit tutarı (Yeni Kuruş cinsinden)
                        #endregion

                        #region Onay Bilgisi
                        #region Onay Kodu
                        if (!string.IsNullOrEmpty(CP.GetAuthcode().Trim()))
                        {
                            PI.OnayKodu = CP.GetAuthcode();
                        }
                        #endregion
                        #region Referans Numarası
                        if (!string.IsNullOrEmpty(CP.GetHostlogkey().Trim()))
                        {
                            PI.ReferansNumarasi = CP.GetHostlogkey();
                        }
                        #endregion
                        #endregion
                        #region Puan Bilgileri
                        if (!string.IsNullOrEmpty(CP.GetTotalPoint()))
                        {
                            PI.KullanilabilirToplamPuan = CP.GetTotalPoint();
                        }
                        if (!string.IsNullOrEmpty(CP.GetTotalPointAmount()))
                        {
                            PI.KullanilabilirToplamPuanTutari = CP.GetTotalPointAmount();
                        }
                        if (!string.IsNullOrEmpty(CP.GetPoint()))
                        {
                            PI.KazanilanToplamPuan = CP.GetPoint();
                        }
                        if (!string.IsNullOrEmpty(CP.GetPointAmount()))
                        {
                            PI.KazanilanToplamPuanTutari = CP.GetPointAmount();
                        }
                        #endregion
                        #region Taksit Bilgileri
                        if (!string.IsNullOrEmpty(CP.GetInstalmentNumber()))
                        {
                            PI.TaksitSayisi = CP.GetInstalmentNumber();
                        }
                        if (!string.IsNullOrEmpty(CP.GetInstalmentAmount()))
                        {
                            PI.TaksitTutari = TLCevir(CP.GetInstalmentAmount());
                        }
                        #endregion
                        #region Vade Bilgileri
                        if (!string.IsNullOrEmpty(CP.GetVFTAmount()))
                        {
                            PI.VadeTutari = TLCevir(CP.GetVFTAmount());
                        }
                        if (!string.IsNullOrEmpty(CP.GetVFTRate()))
                        {
                            PI.VadeOrani = CP.GetVFTRate();
                        }
                        if (!string.IsNullOrEmpty(CP.GetVFTDayCount()))
                        {
                            PI.VadeGunSayisi = CP.GetVFTDayCount();
                        }
                        #endregion
                        #region Dönüş Mesajı
                        PD.Message.Type   = Class.Sabitler.MessageTypes.OK;
                        PD.Message.Header = "İşlem Başarılı";
                        PD.Message.Text   = "İşlem başarıyla gerçekleştirilmiştir.";
                        #endregion
                    }
                    else
                    {
                        //- İşlem Onaylanmadıysa
                        #region INFO
                        //x GetResponseCode Hata kodu
                        //x GetResponseText Hata mesajı
                        #endregion

                        #region POS Hata Mesajı
                        if (!string.IsNullOrEmpty(CP.GetResponseCode()))
                        {
                            PI.HataMesajiKodu = CP.GetResponseCode();
                        }
                        if (!string.IsNullOrEmpty(CP.GetResponseText()))
                        {
                            PI.HataMesaji = CP.GetResponseText();
                        }
                        #endregion
                        #region Dönüş Mesajı
                        PD.Message.Type   = Class.Sabitler.MessageTypes.ERROR;
                        PD.Message.Header = "Bir Hata Oluştu";
                        PD.Message.Text   = CP.GetResponseCode() + " - " + CP.GetResponseText();
                        #endregion
                    }
                }
                else
                {
                    #region Dönüş Mesajı
                    M.Type   = Class.Sabitler.MessageTypes.ERROR;
                    M.Header = "Bir Hata Oluştu";
                    M.Text   = "False geldi.";
                    #endregion
                }
            }
            catch (Exception Ex)
            {
                #region Dönüş Mesajı
                M.Type   = Class.Sabitler.MessageTypes.ERROR;
                M.Header = "Bir Hata Oluştu";
                M.Text   = Ex.Message;
                #endregion
            }
        }
        else
        {
            #region Dönüş Mesajı
            M.Type   = Class.Sabitler.MessageTypes.Other;
            M.Header = "İşlem Hatası";
            M.Text   = "POS yada Kart Objesi Boş Geldi.";
            #endregion
        }

        #region Objeye Diğer Objeleri Atama
        PD.POSIslem = PI;
        PD.Message  = M;
        #endregion

        return(PD);
    }
        public override PaymentMessage PeymentCore(ModelLayer.BankRequest bankRequest)
        {
            PaymentMessage mesaj = new PaymentMessage();

            C_Posnet posnetObj = new C_Posnet();
            posnetObj.SetMid(bankaApi.ClientId);
            posnetObj.SetTid(bankaApi.ApiName);
            posnetObj.SetURL(bankaApi.HostName);

            // Yapı Kredi Bilgi Formatı
            string tarihYil = bankRequest.KrediKart.Yil.Substring(2) + bankRequest.KrediKart.Ay;

            // Yapı Kredi Toplam Fiyat İşlemi
            string ykbtaksitToplam = bankRequest.TaksitToplam.ToString("c");
            ykbtaksitToplam = ykbtaksitToplam.Replace("TL", "");
            ykbtaksitToplam = ykbtaksitToplam.Replace(",", "");
            ykbtaksitToplam = ykbtaksitToplam.Replace(".", "");

            string taksit = null;
            if (bankRequest.Taksit.ToString() == "01")
            {
                taksit = "00";
            }
            else
            {
                taksit = bankRequest.Taksit.ToString();
            }

            bankRequest.KrediKart.AdSoyad = string.Format("{0}-", BusinessLayer.UrlTR.Replace(bankRequest.KrediKart.AdSoyad));

            //Ad Soyad için kalan alan
            int nNameLastIndex = (23 - bankRequest.SiparisNo.Length);

            for (int i = bankRequest.KrediKart.AdSoyad.Length; i < nNameLastIndex; i++)
            {
                bankRequest.KrediKart.AdSoyad += "0"; 
            }

            if (bankRequest.KrediKart.AdSoyad.Length > nNameLastIndex)
            {
                bankRequest.KrediKart.AdSoyad = bankRequest.KrediKart.AdSoyad.Substring(0, nNameLastIndex);
            }

            bankRequest.SiparisNo = string.Format("{0}-{1}", bankRequest.KrediKart.AdSoyad, bankRequest.SiparisNo);

            Boolean baglanti = posnetObj.DoSaleTran(bankRequest.KrediKart.No, tarihYil, bankRequest.KrediKart.CV2, bankRequest.SiparisNo, ykbtaksitToplam, "YT", taksit, "", "");

            if (baglanti == false)
            {
                mesaj.RedMesaj = "Banka ile Bağlantı Kurulamadı, Lütfen tekrar deneyiniz.";
                mesaj.RedMesajKodu = "yapikerediBaglanti";
            }
            if (posnetObj.GetApprovedCode() == "1")
            {
                if (posnetObj.GetAuthcode().ToString().Trim() != "" && posnetObj.GetHostlogkey().ToString().Trim() != "")
                {
                    mesaj.Success = true;
                    mesaj.OnayKodu = posnetObj.GetAuthcode();
                    mesaj.ReferansNo = posnetObj.GetHostlogkey();
                }
            }
            else if (posnetObj.GetApprovedCode() == "2")
            {
                mesaj.RedMesaj = "Kredi kartı ile ödeme  işlemini daha önce yapıldı. <br/> Resptext: " + posnetObj.GetResponseText();
                mesaj.RedMesajKodu = posnetObj.GetResponseCode();
            }
            else
            {
                #region Yapı Kredi Hata Mesajları
                string hataKodu = posnetObj.GetResponseCode();
                string hataMesaji = posnetObj.GetResponseText();
                mesaj.RedMesajKodu = posnetObj.GetResponseCode();

                if (hataKodu.Trim() == "0095")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + posnetObj.GetResponseText() + "<br/>* Kart bilgilerinden ( KK No, SKT, CVV) biri yada birkaçı hatalı girilmiş veya Worldcard'lar için bankaca tanımlanmış günlük limitler aşılmış olabilir.";
                }
                else if (hataKodu.Trim() == "150")
                {
                    mesaj.RedMesaj = "* Yanlış CVC no hatası.";
                }
                else if (hataKodu.Trim() == "0213")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kartın bakiyesi yetersiz. Kartı veren bankayı arayın.";
                }
                else if (hataKodu.Trim() == "0220")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Taksitli işlemler ancak 1 YTL'nin üstündeki tutarlarla yapılabilirler.";
                }
                else if (hataKodu.Trim() == "0225")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kart no hatalı";
                }
                else if (hataKodu.Trim() == "0400")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Posnet sunucu teknik bir sorun yaşıyor. Lütfen tekrar deneyin.";
                }
                else if (hataKodu.Trim() == "0551")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Numara bir kredi kartına ait değil.";
                }
                else if (hataKodu.Trim() == "131")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kart no bilgisi hiçbir boşluk içermeden 4912065000461139 şeklinde gönderilmelidir.";
                }
                else if (hataKodu.Trim() == "139")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kredi kartı güvenlik numarası (CVC) parametre hatalı.";
                }
                else if (hataKodu.Trim() == "0800")
                {
                    mesaj.RedMesaj = "* Resptext: " + hataMesaji + "<br/>* işlemde kullanılan kredi kartının YKB provizyon sisteminde tutulan çalıntı kredi kartı listesinde bulunmasıdır.";
                }
                else if (hataKodu.Trim() == "0876")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kart bilgilerinden ( KK No, SKT, CVV) biri yada birkaçı hatalı girilmiş veya Worldcard'lar için bankaca tanımlanmış günlük limitler aşılmış olabilir.";
                }
                else if (hataKodu.Trim() == "0877")
                {
                    mesaj.RedMesaj = "* CVC no girilmeli";
                }
                else if (hataKodu.Trim() == "0995")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kartı veren  banka ile iletişimde zaman aşımı oldu (bankadan zamanında yanıt alınamadı). Lütfen Tekrar deneyin.";
                }
                else if (hataKodu.Trim() == "0100")
                {
                    mesaj.RedMesaj = "* Resptext: " + hataMesaji + "<br/>* Banka sistemlerimizde anlık sorunlar olduğundan. Lütfen tekrar deneyin.";

                }
                else if (hataKodu.Trim() == "0173")
                {
                    mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>*  işlemde kullanılan kredi kartının internetten işlem yapma yetkisi bulunmamaktadır. <br/> Kredi kartını aldığı bankanın kredi kartları servisiyle görüşüp kredi kartını e-ticarette kullanamadığını belirtiniz.";
                }
                else
                {
                    mesaj.RedMesaj =  "* Ödeme İşlemi Yapılırken Bankadan Hata Mesajı Döndü.<br/> Hata Mesajı: " + hataMesaji + "<br/>Hata kodu: " + hataKodu;
                }
                #endregion
            }
            return mesaj;
        }
Exemplo n.º 8
0
        /// <summary>
        /// Process a payment
        /// </summary>
        /// <param name="processPaymentRequest">Payment info required for an order processing</param>
        /// <returns>Process payment result</returns>
        public ProcessPaymentResult ProcessPayment(ProcessPaymentRequest processPaymentRequest)
        {
            var result = new ProcessPaymentResult();

            result.AllowStoringCreditCardNumber = true;
            switch (_manualPaymentSettings.TransactMode)
            {
                case TransactMode.Pending:
                    result.NewPaymentStatus = PaymentStatus.Pending;
                    break;
                case TransactMode.Authorize:
                    result.NewPaymentStatus = PaymentStatus.Authorized;
                    break;
                case TransactMode.AuthorizeAndCapture:
                    result.NewPaymentStatus = PaymentStatus.Paid;
                    break;
                default:
                    {
                        result.AddError("Not supported transaction type");
                        return result;
                    }
            }

                    C_Posnet objYKB = new C_Posnet();

                    //Test parametreleri
                    objYKB.SetMid("6706598320");
                    objYKB.SetTid("67011009");
                    objYKB.SetURL("http://setmpos.ykb.com/PosnetWebService/XML");

                    //test card : 4506347011448053  2002/000

                    string orderBankUniqueID = ("123456" + DateTime.Now.ToString("yyyyMMddHHmmssfff")).PadLeft(24, '0');

                    bool return_value = objYKB.DoSaleTran( processPaymentRequest.CreditCardNumber,
                                             processPaymentRequest.CreditCardExpireYear.ToString() + processPaymentRequest.CreditCardExpireMonth.ToString(),
                                             processPaymentRequest.CreditCardCvv2, orderBankUniqueID, String.Format("{0:0.##}", processPaymentRequest.OrderTotal),
                                             "TL", "00", "00", "000000");
                    bool _IsConnectionOk, _IsOperationSuccessful = false;
                    string _ResponseErrorCode,_ResponseErrorMessage;
                    // Baðlantý Baþarýlý
                    if (return_value)
                    {
                        _IsConnectionOk = true;

                        string app_code = objYKB.GetApprovedCode();

                        if (app_code == "1" || app_code == "2")
                        {
                            _IsOperationSuccessful = true;
                        }
                        else if (app_code == "0")
                        {
                            _IsOperationSuccessful = false;
                        }

                        //test için heo  false dönsün
                        //_IsOperationSuccessful = false;

                        result.SubscriptionTransactionId  = objYKB.GetHostlogkey() + "|" + objYKB.GetAuthcode();
                        _ResponseErrorCode = objYKB.GetResponseCode();
                        if (_IsOperationSuccessful)
                        {
                            //_ResponseErrorMessage += "Banka Onay Kodu : " + _PaymentBankTransactionID;
                        }
                        else
                        {
                            _ResponseErrorMessage = objYKB.GetResponseText();
                        }
                    }

                    // Baðlantý Baþarýsýz
                    else
                    {
                        _IsOperationSuccessful = false;
                        _ResponseErrorCode = "-100";
                        _ResponseErrorMessage = "Banka Baðlantýsý Baþarýsýz. (BankResponseCode:" + return_value + ")";
                    }
                    objYKB = null;

                    //result.Success = _IsOperationSuccessful;

                return result;
        }