public override PaymentMessage PeymentCore(BankRequest bankRequest, KrediKart kart) { PaymentMessage mesaj = new PaymentMessage(); try { cc5payment mycc5pay = new cc5payment(); mycc5pay.host = bankaApi.HostName; mycc5pay.name = bankaApi.ApiName; mycc5pay.password = bankaApi.ApiPassword; mycc5pay.clientid = bankaApi.ClientId; mycc5pay.orderresult = 0; if (bankRequest.Taksit > 1) { mycc5pay.taksit = bankRequest.Taksit.ToString(); } mycc5pay.bname = kart.AdSoyad; mycc5pay.sname = kart.AdSoyad; mycc5pay.cardnumber = kart.No; mycc5pay.cv2 = kart.CV2; mycc5pay.expmonth = kart.Ay; mycc5pay.expyear = kart.Yil.Substring(2); mycc5pay.subtotal = bankRequest.TaksitToplam.ToString("N"); mycc5pay.oid = kart.SiparisNo; mycc5pay.currency = "949"; mycc5pay.chargetype = "Auth"; string result = mycc5pay.processorder(); if (result == "1") // banka ile bağlantı sağlandı { if (mycc5pay.appr == "Approved") { mesaj.Success = true; mesaj.OnayKodu = mycc5pay.code; mesaj.ReferansNo = mycc5pay.refno; } else { mesaj.RedMesaj = mycc5pay.errmsg; mesaj.RedMesajKodu = mycc5pay.err; } } else { mesaj.RedMesaj = "Banka ile Bağlantı Kurulamadı, Lütfen tekrar deneyiniz."; mesaj.RedMesajKodu = "anadoluBaglanti"; } } catch (Exception ex) { throw ex; } return mesaj; }
public override PaymentMessage PeymentCore(BankRequest bankRequest) { PaymentMessage mesaj = new PaymentMessage(); string strMode = "PROD"; // gerçek ortam string strVersion = "v0.01"; string strTerminalID = "10016630"; //8 Haneli TerminalID yazılmalı. string _strTerminalID = "0" + strTerminalID; string strMerchantID = bankaApi.ClientId; //Üye İşyeri Numarası 9115910 string strUserID = bankaApi.ApiName;//"PROVAUT"; string strProvUserID = bankaApi.ApiName;//"PROVAUT"; string strProvisionPassword = bankaApi.ApiPassword;//TerminalProvUserID şifresi string strIPAddress = HttpContext.Current.Request.UserHostAddress; string strOrderID = bankRequest.SiparisNo; string strNumber = bankRequest.KrediKart.No.Trim(); string strExpireDate = bankRequest.KrediKart.Ay + bankRequest.KrediKart.Yil.Substring(2); string strCVV2 = bankRequest.KrediKart.CV2.Trim(); string grtFiyatToplam = bankRequest.TaksitToplam.ToString("N"); string strAmount = grtFiyatToplam.Replace(",", "").Replace(".", "").Trim(); string strType = "sales"; string strCurrencyCode = "949"; string strCardholderPresentCode = "0"; string strMotoInd = "N"; string strInstallmentCount = ""; if (bankRequest.Taksit != 1) { strInstallmentCount = bankRequest.Taksit.ToString(); } char crNull = ' '; string adSoyad = bankRequest.KrediKart.AdSoyad.Trim(); int index = adSoyad.IndexOf(crNull); string[] _adSoyad = new string[2]; if (index > 1) { _adSoyad[0] = adSoyad.Substring(0, index); _adSoyad[1] = adSoyad.Substring(index); } else { _adSoyad[0] = adSoyad; _adSoyad[1] = adSoyad; } string SecurityData = GetSHA1(strProvisionPassword + _strTerminalID).ToUpper(); string HashData = GetSHA1(strOrderID + strTerminalID + strNumber + strAmount + SecurityData).ToUpper(); string strXML = null; strXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<GVPSRequest>" + "<Mode>" + strMode + "</Mode>" + "<Version>" + strVersion + "</Version>" + "<Terminal><ProvUserID>" + strProvUserID + "</ProvUserID><HashData>" + HashData + "</HashData><UserID>" + strUserID + "</UserID><ID>" + strTerminalID + "</ID><MerchantID>" + strMerchantID + "</MerchantID></Terminal>" + "<Customer><IPAddress>" + strIPAddress + "</IPAddress><EmailAddress></EmailAddress></Customer>" + "<Card><Number>" + strNumber + "</Number><ExpireDate>" + strExpireDate + "</ExpireDate><CVV2>" + strCVV2 + "</CVV2></Card>" + "<Order><OrderID>" + strOrderID + "</OrderID><GroupID></GroupID><AddressList><Address><Type>S</Type><Name>" + _adSoyad[0] + "</Name><LastName>" + _adSoyad[1] + "</LastName><Company></Company><Text></Text><District></District><City></City><PostalCode></PostalCode><Country></Country><PhoneNumber></PhoneNumber></Address></AddressList> <CommentList><Comment><Number>1</Number><Text>" + KulaniciAdiKes(bankRequest.KrediKart.AdSoyad) + "</Text></Comment></CommentList></Order>" + "<Transaction>" + "<Type>" + strType + "</Type><InstallmentCnt>" + strInstallmentCount + "</InstallmentCnt><Amount>" + strAmount + "</Amount><CurrencyCode>" + strCurrencyCode + "</CurrencyCode><CardholderPresentCode>" + strCardholderPresentCode + "</CardholderPresentCode><MotoInd>" + strMotoInd + "</MotoInd>" + "</Transaction>" + "</GVPSRequest>"; try { string data = "data=" + strXML; WebRequest _WebRequest = WebRequest.Create(bankaApi.HostName); _WebRequest.Method = "POST"; byte[] byteArray = Encoding.UTF8.GetBytes(data); _WebRequest.ContentType = "application/x-www-form-urlencoded"; _WebRequest.ContentLength = byteArray.Length; Stream dataStream = _WebRequest.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); WebResponse _WebResponse = _WebRequest.GetResponse(); dataStream = _WebResponse.GetResponseStream(); StreamReader reader = new StreamReader(dataStream); string responseFromServer = reader.ReadToEnd(); //GVPSResponse XML'in değerlerini okuma. string XML = responseFromServer; XmlDocument xDoc = new XmlDocument(); xDoc.LoadXml(XML); XmlElement ReasonCode = xDoc.SelectSingleNode("//GVPSResponse/Transaction/Response/ReasonCode") as XmlElement; XmlElement Message = xDoc.SelectSingleNode("//GVPSResponse/Transaction/Response/Message") as XmlElement; if (ReasonCode.InnerText == "00") { XmlElement xElemRetrefNum = xDoc.SelectSingleNode("//GVPSResponse/Transaction/RetrefNum") as XmlElement; XmlElement xElemAuthCode = xDoc.SelectSingleNode("//GVPSResponse/Transaction/AuthCode") as XmlElement; mesaj.Success = true; mesaj.OnayKodu = xElemAuthCode.InnerText; mesaj.ReferansNo = xElemRetrefNum.InnerText; } else { XmlElement ErrorMsg = xDoc.SelectSingleNode("//GVPSResponse/Transaction/Response/ErrorMsg") as XmlElement; XmlElement SysErrMsg = xDoc.SelectSingleNode("//GVPSResponse/Transaction/Response/SysErrMsg") as XmlElement; mesaj.RedMesaj = ErrorMsg.InnerText; mesaj.RedMesajKodu = SysErrMsg.InnerText; } return mesaj; } catch (WebException) { mesaj.RedMesaj = "Banka ile Bağlantı kurulamadı lütfen tekrar deneyiniz."; mesaj.RedMesajKodu = "Bağlantı Hatası"; return mesaj; } catch (Exception) { throw; } }
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; }