%@ Page Language="vb" AutoEventWireup="false" Inherits="._3dodeme_ipara_api" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<%@ Import Namespace="System.Net" %>
3D Ödeme Sayfası
Kapat
Kapat
<%
Dim Result As String = Request.Form("result")
Dim OrderId As String = Request.Form("orderId")
Dim Amount As String = Request.Form("amount")
Dim Mode As String = Request.Form("mode")
'Dim Mode As String = "T"
Dim PublicKey As String = ""
Dim Errorcode As String = ""
Dim ErrorMessage As String = ""
Dim TransactionDate As String = ""
Dim Hash As String = ""
Dim ThreeDSecureCode As String = ""
If Request.Form("publicKey") IsNot Nothing Then
PublicKey = Request.Form("publicKey")
End If
If Request.Form("errorCode") IsNot Nothing Then
Errorcode = Request.Form("errorCode")
End If
If Request.Form("errorMessage") IsNot Nothing Then
ErrorMessage = Request.Form("errorMessage")
End If
If Request.Form("transactionDate") IsNot Nothing Then
TransactionDate = Request.Form("transactionDate")
End If
If Request.Form("hash") IsNot Nothing Then
Hash = Request.Form("hash")
End If
If Request.Form("threeDSecureCode") IsNot Nothing Then
ThreeDSecureCode = Request.Form("threeDSecureCode")
End If
Dim tarih As String = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
Dim privatekey As String = Session("GetwayUserName")
Dim oid As String = ChkNullString(Session("NextOrderId"), GetRandomOrderCode())
Dim tmpOrder As New TempOrder
Dim UserId As String = ""
Dim UserName As String = ""
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
If Session("TempOrder") Is Nothing Then 'Or MyList.Items.Count < 1 Then
Dim usr As New UsersDB
Dim dr As SqlDataReader = usr.GetSingleUser(CInt(UserId))
dr.Read()
tmpOrder.ShippingInfo.Mail = ChkNullString(dr("Email"))
tmpOrder.BillingInfo.MobilePhone = ChkNullString(dr("MobilePhone"))
tmpOrder.BillingInfo.TaxNo = ChkNullString(dr("CompanyVdNo"))
tmpOrder.BillingInfo.Address = ChkNullString(dr("Addres"))
tmpOrder.BillingInfo.CityName = ChkNullString(dr("CityId"))
tmpOrder.BillingInfo.TaxOffice = ChkNullString(dr("CompanyVd"))
tmpOrder.BillingInfo.CompanyName = ChkNullString(dr("CompanyName"))
tmpOrder.BillingInfo.PhoneNo = ChkNullString(dr("Phone1"))
tmpOrder.ShippingInfo.Address = ChkNullString(dr("Addres"))
tmpOrder.ShippingInfo.CityName = ChkNullString(dr("CityId"))
tmpOrder.ShippingInfo.CountryName = ChkNullString(dr("CountryID"))
tmpOrder.ShippingInfo.PhoneNo = ChkNullString(dr("Phone1"))
Else
tmpOrder = Session("TempOrder")
End If
Dim Name, SurName As String
Dim Email As String = tmpOrder.ShippingInfo.Mail
If Email = "" Then
Email = "admin@siteniz.com"
End If
Email = turkce(Email)
Name = turkce(tmpOrder.BillingInfo.CompanyName)
SurName = turkce(tmpOrder.BillingInfo.CompanyName)
Dim ToSendMail As String = _portalsettings.Email
If ConfigurationManager.AppSettings("SmtpMailOrders") <> "" Then
ToSendMail = ConfigurationManager.AppSettings("SmtpMailOrders")
End If
Dim token As String = ""
If ErrorMessage = "" Then
If Not Hash = "" Then
Dim hashText As String = privatekey + oid + Amount + Mode + ThreeDSecureCode + tarih
Dim sha As SHA1 = New SHA1CryptoServiceProvider()
Dim hashbytes As Byte() = System.Text.Encoding.UTF8.GetBytes(hashText)
Dim inputbytes As Byte() = sha.ComputeHash(hashbytes)
token = PublicKey + ":" + Convert.ToBase64String(inputbytes)
End If
Dim xmlData As String = "" &
"true" &
"" & oid & "" &
"Echo Bilgisi" &
"" & Amount & "" &
"" & Mode & "" &
"1" &
"" & ThreeDSecureCode & "" &
"" &
"" &
"" & oid & "" &
"" & oid.Substring(0, 5) & "" &
"1" &
"" &
"" &
"" &
"" &
"" &
"" & tmpOrder.BillingInfo.MobilePhone & "" &
"" & tmpOrder.BillingInfo.TaxNo & "" &
"" &
"" & Name & "" &
"" & SurName & "" &
"" & tmpOrder.BillingInfo.Address & "" &
"" &
"" & tmpOrder.BillingInfo.CityName & "" &
"" &
"tr" &
"" & tmpOrder.BillingInfo.TaxNo & "" &
"" & tmpOrder.BillingInfo.TaxOffice & "" &
"" & tmpOrder.BillingInfo.CompanyName & "" &
"" & tmpOrder.BillingInfo.PhoneNo & "" &
"" &
"" &
"" & Name & "" &
"" & SurName & "" &
"" & tmpOrder.ShippingInfo.Address & "" &
"" &
"" & tmpOrder.ShippingInfo.CityName & "" &
"" & tmpOrder.ShippingInfo.CountryName & "" &
"" & tmpOrder.ShippingInfo.PhoneNo & "" &
"" &
"" &
""
Dim buffer As Byte() = System.Text.Encoding.UTF8.GetBytes(xmlData)
Dim xmlResponse As String = ""
Dim httpWebRequest As HttpWebRequest = DirectCast(WebRequest.Create("https://api.ipara.com/rest/payment/auth"), HttpWebRequest)
httpWebRequest.Headers.Add("transactionDate", tarih)
httpWebRequest.Headers.Add("version", "1.0")
httpWebRequest.Headers.Add("token", token)
httpWebRequest.Method = WebRequestMethods.Http.Post
httpWebRequest.Accept = "application/xml"
httpWebRequest.ContentType = "application/xml; charset=utf-8"
httpWebRequest.ContentLength = buffer.Length
Dim rs As System.IO.Stream = httpWebRequest.GetRequestStream()
rs.Write(buffer, 0, buffer.Length)
rs.Close()
Dim responseweb As WebResponse = httpWebRequest.GetResponse()
Using sr As New StreamReader(responseweb.GetResponseStream())
xmlResponse = sr.ReadToEnd()
End Using
Dim xml As New XmlDocument()
xml.LoadXml(xmlResponse)
Dim nodeerrorCode As XmlNodeList
Dim nodeerrorMessage As XmlNodeList
Dim noderesult As XmlNodeList
noderesult = xml.GetElementsByTagName("result")
If noderesult(0).InnerText <> "1" Then
nodeerrorCode = xml.GetElementsByTagName("errorCode")
nodeerrorMessage = xml.GetElementsByTagName("errorMessage")
Session("SonucKodu") = nodeerrorCode(0).InnerText
Session("SonucAciklamasi") = nodeerrorMessage(0).InnerText
Session("RandomOrderId") = ""
Else
Session("SonucKodu") = "1"
Session("SonucAciklamasi") = "Success"
End If
Session("Sonuc") = noderesult(0).InnerText
If noderesult(0).InnerText <> "1" Then
Dim OkStatus As String = "1234"
If Not ConfigurationManager.AppSettings("Pay3dOkStatus") Is Nothing Then
OkStatus = ConfigurationManager.AppSettings("Pay3dOkStatus")
End If
Dim _portalSettings As PortalSettings
_portalSettings = CType(HttpContext.Current.Items("PortalSettings"), PortalSettings)
Dim mail As New webmail
If Session("TempOrder") Is Nothing Then
tmpOrder = New ASPNetPortal.TempOrder
Else
tmpOrder = Session("TempOrder")
End If
Try
' log error
Dim py As New PaymentsDB
py.AddPayment(tmpOrder, UserId, "
Banka 3D mesajı :" & nodeerrorMessage(0).InnerText)
If Not ConfigurationManager.AppSettings("SendFailedPayments") = "False" Then
mail.SendMail(_portalSettings.Email, ToSendMail, "Ödeme Onayı Alınamadı(3D)", "Kabul Edilecek işlem sonuçları(3D): " & OkStatus & "
İşlem Sonucu : " & nodeerrorCode(0).InnerText & "
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ı :" & nodeerrorMessage(0).InnerText)
End If
Catch
' log error
Dim py As New PaymentsDB
py.AddPayment(tmpOrder, UserId, "
Banka 3D mesajı :" & nodeerrorMessage(0).InnerText)
If Not ConfigurationManager.AppSettings("SendFailedPayments") = "False" Then
mail.SendMail(_portalSettings.Email, ToSendMail, "Ödeme Onayı Alınamadı(3D)", "Kabul Edilecek işlem sonuçları(3D): " & OkStatus & "
İşlem Sonucu : " & nodeerrorCode(0).InnerText & "
Banka 3D mesajı :" & nodeerrorMessage(0).InnerText.ToString())
End If
End Try
Dim sb As New StringBuilder()
sb.AppendLine("")
Response.Write(sb.ToString())
Else
Dim sb As New StringBuilder()
sb.AppendLine("")
Response.Write(sb.ToString())
End If
Else
Session("SonucKodu") = Errorcode
Session("SonucAciklamasi") = ErrorMessage
Session("RandomOrderId") = ""
Session("Sonuc") = ErrorMessage
Dim OkStatus As String = "1234"
If Not ConfigurationManager.AppSettings("Pay3dOkStatus") Is Nothing Then
OkStatus = ConfigurationManager.AppSettings("Pay3dOkStatus")
End If
Dim _portalSettings As PortalSettings
_portalSettings = CType(HttpContext.Current.Items("PortalSettings"), PortalSettings)
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ı :" & ErrorMessage)
If Not ConfigurationManager.AppSettings("SendFailedPayments") = "False" Then
mail.SendMail(_portalSettings.Email, ToSendMail, "Ödeme Onayı Alınamadı(3D)", "Kabul Edilecek işlem sonuçları(3D): " & OkStatus & "
İşlem Sonucu : " & Errorcode & "
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ı :" & ErrorMessage)
End If
Catch
' log error
Dim py As New PaymentsDB
py.AddPayment(tmpOrder, UserId, "
Banka 3D mesajı :" & ErrorMessage)
If Not ConfigurationManager.AppSettings("SendFailedPayments") = "False" Then
mail.SendMail(_portalSettings.Email, ToSendMail, "Ödeme Onayı Alınamadı(3D)", "Kabul Edilecek işlem sonuçları(3D): " & OkStatus & "
İşlem Sonucu : " & Errorcode & "
Banka 3D mesajı :" & ErrorMessage)
End If
End Try
Dim sb As New StringBuilder()
sb.AppendLine("")
Response.Write(sb.ToString())
End If
%>