3D ödeme işlemini başlatmak için kart bilgisi, tutar bilgisi, taksit sayısı ile birlikte varsa müşteri bilgisi ve satışa konu olan ürün bilgileri modele göre uygun şekilde gönderilir. Alınan ödemenin müşteri banka hesaplarına aktarılması isteniyorsa Payments listesi içerisinde hangi hesaba ne kadar gönderileceği belirtilebilir.
ReflectCost parametresi boş olarak gönderilirse panel üzerindeki komisyon yansıtma tanımlarına göre hesaplama yapılır. False olarak gönderilirse komisyon maliyetini yansıtmaz. True olarak gönderilirse komisyon maliyetini işlem tutarına ekleyerek çekim yapar.
Gönderilen değerlerde bir hata varsa Result nesnesi IsDone = false olarak döner ve Message alanında hata sebebi belirtilir. Bu durumda işleme devam edilmez
Herhangi bir hata yoksa ResponseAsHtml alanı içerisinde 3d doğrulama için html kodu gönderilir. Bu kod olduğu gibi uygulama penceresi içerisinde gösterilir. İkinci bir yöntem olarak ise, dönüş nesnesi içinde yer alan PaymentLink parametresindeki adrese yönlendirme yapılır. Daha sonra otomatik olarak banka sayfasına yönlendirilir.
İşlem sonucunda bankadan alınan yanıt sunucu tarafında kontrol edildikten sonra yapılandırma ayarlarınızda veya modelde belirtilen dönüş adresine istek yapılır. Yapılan bu çağrı üzerinde sonuç kontrol adımı çağrılarak işlem kontrol edilir ve başarılı veya başarısız olarak süreç tamamlanır.
Input: PayRequest
Output: Result>PayControlModel< modelidir.
Request URL
POST API_URL/payRequest3d
İstek Parametreleri
Parametre | Zorunlu | Varsayılan | Tip | Uzunluk | Açıklama |
---|---|---|---|---|---|
ClientIp | Evet | - | String | 16 | Müşteri IP Adresi |
OrderId | Hayır | - | String | 64 | Sipariş No |
Installment | Evet | 0 | Int | - | Taksit Sayısı |
Is3D | Evet | True | Bool | - | 3D veya Nonsecure |
IsAutoCommit | Evet | True | Bool | - | 3D İşlemin Otomatik Onayı |
ReflectCost | Hayır | Null | Bool? | - | Maliyeti Müşteriye Yansıt |
Amount | Evet | 0 | Decimal | - | İşlem Tutarı |
CardInfo | Evet | False | Nesne | - | Kart Bilgisi |
CardOwner | Evet | False | String | - | Kart Sahibi |
CardNo | Evet | False | String | 16 | Kart Numarası |
Month | Evet | False | String | 2 | Kart Son Kullanma Ayı |
Year | Evet | False | String | 2 veya 4 | Kart Son Kullanma Yılı |
Cvv | Evet | False | String | - | Kart Güvenlik Numarası |
CustomerInfo | Hayır | False | Nesne | - | Müşteri Bilgisi |
Name | Hayır | False | String | - | Müşteri Adı |
Phone | Hayır | False | String | Müşteri Telefon Numarası | |
Hayır | False | String | - | Müşteri E-Posta Bilgisi | |
Address | Hayır | False | String | - | Müşteri Adres Bilgisi |
Description | Hayır | False | String | - | İşlem Açıklaması |
Products | Hayır | - | Liste | - | Ürünler Listesi |
Product | Hayır | - | Nesne | - | Ürün Nesnesi |
Name | Hayır | False | String | - | Ürün Adı |
Count | Hayır | False | Int | - | Adedi |
UnitPrice | Hayır | False | Decimal | - | Ürün Birim Fiyatı |
Payments | Hayır | - | Liste | - | Ödeme Listesi |
Payment | Hayır | - | Nesne | - | Ödeme Nesnesi |
AccountOwner | Hayır | - | String | - | Hesap Sahibi |
IBAN | Hayır | - | String | - | Iban |
Description | Hayır | - | String | - | İşlem Açıklaması |
Amount | Hayır | 0 | Decimal | - | Ödeme Tutarı |
Yanıt Parametreleri
Parametre | Tip | Uzunluk | Açıklama |
---|---|---|---|
Uid | Guid | - | İşleme ait unique değer |
PaymentLink | String | - | Client sayfasının yönlendireceği ödeme adresi |
ResponseAsHtml | String | - | 3D Doğrulama için ekrana bastıralacak HTML kodu |
Ödeme İsteğinin gönderilmesi
//Request
var model = new
{
ReturnUrl = "https://isyeriasdresi.com/payresult", oid=ISLEM_UID sistem tarafından eklenecektir.
OrderId = "ORDER_ID",
ClientIp = "123.123.123.123",
Installment = 1,
Amount = 10.00,
Is3D = true,
IsAutoCommit = true, //3DPAY için false gönderilmeli, bu durumda satışın tamamlanması için payComplete metodu çağrılmalıdır
ReflectCost = //null, true, false // (null genel yapılandırma için, true maliyeti yansıtmak için, false maliyeti yansıtmamak için)
CardInfo = new CardInfo
{
CardOwner = "KART SAHIBI",
CardNo = "1234123412341234",
Month = "01",
Year = "26",
Cvv = "123",
},
CustomerInfo = new CustomerInfo
{
Name = "MUSTERI ADI",
Phone = "5301230011",
Email = "test@test.com",
Address = "Adres Bilgisi",
Description = "İşlem Açıklaması"
},
Products = new List<Product>
{
new Product { Name = "URUN ADI", Count = 1, UnitPrice = 2.00 }
},
Payments = new List<Payment>
{
//1.Yöntem (tanımsız alt üyeişyerleri için)
newPayment { AccountOwner = "HESAP SAHIBI",
IBAN = "TR720006701000000078840200",
Description = "Islem Aciklamasi", Amount = 10.00 }
//2.Yöntem (sistemde tanımlı alt üye işyerleri için)
new Payment { SubMerchantId = 123, Description = "Islem Aciklamasi", Amount = 10.00 }
}
};
var client = new RestClient(url);
var request = new RestRequest("payRequest3d", Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("MerchantId", "MERCHANT ID NİZ");
request.AddHeader("UserId", "API USER ID NİZ");
request.AddHeader("ApiKey", "API KEY İNİZ");
request.AddJsonBody(model);
var result = client.Execute(request);
//Response
{
"Uid": "c5cc0d17-0df8-4cd8-803a-e95cb0095362",
"PaymentLink": "https://api.isyerimpos.com/mpi/payment?key=A75617529D1F7E53975B6220EEC135A16F6BEE3E3CBBCA2BE9FE25C5AAE460FD45AC569F49A2DBD9AA685C3B40FFFF81"
"ResponseAsHtml": " "
}