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