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