Esempio n. 1
0
        void KKOdemeYap()
        {
            ObjeSetle();

            #region Create Instance
            SHOPObjeler.Tanimlar.KKOdemeBilgileri OB = new SHOPObjeler.Tanimlar.KKOdemeBilgileri();
            #endregion

            try
            {
                int BankaID;
                int.TryParse(Class.Fonksiyonlar.Genel.StringIslemleri(Class.Sabitler.StringIslemleri.StringIslemTipleri.SQLTemizle, Request.Form["odeme_kredikarti$ddl_banka"].ToString()), out BankaID);

                using (SHOPObjeler.Tanimlar.KrediKart KK = new SHOPObjeler.Tanimlar.KrediKart())
                {
                    KK.AdSoyad = Class.Fonksiyonlar.Genel.StringIslemleri(Class.Sabitler.StringIslemleri.StringIslemTipleri.SQLTemizle, Request.Form["odeme_kredikarti$txt_kart_isim"].ToString());

                    if (BankaID != 0)
                    {
                        KK.BankaID = BankaID;
                    }

                    KK.KartNo      = Class.Fonksiyonlar.Genel.StringIslemleri(Class.Sabitler.StringIslemleri.StringIslemTipleri.SQLTemizle, Request.Form["odeme_kredikarti$txt_kart_no_1"].ToString()) + Class.Fonksiyonlar.Genel.StringIslemleri(Class.Sabitler.StringIslemleri.StringIslemTipleri.SQLTemizle, Request.Form["odeme_kredikarti$txt_kart_no_2"].ToString()) + Class.Fonksiyonlar.Genel.StringIslemleri(Class.Sabitler.StringIslemleri.StringIslemTipleri.SQLTemizle, Request.Form["odeme_kredikarti$txt_kart_no_3"].ToString()) + Class.Fonksiyonlar.Genel.StringIslemleri(Class.Sabitler.StringIslemleri.StringIslemTipleri.SQLTemizle, Request.Form["odeme_kredikarti$txt_kart_no_4"].ToString());
                    KK.SonKullanim = Class.Fonksiyonlar.Genel.StringIslemleri(Class.Sabitler.StringIslemleri.StringIslemTipleri.SQLTemizle, Request.Form["odeme_kredikarti$ddl_son_tarih_ay"].ToString()) + Class.Fonksiyonlar.Genel.StringIslemleri(Class.Sabitler.StringIslemleri.StringIslemTipleri.SQLTemizle, Request.Form["odeme_kredikarti$ddl_son_tarih_yil"].ToString());
                    KK.CVC         = Class.Fonksiyonlar.Genel.StringIslemleri(Class.Sabitler.StringIslemleri.StringIslemTipleri.SQLTemizle, Request.Form["odeme_kredikarti$txt_guvenlik_kodu"].ToString());
                    KK.KartTipi    = (SHOPClass.Sabitler.KartTipi)Enum.Parse(typeof(SHOPClass.Sabitler.KartTipi), Class.Fonksiyonlar.Genel.StringIslemleri(Class.Sabitler.StringIslemleri.StringIslemTipleri.SQLTemizle, Request.Form["odeme_kredikarti$ddl_kart_tip"].ToString()));

                    Sistem.Odeme.OdemeSekilleri.KrediKarti.KartBilgileri = KK;
                }

                #region Ödeme Bilgileri Objesi
                OB.Tutar        = Sistem.Sepet.Toplam;
                OB.ParaBirimiID = Sistem.Sepet.ParaBirimID;
                #endregion

                #region Obje Setle
                Sistem.Odeme.OdemeSekilleri.KrediKarti.OdemeBilgileri = OB;
                #endregion

                //SHOPClass.Odemeler.Pos.KrediKartiIleOdemeBilgisiEkle(KKO);

                Gonder();
            }
            catch (Exception ex)
            {
                Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
            }
        }
Esempio n. 2
0
    /// <summary>
    /// Seçilen banka için Bin kontrolü ve gönderilen kart için Bin doğrulama işlemi yapıyor.
    /// </summary>

    /* Create FÜ - 10.08.2012
     * Edit FÜ - 12.08.2012 - 18:23 If kısmına comment eklendi, Summary alanı açıklaması değiştirildi.
     */
    /// <param name="P">SHOPObjeler.Tanimlar.POS</param>
    /// <param name="K">SHOPObjeler.Tanimlar.KrediKart</param>
    /// <returns>
    /// Bool döndürür
    /// </returns>
    public bool BinKontrol(SHOPObjeler.Tanimlar.POS P, SHOPObjeler.Tanimlar.KrediKart K)
    {
        if (P != null && K != null)
        {
            if (K.BankaID > 0)
            {
                bool B = (from p in P.Bankalar
                          where p.Key == K.BankaID
                          select p.Value).FirstOrDefault();

                #region Seçilen Bankada Bin Kontrolü Açıksa
                if (B)
                {
                    if (!string.IsNullOrEmpty(K.KartNo))
                    {
                        return(SHOPClass.Odemeler.Pos.BinNoKontrol(K.BankaID, K.KartNo.Substring(0, 6)));
                    }
                    else
                    {
                        return(false);
                    }
                }
                #endregion
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
        else
        {
            return(false);
        }
    }
Esempio n. 3
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);
    }
Esempio n. 4
0
    protected void DropDownIslemler_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (DropDownIslemler.SelectedValue.ToString() != "-1")
        {
            #region Kredi Kartı Objesi
            SHOPObjeler.Tanimlar.KrediKart KK = (from p in TestKartlari
                                                 where p.KartNo == DropDownKartlar.SelectedValue.ToString()
                                                 select p).ToList()[0];
            #endregion

            #region Enum Atama
            SHOPClass.Sabitler.PosIslemTipleri PT = (SHOPClass.Sabitler.PosIslemTipleri)Enum.Parse(typeof(SHOPClass.Sabitler.PosIslemTipleri), DropDownIslemler.SelectedValue.ToString());
            #endregion

            //- İşlem -> Bin Kontrolü Evet -> Puan Sorgula Evet -> Ön Otorizasyon Yada da Satış
            //- İşlem -> Bin Kontrolü Evet -> Puan Sorgula Hayır -> Vade Farkı Sorgulama Evet -> Ön Otorizasyon Yada da Satış
            //- İşlem -> Bin Kontrolü Hayır -> Vade Farkı Sorgulama Evet -> Ön Otorizasyon Yada da Satış

            SHOPClass.Odemeler.POSDurum POSD = new SHOPClass.Odemeler.POSDurum();

            if (BinKontrol(POS, KK))
            {
                #region Puan Sorgula
                POSD = PosIslem(SHOPClass.Sabitler.PosIslemTipleri.Puan, POS, KK, OB);
                #endregion

                if (POSD.Message.Type == Class.Sabitler.MessageTypes.OK)
                {
                    #region Ön Otorizasyon veya Satış
                    if (POS.OnOtorizasyon)
                    {
                        POSD = PosIslem(SHOPClass.Sabitler.PosIslemTipleri.Otorizasyon, POS, KK, OB);
                    }
                    else
                    {
                        POSD = PosIslem(SHOPClass.Sabitler.PosIslemTipleri.Satis, POS, KK, OB);
                    }
                    #endregion
                }
                else
                {
                    //HATA
                }
            }
            else
            {
                #region Vade Farkı Sorgula
                POSD = PosIslem(SHOPClass.Sabitler.PosIslemTipleri.Vade, POS, KK, OB);
                #endregion

                if (POSD.Message.Type == Class.Sabitler.MessageTypes.OK)
                {
                    #region Ön Otorizasyon veya Satış
                    if (POS.OnOtorizasyon)
                    {
                        POSD = PosIslem(SHOPClass.Sabitler.PosIslemTipleri.Otorizasyon, POS, KK, OB);
                    }
                    else
                    {
                        POSD = PosIslem(SHOPClass.Sabitler.PosIslemTipleri.Satis, POS, KK, OB);
                    }
                    #endregion
                }
                else
                {
                    //
                }
            }

            MesajlariYaz();
        }
    }