2-Ödeme İsteği

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ı
Email 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": " "
  }