%@ 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
%>