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 static void BankaGeriBildirimKaydet(BankRequest bankRequest) { try { using (SqlConnection baglan = new SqlConnection(ConnectionString)) { baglan.Open(); using (SqlCommand kmt = new SqlCommand()) { kmt.Connection = baglan; kmt.CommandText = "banka_MesajEkle"; kmt.CommandType = CommandType.StoredProcedure; kmt.Parameters.Add("@siparisNo", SqlDbType.NVarChar); kmt.Parameters["@siparisNo"].Value = bankRequest.SiparisNo; kmt.Parameters.Add("@kullaniciId", SqlDbType.Int); kmt.Parameters["@kullaniciId"].Value = bankRequest.KrediKart.UserId; kmt.Parameters.Add("@kartAd", SqlDbType.NVarChar); kmt.Parameters["@kartAd"].Value = bankRequest.KrediKart.AdSoyad; kmt.Parameters.Add("@kartNo", SqlDbType.NVarChar); kmt.Parameters["@kartNo"].Value = bankRequest.KrediKart.No.Substring(0, 4) + "-XXXX-XXXX-" + bankRequest.KrediKart.No.Substring(12); kmt.Parameters.Add("@kartCV2", SqlDbType.NVarChar); kmt.Parameters["@kartCV2"].Value = string.Format("{0}**", bankRequest.KrediKart.CV2.Substring(0,1)); kmt.Parameters.Add("@redMesaj", SqlDbType.NVarChar); kmt.Parameters["@redMesaj"].Value = bankRequest.PaymentMessage.RedMesaj; kmt.Parameters.Add("@redMesajKodu", SqlDbType.NVarChar); kmt.Parameters["@redMesajKodu"].Value = bankRequest.PaymentMessage.RedMesajKodu; kmt.Parameters.Add("@bankaId", SqlDbType.Int); kmt.Parameters["@bankaId"].Value = bankRequest.BankaId; kmt.Parameters.Add("@taksit", SqlDbType.Int); kmt.Parameters["@taksit"].Value = bankRequest.Taksit; kmt.Parameters.Add("@toplamFiyat", SqlDbType.Money); kmt.Parameters["@toplamFiyat"].Value = bankRequest.TaksitToplam; kmt.ExecuteNonQuery(); } } } catch (Exception ex) { LogManager.SqlDB.Write("Banka dönüş raporu kaydetme:", ex); } }
public static void Kaydet(BankRequest bankRequest) { try { SqlParameter[] parameter = new SqlParameter[5]; parameter[0] = new SqlParameter("@siparisId", SqlDbType.Int); parameter[0].Value = bankRequest.SiparisId; parameter[1] = new SqlParameter("@kartNo", SqlDbType.NVarChar); parameter[1].Value = bankRequest.KrediKart.No.Substring(0, 4) + "-XXXX-XXXX-" + bankRequest.KrediKart.No.Substring(12); parameter[2] = new SqlParameter("@kartAd", SqlDbType.NVarChar); parameter[2].Value = bankRequest.KrediKart.AdSoyad; parameter[3] = new SqlParameter("@onayKodu", SqlDbType.NVarChar); parameter[3].Value = bankRequest.PaymentMessage.OnayKodu; parameter[4] = new SqlParameter("@referansNo", SqlDbType.NVarChar); parameter[4].Value = bankRequest.PaymentMessage.ReferansNo; SqlHelper.ExecuteNonQuery("siparis_OdemeBilgisi", parameter); } catch (Exception ex) { LogManager.SqlDB.Write("Sipariş Ödeme Bilgisi Kayıt: ", ex); } }
protected void btnOdemeYap_Click(object sender, EventArgs e) { try { #region KULANICI GİRİŞ DOĞRULAMA StringBuilder denetim = new StringBuilder(); if (ddlBankalar.SelectedValue.ToString() == "0") denetim.Append("* Lütfen Kredi Kartınızın Ait Olduğu Bankayı Seçiniz.<br/>"); if (string.IsNullOrWhiteSpace(txtKartAdSoyad.Text)) denetim.Append("* Lütfen Kredi Kart Üstündeki İsmi Giriniz.<br/>"); if (string.IsNullOrWhiteSpace(txtKartNo1.Text)) denetim.Append("* Lütfen Kredi Kart Numarası Giriniz.<br/>"); if (string.IsNullOrWhiteSpace(txtKartNo2.Text)) denetim.Append("* Lütfen Kredi Kart Numarası Giriniz.<br/>"); if (string.IsNullOrWhiteSpace(txtKartNo3.Text)) denetim.Append("* Lütfen Kredi Kart Numarası Giriniz.<br/>"); if (string.IsNullOrWhiteSpace(txtKartNo4.Text)) denetim.Append("* Lütfen Kredi Kart Numarası Giriniz.<br/>"); if (ddlAy.SelectedValue.ToString() == "0") denetim.Append("* Lütfen Kredi Kartı Son Kullanma Tarihi Ay Olarak Seçiniz.<br/>"); if (ddlYil.SelectedValue.ToString() == "0") denetim.Append("* Lütfen Yıl Seçiniz.<br/>"); if (string.IsNullOrWhiteSpace(txtGuvenlikKodu.Text)) denetim.Append("* Lütfen Kredi Kartı Güvenlik Kodunu Giriniz.<br/>"); if (Request.Form["taksit"] == null ) denetim.Append("* Lütfen Taksit Miktarı Seçiniz.<br/>"); if (denetim.Length > 10) { Mesaj.Alert(denetim.ToString()); return; } #endregion bankRequest = new BankRequest(); bankRequest.KrediKart.AdSoyad = GenelFonksiyonlar.ToTitleCase(txtKartAdSoyad.Text); bankRequest.KrediKart.No = txtKartNo1.Text + txtKartNo2.Text + txtKartNo3.Text + txtKartNo4.Text; bankRequest.KrediKart.CV2 = txtGuvenlikKodu.Text; bankRequest.KrediKart.Ay = ddlAy.SelectedValue; bankRequest.KrediKart.Yil = ddlYil.SelectedValue; bankRequest.KrediKart.UserId = uyeId; bankRequest.Taksit = Convert.ToInt32(Request.Form["taksit"]); bankRequest.BankaId = Convert.ToInt32(ddlBankalar.SelectedValue); siparisBilgi = Request.Cookies["lensOptik"]; siparisBilgi = HttpSecureCookie.Decode(siparisBilgi); bankRequest.TaksitToplam = Convert.ToDecimal(siparisBilgi["FiyatToplam"]); bankRequest.SiparisNo = siparisBilgi["siparisNo"].ToString(); if (ckbUyePuan.Checked) { UyePuan(uyeId); bankRequest.TaksitToplam -= uyePuan; } //Aylık taksit miktarı ve Toplam fiyat hesaplama bankRequest.FiyatTaksitUygula(); PaymentManager paymentManeger = new PaymentManager(); bankRequest.PaymentMessage = paymentManeger.Process(bankRequest); if (bankRequest.PaymentMessage.Success) { SiparisKayit(); Response.Redirect("~/Market/SiparisOzeti.aspx?siparisId=" + bankRequest.SiparisId.ToString() + "&islem=Kart", false); } else { MesajScript(); Mesaj.Alert("Banka işlem dönüşü: " + bankRequest.PaymentMessage.RedMesaj); BankaDB.BankaGeriBildirimKaydet(bankRequest); } } catch (Exception hata) { MesajScript(); Mesaj.Alert("Ödeme işlemi hata ile sonuçlandı."); LogManager.SqlDB.Write("Kredi kartı ile ödeme yapılırken hata oluştu", hata); } }
public PaymentMessage Process(BankRequest bankRequest) { paymentService = PeymentServiceFactory.GetPaymentServiceFrom(bankRequest.BankaId, bankRequest.Taksit); return paymentService.PeymentCore(bankRequest); }
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 abstract PaymentMessage PeymentCore(BankRequest bankRequest);
public abstract PaymentMessage PeymentCore(BankRequest bankRequest, KrediKart kart);