<%@ Page Language="vb" AutoEventWireup="false" Async="true" SmartNavigation="false" CodeBehind="3dformapiIyzico.aspx.vb" Inherits="._3dformapiIyzico" %> <%@ 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" %> <% ' ''options 'Dim options As New Iyzipay.Options 'options.ApiKey = "veRmk5HIw7EwR33kFclhmyIalM4PEXx1" 'options.SecretKey = "LPkYSlo0rJkNjf8a0jse6CM4R40HUjm1thCqStvJghdDmXGcQlZIF4XelwC0kNS5" 'options.BaseUrl = "https://stg.iyzipay.com" 'Dim request As New CreateCheckoutFormInitializeRequest() 'request.Locale = Locale.TR.GetName() 'request.ConversationId = "123456789" 'request.Price = "1" 'request.PaidPrice = "1.2" 'request.BasketId = "B67832" 'request.PaymentGroup = PaymentGroup.PRODUCT.ToString() 'request.Buyer = NewBuyer() 'request.ShippingAddress = newShippingAddress() 'request.BillingAddress = newBillingAddress() 'request.BasketItems = newBasketItems() 'request.CallbackUrl = "http://localhost:50012/sonuc.aspx" 'Dim checkoutFormInitialize__1 As CheckoutFormInitialize = CheckoutFormInitialize.Create(request, options) 'Response.Write(checkoutFormInitialize__1.ErrorMessage) ''Response.Write(checkoutFormInitialize.Status); 'Response.Write(checkoutFormInitialize__1.Token) ''Response.Write(checkoutFormInitialize.ConversationId); 'Response.Write(checkoutFormInitialize__1.CheckoutFormContent) 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 = "" Dim UserIndirim As Decimal Dim StokIskActive As Boolean Dim StokIsk As Integer If Session("TempOrder") Is Nothing Then tmpOrder = New ASPNetPortal.TempOrder Else tmpOrder = Session("TempOrder") End If Dim strCustomeripaddress As String = "127.0.0.1" UserId = GetShoppingCartId() Try If IsNumeric(UserId) Then If UserId > 0 Then Dim ua As New UsersDB Dim dr As SqlDataReader dr = ua.GetUserIndirim(UserId) dr.Read() UserIndirim = dr(0) StokIskActive = dr(1) StokIsk = dr(2) UserName = ChkNullString(dr(3)) dr.Close() Else UserName = "ziyaretci" UserIndirim = 0 StokIskActive = 0 StokIsk = 0 End If Else UserName = "ziyaretci" UserIndirim = 0 StokIskActive = 0 StokIsk = 0 End If strCustomeripaddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR") If strCustomeripaddress = "" Then strCustomeripaddress = Request.ServerVariables("REMOTE_ADDR") End If Catch End Try Dim ind As Decimal = 0 If tmpOrder.Coupon.CanUse Then ind = tmpOrder.Coupon.Discount End If Dim total As Decimal = formatCurDoviz(tmpOrder.Pricess.BankaToplamTutar) Dim subtotal As Decimal = formatCurDoviz(tmpOrder.Pricess.KdvDahilToplam + ind) Dim iskrate As Decimal = 0 If total - tmpOrder.Pricess.ToplamCargo < subtotal Then 'iskrate = publicItems.CalcYuzdeIndirim(total, subtotal) iskrate = (total - subtotal - tmpOrder.Pricess.ToplamCargo) * 100 / subtotal End If Dim cart As New ShoppingCartDB Dim dt_cart As DataTable = cart.GetItemsForCart(UserId, tmpOrder.CartType, StokIsk, StokIskActive, tmpOrder.Fcampain.FCampainId) Dim basketitemlist As New List(Of EcomPaymentBasketItemDto)() For Each cartlist As DataRow In dt_cart.Rows Dim basketitem As New EcomPaymentBasketItemDto() basketitem.Name = cartlist("ProductName") basketitem.Category1 = "category1" basketitem.Id = cartlist("ProductId") basketitem.ItemType = "PHYSICAL" basketitem.Price = formatCurDoviz(CalcKdvDahil((CalcKdvDahil((cartlist("SatisFiyati") + cartlist("ValueAddNoQty") + cartlist("ValueAdd"))* cartlist("Rate"), cartlist("KdvRate")) * cartlist("Qty")), iskrate)).ToString.Replace(",", ".") basketitemlist.Add(basketitem) Next If tmpOrder.Pricess.ToplamCargo > 0 Then Dim basketitem As New EcomPaymentBasketItemDto() basketitem.Name = "Kargo" basketitem.Category1 = "category1" basketitem.Id = 1 basketitem.ItemType = "PHYSICAL" basketitem.Price = formatCurDoviz(tmpOrder.Pricess.ToplamCargo).ToString.Replace(",", ".") basketitemlist.Add(basketitem) End If If total - tmpOrder.Pricess.ToplamCargo > subtotal Then Dim basketitem As New EcomPaymentBasketItemDto() basketitem.Name = "Bindirim" basketitem.Category1 = "category1" basketitem.Id = 2 basketitem.ItemType = "PHYSICAL" basketitem.Price = formatCurDoviz(total - tmpOrder.Pricess.ToplamCargo - subtotal).ToString.Replace(",", ".") basketitemlist.Add(basketitem) End If Dim request2 As New EcomPaymentThreeDSInitializeRequest() With { _ .ConversationId = Session("NextOrderId"), _ .Locale = "tr", _ .BasketId = UserId.ToString(), _ .Price = total.ToString.Replace(",", "."), _ .PaidPrice = total.ToString.Replace(",", "."), _ .Installment = IIf(Session("Taksit") > 0, Session("Taksit"), 1), _ .PaymentGroup = "PRODUCT", _ .PaymentChannel = "WEB", _ .CallbackUrl = okUrl.ToString(), _ .Buyer = New EcomPaymentBuyerDto() With { _ .Id = UserId.ToString(), _ .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.ToString(), _ .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 %>