<%@ Page Language="vb" AutoEventWireup="false" Async="true" SmartNavigation="false" CodeBehind="3dformapiIyzicoPayment.aspx.vb" Inherits="._3dformapiIyzicoPayment" %> <%@ 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.TempPayment 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("TempPayment") Is Nothing Then tmpOrder = New ASPNetPortal.TempPayment Else tmpOrder = Session("TempPayment") End If Dim strCustomeripaddress As String = "127.0.0.1" UserId = GetShoppingCartId() Try 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 = IIf(ChkNullString(dr("CompanyName"), UserName) = "", UserName, ChkNullString(dr("CompanyName"), UserName)) tmpOrder.BillingInfo.PhoneNo = ChkNullString(dr("Phone1")) tmpOrder.BillingInfo.CountryName = IIf(ChkNullString(dr("CountryID")) = "", "Türkiye", ChkNullString(dr("CountryID"))) tmpOrder.ShippingInfo.Address = ChkNullString(dr("Addres")) tmpOrder.ShippingInfo.CityName = ChkNullString(dr("CityId")) tmpOrder.ShippingInfo.CountryName = IIf(ChkNullString(dr("CountryID")) = "", "Türkiye", ChkNullString(dr("CountryID"))) tmpOrder.ShippingInfo.PhoneNo = ChkNullString(dr("Phone1")) 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.ToplamBankaTutar) Dim subtotal As Decimal = formatCurDoviz(tmpOrder.ToplamBankaTutar) Dim basketitemlist As New List(Of EcomPaymentBasketItemDto)() Dim basketitem As New EcomPaymentBasketItemDto() basketitem.Name = "ProductName" basketitem.Category1 = "category1" basketitem.Id = 1 basketitem.ItemType = "PHYSICAL" basketitem.Price = total.ToString.Replace(",", ".") basketitemlist.Add(basketitem) 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 Dim tmpO As ASPNetPortal.TempOrder If Session("TempOrder") Is Nothing Then tmpO = New ASPNetPortal.TempOrder Else tmpO = Session("TempOrder") End If Try ' log error Dim py As New PaymentsDB Dim i As Integer = py.AddPayment(tmpO, GetShoppingCartId(), 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.ToplamBankaTutar & " 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 Dim i As Integer = py.AddPayment(tmpO, GetShoppingCartId(), 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 %>