%@ Page Language="vb" AutoEventWireup="false" Async="true" SmartNavigation="false" CodeBehind="3dformapiIyzicoC2C.aspx.vb" Inherits="._3dformapiIyzicoc2c" %>
<%@ Import Namespace="IyzipayClient" %>
<%@ Import Namespace="Newtonsoft.Json" %>
<%@ Import Namespace="Newtonsoft.Json.Linq" %>
<%@ Import Namespace="Newtonsoft.Json.Serialization" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="IyzipayClient.Ecom.Payment.Dtos" %>
<%@ Import Namespace="IyzipayClient.Ecom.Payment.Requests" %>
<%@ Import Namespace="IyzipayClient.Services.Impl" %>
<%@ Import Namespace="IyzipayClient.Services" %>
<%@ Import Namespace="IyzipayClient.Configuration" %>
<%@ Import Namespace="System.Xml" %>
<%
Dim configuration As New ClientConfiguration(Session("GetwayId"), Session("GetwayUserName"), "https://api.iyzipay.com/")
Dim client As EcomPaymentServiceClient = New EcomPaymentServiceClientImpl(configuration)
Dim okUrl As String = BaseUrl & "/store/banks3d/3dodemeapiIyzico.aspx" ' //İşlem başarılıysa dönülecek işyeri sayfası (3D işleminin sonucu ödeme işleminin değil)
Dim failUrl As String = BaseUrl & "/store/banks3d/3dodemeapiIyzico.aspx" ' //İşlem başarısızsa dönülecek işyeri sayfası (3D işleminin sonucu ödeme işleminin değil)
'ssl
If ConfigurationManager.AppSettings("UseSsl") = "True" Then
okUrl = BaseUrl.Replace("http://", "https://") & "/store/banks3d/3dodemeapiIyzico.aspx" ' //İşlem başarılıysa dönülecek işyeri sayfası (3D işleminin sonucu ödeme işleminin değil)
failUrl = BaseUrl.Replace("http://", "https://") & "/store/banks3d/3dodemeapiIyzico.aspx" ' //İşlem başarısızsa dönülecek işyeri sayfası (3D işleminin sonucu ödeme işleminin değil)
End If
Dim tmpOrder As ASPNetPortal.TempOrder
Dim UserId As String = ""
Dim UserName As String = ""
If Session("TempOrder") Is Nothing Then
tmpOrder = New ASPNetPortal.TempOrder
Else
tmpOrder = Session("TempOrder")
End If
Dim strCustomeripaddress As String = "127.0.0.1"
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
strCustomeripaddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If strCustomeripaddress = "" Then
strCustomeripaddress = Request.ServerVariables("REMOTE_ADDR")
End If
Catch
End Try
Dim total As Decimal = formatCurDoviz(tmpOrder.Pricess.BankaToplamTutar)
Dim subtotal As Decimal = formatCurDoviz(tmpOrder.Pricess.KdvDahilToplam)
Dim iskrate As Decimal = 0
If total > subtotal Then
'iskrate = publicItems.CalcYuzdeIndirim(total, subtotal)
iskrate = (total - subtotal) * 100 / subtotal
End If
Dim cart As New ShoppingCartDB
Dim cartlist As SqlDataReader = cart.GetItemsC2C(UserId, 0, 0, 0)
Dim basketitemlist As New List(Of EcomPaymentBasketItemDto)()
While cartlist.Read
Dim basketitem As New EcomPaymentBasketItemDto
basketitem.Name = cartlist("ProductName")
basketitem.SubMerchantKey = cartlist("SubMerchantCode")
basketitem.Category1 = "category1"
basketitem.Id = cartlist("ProductId")
basketitem.ItemType = "PHYSICAL"
basketitem.Price = formatCurDoviz(CalcKdvDahil((CalcKdvDahil((cartlist("SatisFiyati") + cartlist("ValueAdd")) * cartlist("Rate"), cartlist("KdvRate")) * cartlist("Qty")), iskrate)).ToString.Replace(",", ".")
basketitem.SubMerchantPrice = formatCurDoviz(CalcKdvHaric((CalcKdvDahil((cartlist("SatisFiyati") + cartlist("ValueAdd")) * cartlist("Rate"), cartlist("KdvRate")) * cartlist("Qty")), cartlist("KomisyonRate"))).ToString.Replace(",", ".")
basketitemlist.Add(basketitem)
End While
Dim request2 As New EcomPaymentThreeDSInitializeRequest() With { _
.ConversationId = Session("NextOrderId"), _
.Locale = "tr", _
.BasketId = Session("NextOrderId"), _
.Price = formatCurDoviz(total).ToString.Replace(",", "."), _
.PaidPrice = formatCurDoviz(total).ToString.Replace(",", "."), _
.Installment = IIf(Session("Taksit") > 0, Session("Taksit"), 1), _
.PaymentGroup = "PRODUCT", _
.PaymentChannel = "WEB", _
.CallbackUrl = okUrl, _
.Buyer = New EcomPaymentBuyerDto() With { _
.Id = UserId, _
.IdentityNumber = "00000000000", _
.Name = UserName, _
.Surname = UserName, _
.Email = IIf(tmpOrder.ShippingInfo.Mail = "", "email@email.com", tmpOrder.ShippingInfo.Mail), _
.GsmNumber = tmpOrder.ShippingInfo.MobilePhone, _
.RegistrationAddress = tmpOrder.ShippingInfo.Address, _
.City = tmpOrder.ShippingInfo.CityName, _
.Country = tmpOrder.ShippingInfo.CountryName, _
.Ip = strCustomeripaddress, _
.ZipCode = "zipCode" _
}, _
.PaymentCard = New EcomPaymentCardDto() With { _
.CardAlias = "card alias", _
.CardHolderName = Session("CardHolderName"), _
.CardNumber = Session("CardNumber"), _
.ExpireMonth = Session("ExpMonth"), _
.ExpireYear = "20" & Session("ExpYear"), _
.Cvc = Session("CvcNumber") _
}, _
.BasketItems = basketitemlist, _
.ShippingAddress = New EcomPaymentShippingAddressDto() With { _
.ContactName = tmpOrder.BillingInfo.CompanyName, _
.Address = tmpOrder.ShippingInfo.Address, _
.ZipCode = "zipCode", _
.City = tmpOrder.ShippingInfo.CityName, _
.Country = tmpOrder.ShippingInfo.CountryName _
}, _
.BillingAddress = New EcomPaymentBillingAddressDto() With { _
.ContactName = tmpOrder.BillingInfo.CompanyName, _
.Address = tmpOrder.BillingInfo.Address, _
.ZipCode = "zipCode", _
.City = tmpOrder.BillingInfo.CityName, _
.Country = tmpOrder.BillingInfo.CountryName _
} _
}
Console.ForegroundColor = ConsoleColor.Yellow
Console.WriteLine(JsonConvert.SerializeObject(request2, New JsonSerializerSettings() With { _
.Formatting = Newtonsoft.Json.Formatting.Indented _
}))
Console.ForegroundColor = ConsoleColor.Green
Dim response2 = client.InitializeThreeDS(request2)
Dim decodedHtmlContent = ThreeDSInitializeContentDecoder.DecodeContent(response2.ThreeDSHtmlContent)
Console.WriteLine(JsonConvert.SerializeObject(response2, New JsonSerializerSettings() With { _
.Formatting = Newtonsoft.Json.Formatting.Indented _
}))
If decodedHtmlContent Is Nothing Then
Dim errorcode As String = response2.ErrorCode
Dim errormessage As String = response2.ErrorMessage
Session("SonucKodu") = errorcode
Session("SonucAciklamasi") = errormessage
Response.Write("
3D Doğrulama İşlemi Başarısız
")
Response.Write("Hata Kodu:" & errorcode & "
")
Response.Write("Hata Mesajı:" & errormessage & "
")
Dim _portalSettings As PortalSettings
_portalSettings = CType(HttpContext.Current.Items("PortalSettings"), PortalSettings)
Dim ToSendMail As String = _portalSettings.Email
If ConfigurationManager.AppSettings("SmtpMailOrders") <> "" Then
ToSendMail = ConfigurationManager.AppSettings("SmtpMailOrders")
End If
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)", "İşlem Sonucu : " & errorcode & "
Banka:WireCard
Taksit:peşin UserId:" & UserId & "
UserName:" & UserName & "Toplam:" & tmpOrder.Pricess.KargoDahilWireCardToplam & " 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)", "İşlem Sonucu : " & errorcode & "
Banka 3D mesajı :" & errormessage)
End If
End Try
Dim sb As New StringBuilder()
sb.AppendLine("")
Response.Write(sb.ToString())
Else
Response.Write(decodedHtmlContent)
End If
%>