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