none
Sanalpos sayfa gidip gelmesini engelleme ? RRS feed

  • Genel Tartışma

  • Arkadaşlar merhaba bi sanal pos sorunu var yardımcı olabilirseniz sevinirim.

    Bankanın verdiği sistemde ödeme işlemi için sistem bankanın ilgili adresine gidiyor fakat yanıt işlemde gönderilen okurl deki adrese dönüyor, ben bu sayfanın gidip gelme olayını c# kısmında nasıl halledebilirim http istekleriyele falan ?

    Yani bankanın verdiği adrese isteği arkaplanda gönderip yanıtı da arkaplanda kontrol etmem gerekiyor..


    Web Developer


    • Düzenleyen ilica18 16 Ocak 2016 Cumartesi 12:00
    • Değiştirilmiş Tür Serkan Canseven 29 Ocak 2016 Cuma 11:49
    16 Ocak 2016 Cumartesi 11:24

Tüm Yanıtlar

  • Merhaba;

    en basit yolu :

    iframe

    Kolay Gelsin.


    HNG ═══ᵌ Ữ


    16 Ocak 2016 Cumartesi 11:52
  • Merhaba;

    Bazı Banklar için

    .aspx tarafında

    EnableViewStateMac = "false"

    Kullanman gerekiyor.



    HNG ═══ᵌ Ữ

    16 Ocak 2016 Cumartesi 11:57
  • iframe ile bankaya nasıl veri gönderip yanıt alabiliriz örnek verebilir misiniz ?

    Elimde bir xml dosyası var ve bu dosyayı bankaya gönderiyorum, sorun şu dönüşte banka sonucu farklı bir sayfaya gönderiyor, benim bu işlemi gerçek sayfalarla değil c# ta oluşturulacak yöntemlerle halletmem gerekiyor, iframe ile nasıl yapılabilir ?


    Web Developer

    16 Ocak 2016 Cumartesi 12:25
  • Merhaba;

    Hangi Banka olduğunu ve sizin ilgili bankann hangi yöntemi kullandığınızı bildirmeniz mümkünmü.??

    3D_Pay gibi olanı.

    Kolay Gelsin.

    Not : iframe ilgili sayfanızı çağıracaksınız.

    ve işlemlere oradan devam edeceksiniz.


    HNG ═══ᵌ Ữ

    16 Ocak 2016 Cumartesi 12:37
  • Merhaba;

    <div align="center">
     <div id="Div_BankaKontrol" runat="server" class="msg_bg" style="display:none;">
      <div style="overflow:auto;height:100%;">
       <div class="BNK_popup800_ust">
        <div class="BNK_kapat_popup800"><asp:Button ID="igiliBt" runat="server" onclick="igili_Click"/></div>
       </div>
       <div class="BNK_msg_form_800">
        <div class="BNK_popup800_ic">
         <iframe id="KimO0" name="KimO0" runat="server" src="" width="750" height="450" scrolling="auto" frameborder="0" marginwidth="0" marginheight="0"></iframe>
        </div>
       </div>
      <div class="BNK_popup800_alt"></div>
     </div>
     </div>
    </div>

    .aspx tarafı


    HNG ═══ᵌ Ữ

    16 Ocak 2016 Cumartesi 13:06
  • banka kuveytturk ve işlem 3d siz normal sanal pos işlemi

    kullanıcıdan kart bilgileri alınıp xml formatında hazırlanıyor, sonrasında şu kodlarla bilgiler bankaya gönderiliyor;

    string proxyValue = ""; 
            byte[] buffer = Encoding.UTF8.GetBytes(postdata); 
            HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(gServer);
            WebReq.Timeout = 5 * 60 * 1000;

            WebReq.Method = "POST";
            WebReq.ContentType = "application/x-www-form-urlencoded"; 
            WebReq.ContentLength = buffer.Length;

            WebReq.CookieContainer = new CookieContainer();
            Stream ReqStream = WebReq.GetRequestStream();
            ReqStream.Write(buffer, 0, buffer.Length);

            ReqStream.Close();

            WebResponse WebRes = WebReq.GetResponse();
            Stream ResStream = WebRes.GetResponseStream();
            StreamReader ResReader = new StreamReader(ResStream);
            string responseString = ResReader.ReadToEnd();

            Response.Write(responseString);

    responseString içerisinde ne var bilmiyorum ama işlem burada bitmiyor işlem verdiğim kodların öncesinde bir değişkene atanan ve bankaya yollanan xml in içerisine eklenen OkUrl değişkenindeki adrese belirtilen sayfada şu kodlarla sonlanıyor ;

    lblBilgi.Text = Request.Form["ResponseMessage"].ToString();
            lblBilgi2.Text = Request.Form["ResponseCode"].ToString(); 

    burada Request.Form["ResponseCode"].ToString(); deki kod başarılıysa sipariş oluşturulacak.

    Bu noktada benim webrequestle giden bilgiye verilen banka yanıtını aynı yöntemle elde edip şu Request.Form["ResponseCode"].ToString(); içerisindeki dönen kodu elde etmem lazım..


    Web Developer

    16 Ocak 2016 Cumartesi 13:09
  • Merhaba;

    ilk bilgileri topladığınız sayfa nın üstteki .aspx in cs.

    switch (HangiBankaKontrol)
                            {
                                case "Isbank": KimO0.Attributes["src"] = "https://_sizinSiteniz.com/_Req/isBank_ddd.aspx"; break;
                                case "Akbank":
                                    KimO0.Attributes["src"] = "https://_sizinSiteniz.com/_Req/AkBank_ddd.aspx";
    break;
                                case "Garanti": KimO0.Attributes["src"] = "https://_sizinSiteniz.com/_Req/Garanti_ddd.aspx"; break;
                                case "HalkBank": KimO0.Attributes["src"] = "https://_sizinSiteniz.com/_Req/HalkBank_ddd.aspx"; break;
                                case "FinansBank": KimO0.Attributes["src"] = "https://_sizinSiteniz.com/_Req/FinansBank_ddd.aspx"; break;
                                case "BankAsya": KimO0.Attributes["src"] = "https://_sizinSiteniz.com/_Req/BankAsya_ddd.aspx"; break;
                                case "HSBC":
                                    KimO0.Attributes["src"] = "https://_sizinSiteniz.com/_Req/Hsbc_ddd.aspx";
                                    break;
    
                                default: // Her ihtimale karşı ** kart bini sorunları sebebi ile **
                                    KimO0.Attributes["src"] = "https://_sizinSiteniz.com/_Req/AkBank_ddd.aspx";
                                    break;
                            }

    Bu cs


    HNG ═══ᵌ Ữ

    16 Ocak 2016 Cumartesi 13:15
  • Merhaba;

    Gönderme işlemini gönderdiğim örnek ile yapabilirsiniz.

    Bundan sonrası daha kolay.

    OkUrl = sizin belirlediğiniz sayfa olduğu için her banka için bir sayfa yapmanızı öneriyorum.

    FailUrl =  sizin belirlediğiniz sayfa olduğu için her banka için bir sayfa yapmanızı öneriyorum.

    diğer türlü her isteği sizin ayrıca takip etmeniz gerekecek.

    Buraya kadar tamam ise devam edelim.

    Kolay Gelsin.


    HNG ═══ᵌ Ữ

    16 Ocak 2016 Cumartesi 13:21
  • Merhaba;

    Size gelen sayfa yaklaşık böyle olmalı.

    StatuCu = Request.Form.Get("Status");
                    PaketAD = Request.Form.Get("XID");
                    //HataCi = Request.Form.Get("MessageErrorCode");
                    MerchantID = Request.Form.Get("MerchantID");
                    PAN = Request.Form.Get("PAN");
                    Expiry = Request.Form.Get("Expiry");
                    PurchAmount = Request.Form.Get("PurchAmount");
                    PurchCurrency = Request.Form.Get("PurchCurrency");
                    SessionInfo = Request.Form.Get("SessionInfo");
                    PAResVerified = Request.Form.Get("PAResVerified");
                    PAResSyntaxOK = Request.Form.Get("PAResSyntaxOK");
                    ARV = Request.Form.Get("ARV");
                    CAVV = Request.Form.Get("CAVV");
                    ECI = Request.Form.Get("ECI");


    HNG ═══ᵌ Ữ

    16 Ocak 2016 Cumartesi 13:26
  • Merhaba;

    String Gonderelim(String istekCi) // üstte hazırlanan bilgi buna gelecek.
            {
    try
                {
                    String GidecekBilgi = "";
                    String GelenBilgi = "";
    
                    System.Text.Encoding TurkceCi = System.Text.Encoding.GetEncoding("ISO-8859-9");
                    GidecekBilgi = "https://vps.kuveytTurk.com.tr/iposnet/sposnet.aspx?prmstr=[DATA]"; // gerçek ortam adresi girilecek
    
                    GidecekBilgi = GidecekBilgi.Replace("[DATA]", istekCi);
    
                    HttpWebRequest webDeniste = (HttpWebRequest)WebRequest.Create(GidecekBilgi);
                    webDeniste.Timeout = Convert.ToInt32(20000);
                    webDeniste.KeepAlive = false;
    
                    WebResponse webDenGelen = webDeniste.GetResponse();
                    Stream GelenStream = webDenGelen.GetResponseStream();
    
                    byte[] buffer = new byte[10000];
                    int len = 0, r = 1;
                    while (r > 0)
                    {
                        r = GelenStream.Read(buffer, len, 10000 - len);
                        len += r;
                    }
                    GelenStream.Close();
    
                    GelenBilgi = TurkceCi.GetString(buffer, 0, len).Replace("\r", "").Replace("\n", "");
                    
                    XmlDocument _retval = new XmlDocument();
                    _retval.LoadXml(GelenBilgi);
                    
                    XmlNode _retnode = null;
                    _retnode = _retval.SelectSingleNode("//ePaymentMsg/Operation/OpData/ActionInfo/HostResponse"); // ilgili node girilecek.
                    
                    String _authcode = _retnode.Attributes["AuthCode"].Value;
                    String _resultcode = _retnode.Attributes["ResultCode"].Value;
    
                    SonucTxt.Value = _resultcode;
                    
                    return GelenBilgi; // bunun içinde olacak çağırdığınız yerde kullanın.
                }
                catch (System.Net.Sockets.SocketException ex)
                {
                    HataGonder("Gonderelim<hr>System.Net.Sockets.SocketException Hata :" + ex.Message); // size gelecek hata bilgisi
                    throw ex;
                }
                catch (Exception ex)
                {
                    HataGonder("Gonderelim<hr>Exception Hata :" + ex.Message);  // size gelecek hata bilgisi
                    throw ex;
                }


    HNG ═══ᵌ Ữ

    16 Ocak 2016 Cumartesi 13:34
  • Merhaba;

    Bu da HATA ( FailUrl ) sayfası için :

    void SayfayaBakalim()
            {
                String ilkTable = "<div>\r\n" + "<table align=\"left\" cellpadding=\"1\" border=\"1\" cellspacing=\"0\" style=\"width:100%;\">" + "\r\n";
                String MesajTopla = "<tr><td style=\"color:#cb153b;\">" + "Kim : " + _Params_AL + "</td><td style=\"color:blue\">" + _Hash_AL + "</td></tr>" + "\r\n";
                String SonTable = "</div></table>";
    
                IEnumerator eCi = Request.Form.GetEnumerator();
                try
                {
                    while (eCi.MoveNext())
                    {
                        String xkey = (String)eCi.Current;
                        String xval = Request.Form.Get(xkey);
    
                        MesajTopla += "<tr><td style=\"color:#cb153b;\">" + xkey + "</td><td style=\"color:blue\">" + xval + "</td></tr>" + "\r\n";
                    }
                }
                catch
                {
                    Server.ClearError();
                }
    
                MesajTopla = ilkTable + MesajTopla + SonTable;
                GenelHataMesajLbl.Text = "İşlem Başarısız.<br>Lütfen Tekrar Deneyiniz.";
                HataGonder(MesajTopla);  // size gelecek hata bilgisi
            }

    Kolay Gelsin.

    Çıkmam lazım bundan sonrasına diğer arkadaşlar yardımcı olur.


    HNG ═══ᵌ Ữ

    16 Ocak 2016 Cumartesi 14:39