<%@ Page Language="VB" AutoEventWireup="true" EnableEventValidation="false" EnableViewStateMac="false" ValidateRequest="false" %> <%@ Import Namespace="System.Collections" %> Ödeme Sayfası

3D Ödeme Sayfası

<% Dim ToSendMail As String = _portalsettings.Email If ConfigurationManager.AppSettings("SmtpMailOrders") <> "" Then ToSendMail = ConfigurationManager.AppSettings("SmtpMailOrders") End If Dim odemeparametreleri As [String]() = New [String]() {"AuthCode", "Response", "HostRefNum", "ProcReturnCode", "TransId", "ErrMsg"} Dim e As IEnumerator = Request.Form.GetEnumerator() While e.MoveNext() Dim xkey As [String] = DirectCast(e.Current, [String]) Dim xval As [String] = Request.Form.Get(xkey) Dim ok As Boolean = True For i As Integer = 0 To odemeparametreleri.Length - 1 If xkey.Equals(odemeparametreleri(i)) Then ok = False Exit For End If Next If ok Then Response.Write("" + xkey + "" + xval + "") End If End While Dim hashparams As [String] = Request.Form.[Get]("HASHPARAMS") Dim hashparamsval As [String] = Request.Form.[Get]("HASHPARAMSVAL") Dim storekey As [String] = Session("Key3D") Dim paramsval As [String] = "" Dim index1 As Integer = 0, index2 As Integer = 0 ' hash hesaplamada kullanılacak değerler ayrıştırılıp değerleri birleştiriliyor. Dim val As [String] = "" Do index2 = hashparams.IndexOf(":", index1) If index2 < 0 Then ' son parametere val = Request.Form.[Get](hashparams.Substring(index1)) index2 = hashparams.Length Else val = Request.Form.[Get](hashparams.Substring(index1, index2 - index1)) End If paramsval += val index1 = index2 + 1 Loop While index1 < hashparams.Length Dim hashval As [String] = paramsval + storekey 'elde edilecek hash değeri için paramsval e store key ekleniyor. (işyeri anahtarı) Dim hashparam As [String] = Request.Form.[Get]("HASH") Dim sha As System.Security.Cryptography.SHA1 = New System.Security.Cryptography.SHA1CryptoServiceProvider() Dim hashbytes As Byte() = System.Text.Encoding.GetEncoding("ISO-8859-9").GetBytes(hashval) Dim inputbytes As Byte() = sha.ComputeHash(hashbytes) Dim hash As [String] = Convert.ToBase64String(inputbytes) 'Güvenlik ve kontrol amaçlı oluşturulan hash If Not paramsval.Equals(hashparamsval) OrElse Not hash.Equals(hashparam) Then 'oluşturulan hash ile gelen hash ve hash parametreleri değerleri ile ayrıştırılıp edilen edilen aynı olmalı. Response.Write("

Güvenlik Uyarısı. Sayısal İmza Geçerli Değil

") Response.Write("

" + paramsval + " == " + hashparamsval + "

") Response.Write("

" + hash + "

") End If For i As Integer = 0 To odemeparametreleri.Length - 1 Dim paramname As [String] = odemeparametreleri(i) Dim paramval As [String] = Request.Form.[Get](paramname) Response.Write("" + paramname + "" + paramval + "") Next Dim mdstatus As String Dim res As String = Request.Form.Get("ErrorMessage") Session("SonucAciklamasi") = res Session("SonucKodu") = "" If Request.Form.Get("ProcReturnCode") <> "" Then Session("SonucKodu") = Request.Form.Get("ProcReturnCode") mdstatus = Request.Form.Get("ProcReturnCode") If mdstatus = "00" Then Dim sb As New StringBuilder() sb.AppendLine("") Response.Write(sb.ToString()) Else Response.Write("
3D Doğrulama İşlemi Başarısız

") Response.Write("Hata Kodu:" & Request.Form.Get("ProcReturnCode") & "
") Response.Write("Hata Mesajı:" & Request.Form.Get("ErrorMessage") & "
") Dim _portalSettings As PortalSettings _portalSettings = CType(HttpContext.Current.Items("PortalSettings"), PortalSettings) Dim tmpOrder As ASPNetPortal.TempOrder Dim UserId As String = "" Dim UserName As String = "" Dim mail As New webmail If Session("TempOrder") Is Nothing Then tmpOrder = New ASPNetPortal.TempOrder Else tmpOrder = Session("TempOrder") End If Try If HttpContext.Current.User.Identity.IsAuthenticated() Then UserId = Context.User.Identity.Name.Split("|")(0) If IsNumeric(UserId) Then Dim ua As New ASPNetPortal.UsersDB Dim dr As SqlDataReader dr = ua.GetUserIndirim(UserId) dr.Read() UserName = ChkNullString(dr(3)) dr.Close() End If End If ' log error Dim py As New PaymentsDB py.AddPayment(tmpOrder, UserId, "
Banka 3D mesajı :" & res) If Not ConfigurationManager.AppSettings("SendFailedPayments") = "False" Then mail.SendMail(_portalSettings.Email, ToSendMail, "Ödeme Onayı Alınamadı(3D)", "Kabul Edilecek işlem sonuçları(3D): " & mdstatus & "
İşlem Sonucu : " & Request.Form.Get("ProcReturnCode") & "
Banka:" & tmpOrder.BankInfo.BankName & "
Taksit:" & tmpOrder.BankInfo.Taksit & "UserId:" & UserId & "
UserName:" & UserName & "Toplam:" & tmpOrder.Pricess.KargoDahilCreditCardToplamTL & " TL
Teslimat Adı: " & tmpOrder.ShippingInfo.RecipientName & "
Teslimat Tel: " & tmpOrder.ShippingInfo.PhoneNo & "
Teslmat Gsm: " & tmpOrder.ShippingInfo.MobilePhone & "
Fatura Adı:" & tmpOrder.BillingInfo.CompanyName & "
Banka 3D mesajı :" & res) End If Catch ' log error Dim py As New PaymentsDB py.AddPayment(tmpOrder, UserId, "
Banka 3D mesajı :" & res) If Not ConfigurationManager.AppSettings("SendFailedPayments") = "False" Then mail.SendMail(_portalSettings.Email, ToSendMail, "Ödeme Onayı Alınamadı(3D)", "Kabul Edilecek işlem sonuçları(3D): " & mdstatus & "
İşlem Sonucu : " & Request.Form.Get("ProcReturnCode") & "
Banka 3D mesajı :" & res) End If End Try Dim sb As New StringBuilder() sb.AppendLine("") Response.Write(sb.ToString()) End If Else Dim _portalSettings As PortalSettings _portalSettings = CType(HttpContext.Current.Items("PortalSettings"), PortalSettings) Dim tmpOrder As ASPNetPortal.TempOrder Dim UserId As String = "" Dim UserName As String = "" Dim mail As New webmail If Session("TempOrder") Is Nothing Then tmpOrder = New ASPNetPortal.TempOrder Else tmpOrder = Session("TempOrder") End If Try If HttpContext.Current.User.Identity.IsAuthenticated() Then UserId = Context.User.Identity.Name.Split("|")(0) If IsNumeric(UserId) Then Dim ua As New ASPNetPortal.UsersDB Dim dr As SqlDataReader dr = ua.GetUserIndirim(UserId) dr.Read() UserName = ChkNullString(dr(3)) dr.Close() End If End If ' log error Dim py As New PaymentsDB py.AddPayment(tmpOrder, UserId, "
Banka 3D mesajı :" & res) If Not ConfigurationManager.AppSettings("SendFailedPayments") = "False" Then mail.SendMail(_portalSettings.Email, ToSendMail, "Ödeme Alınamadı(Bağlantı hatası 3D)", "Banka:" & tmpOrder.BankInfo.BankName & "
UserId:" & UserId & "
UserName:" & UserName & "Toplam:" & tmpOrder.Pricess.KargoDahilCreditCardToplamTL & " TL
Hata:Sistem Hatası
Hata Açıklaması:Banka ile bağlanı kurulamıyor(3D), Lütfen banka bilgilerini kontrol ediniz
Teslimat Adı: " & tmpOrder.ShippingInfo.RecipientName & "
Teslimat Tel: " & tmpOrder.ShippingInfo.PhoneNo & "
Teslmat Gsm: " & tmpOrder.ShippingInfo.MobilePhone & "
Fatura Adı:" & tmpOrder.BillingInfo.CompanyName & "
Banka 3D mesajı :" & res) End If Catch ' log error Dim py As New PaymentsDB py.AddPayment(tmpOrder, UserId, "
Banka 3D mesajı :" & res) If Not ConfigurationManager.AppSettings("SendFailedPayments") = "False" Then mail.SendMail(_portalSettings.Email, ToSendMail, "Ödeme Alınamadı(Bağlantı hatası 3D)", " Banka ile bağlanı kurulamıyor(3D), Lütfen banka bilgilerini kontrol ediniz " & "
Banka 3D mesajı :" & res) End If End Try Response.Write("
Sistem Hatası

") Response.Write("Banka ile bağlantı kurulamıyor") Dim sb As New StringBuilder() sb.AppendLine("") Response.Write(sb.ToString()) End If %>