IQ Money ile Non-Secure / 3D


iqmoney admini, üye işyeri web sitesinden yapılan ödemenin Non-Secure mi yoksa 3D mi yapılması gerektiğine karar verecektir. Aşağıdaki istek, üye iş yeri web sitesinden iqmoney ödeme entegrasyon sistemine gönderilmelidir. CURL post isteği, aşağıdaki parametrelerle iqmoney'de alınmalıdır:

Method URL İçertik-Türü
POST /purchase/link application/x-www-form-urlencoded


Tür Parametreler Data Türü Şart
Key merchant_key string Zorunlu
Key invoice string Zorunlu
Key currency_code string Zorunlu
Key name string Zorunlu
Key surname string Zorunlu
Key bill_address1 string Opsiyonel
Key bill_address2 string Opsiyonel
Key bill_city string Opsiyonel
Key bill_postcode string Opsiyonel
Key bill_state string Opsiyonel
Key bill_country string Opsiyonel
Key bill_email string Opsiyonel
Key bill_phone string Opsiyonel
Key max_installment int Opsiyonel
Key sale_web_hook_key string Opsiyonel

Tekrarlayan işlem için istek

Tür Parametreler Data Türü Şart
Key order_type string Zorunlu
Key recurring_payment_number Integer Zorunlu
Key recurring_payment_cycle String Zorunlu
Key recurring_payment_interval Integer Zorunlu
Key recurring_web_hook_key Integer Zorunlu

merchant_key merchant_key Üye iş yerine atanan benzersiz bir anahtardır. Üye iş yeri web sitesinden gönderilmelidir.

invoice invoice öğe adı, miktar ve birim fiyat vb. listesiyle birleştirilmiş bir json formatlı dizedir.

Örneğin, üç ürün varsa,

Ürün 1 #

İsim: Ürün1, Adet: 2, Birim Fiyat: 200

Ürün 2 #

İsim: Ürün2, Adet: 1, Birim Fiyat: 100

Ürün 3 #

İsim: Ürün3, Adet: 2, Birim Fiyat: 400

invoice dizesi şu dizinin json dizgisini gösterecektir:

$invoice['invoice_id'] = “345345535”; // One unique id which will  be available in the return or cancel URL

$invoice['invoice_description'] = “ INVOICE  TEST DESCRIPTION” ;

$invoice['total'] =  1300

$invoice[discount] =  220 //The amount of coupon code or discount value

$invoice[coupon] =  “3XY8P”  //couponn code in  case applicable

$invoice['return_url'] =  “https://<your_success_url>”

$invoice['cancel_url'] =   “https://<your_fail_or_cancel_url>”

$invoice['items'] = array(

array(“name”=>”Item1”,”price”=>200,”qnantity”=>2,”description”=>”item1 description”),

array(“name”=>”Item2”,”price”=>100,”qnantity”=>1,”description”=>”item2 description”),

array(“name”=>”Item3”,”price”=>400,”qnantity”=>2,”description”=>”item3 description”),

);
//billing info

    $invoice['bill_address1'] = 'Address 1'; //should not more than 100 characters

    $invoice['bill_address2'] = 'Address 2'; //should not more than 100 characters
    $invoice['bill_city'] = 'Istanbul';

    $invoice['bill_postcode'] = '1111';

    $invoice['bill_state'] = 'Istanbul';

    $invoice['bill_country'] = 'TURKEY';

    $invoice['bill_phone'] = '008801777711111';

    $invoice['bill_email'] = 'demo@iqmoney.com.tr';

$invoice['sale_web_hook_key'] = 'sale_web_hook_key';// Bu anahtar iqmoney Üye işyeri Panel'de atanmalıdır

//Recurring info

    $invoice['order_type'] = 1; //yinelenen ödeme için order type 1

    $invoice[' recurring_payment_number'] = 2; //integer olmalı

    $invoice[' recurring_payment_cycle'] = 'M'; // D, M, Y

    $invoice[' recurring_payment_interval'] =  2;  //integer olmalı

$invoice[' recurring_web_hook_key'] =  ‘key_name’;  // Bu anahtar iqmoney üye işyeri panelinde atanmalıdır.

Tüm vergiler ve gönderim ücretleri invoice items dizisinde madde olarak eklenecektir.
Öğe adları, sırasıyla miktar 1 ile birlikte “Tax” ve “Shipping Charge” olmalıdır.

currency_code

currency_code para biriminin kodu. Örneğin USD, TRY, EUR vb.

name

name Müşterinin adı. Örneğin, ürünü alan kişinin adı “John Dao” ise, adı “John” olmalıdır

surname

surname Müşterinin soyadı. Örneğin, ürünü alan kişinin adı “John Dao” ise, soyadı “Dao” olmalıdır

sale_web_hook_key

sale_web_hook_key, isteğe bağlı bir anahtardır. Bir satın alma talebi tamamlandığında, iqmoney bir gönderi talebi gönderir. Böylece üye işyeri kendi sitesinde bir etkinlik gerçekleştirebilir. iqmoney, bu anahtarın veritabanında bulunması gerektiğini doğrular. Üye işyeri, bu anahtara karşı iqmoney Üye işyeri Panelinde bir Satış web kancası URL'si atamalıdır.

transaction_type

Ön provizyon/Pre-authorization işlemi yapabilmek için "PreAuth" değeri ile transaction_type parametresi eklenmelidir, ödemenin 20 gün içinde tamamlanması veya iptal edilmesi gerekir, aksi takdirde otomatik olarak iptal edilir.

order_type

Eğer order_type=1 ise, iqmoney ödemenin yinelenen ödeme olacağını doğrular. Sonrasında recurring_payment_number, recurring_payment_cycle, recurring_payment_interval anahtarlarının(key) boş olmaması gerekir.

recurring_payment_number

recurring_payment_number taksit sayısını tanımlar. Örneğin tutar 100 $ ve recurring_payment_number 5 ise, tutar her işlem için 100 $ / 5 = 20 $ olarak düşülecektir.

recurring_payment_cycle

recurring_payment_cycle , recurring_payment_interval parametresinin birim türünü tanımlar. Olası değerler: D/M/Y e.g: D: Days (Günler), M: Months (Aylar), Y: Years (Seneler)

recurring_payment_interval

recurring_payment_interval aralık değerini tanımlar. Eğer recurring_payment_interval = 2 ise ve recurring_payment_cycle = “D” ise işlem her 2 günde bir gerçekleşir.

recurring_web_hook_key recurrent_web_hook_key, üye iş yeri tekrar eden web kancası url'sini tanımlar. Bu anahtara karşı iqmoney Üye işyeri Panel'de bir URL atanmalıdır. iqmoney, bu anahtarın veritabanında bulunması gerektiğini doğrular ve ödeme tekrarlandığında gerekli bir değerdir.

max_installment

Kullanıcıya gösterilmek istenen maksimum taksit sayısını ifade eder.

transaction_type

transaction_type “PreAuth” için sistemde bekleyen bir işlem oluşturulur. Ancak daha sonra üye iş yerinin onayı ile Tamamlandı'ya dönüştürülür.

Yanıt

Başarılı bir istekten sonra, sunucu CURL göndericisine bir link sağlayacaktır. Üye iş yeri web sitesinin ödeme yapmak için siteye yönlendirilmesi gerekir.

Aşağıdaki anahtarlar yanıtta mevcut olmalı

Tür Parametreler Data Türü
Key status string
Key success_message string
Key link string

status

status API isteğinin sonucudur. Başarılı için “true” ve başarısız için “false”

success_message

success_message isteğin durumunu tanımlayan bir dizedir

link

link Üye iş yeri web sitesinin markalı 2d / 3d ödeme işlemleri için yönlendirmesi gereken URL'dir.

Yanıt Yönlendirme

Ödeme işleminden sonra son kullanıcı, aşağıda verilen parametreler kullanılarak üye işyeri web sitesine yönlendirilir.
Yanıt doğrulaması için bir hash_key parametresi gönderilir. Üye iş yeri istek parametresini hash_key değeriyle karşılaştırabilir.

$params = [
    'payment_status' => $status,
    'order_no' => $order_id,
    'invoice_id' => invoice_id,
    'status_code' => $error_code,
    'status_description' => $status_message,
    'payment_method' => $payment_type,
    'transaction_type' => $transaction_type,
    'error_code' => $error_code,
    'error' => $status_message,
    'hash_key' => $hash_key,
];

payment_status

payment_status = 0/1

0=Başarısız, 1=Tamamlandı

order_id

order_id is iqmoney'in order id değeri.

invoice_id

invoice_id is üye iş yerinin invoice_id değeri

Yanıt Parametre Açıklamaları

KEY Açıkalaması
payment_status payment_staus 1 veya 0 olabilir. 1=başarılı, 0=başarısız
order_no iqmoney sipariş numarası
invoice_id üye iş yeri fatura id'si
status_code iqmoney Status code, 100 başarılı işlem kodudur
status_description işlem açıklaması
transaction_type transaction_type == “Auth” //işlem tutarı anında karttan düşülür. transaction_type == “Pre-Authorization” işlem tutarı daha sonra karttan düşülecektir.
payment_method 1= kredi kartı, 2= mobil, 3= Wallet/cüzdan
error_code status_code değerinin parametresi
error status_description parametresinin değeri
hash_key iqmoney'den gelen talebi doğrulamak için

Yanıt Doğrulama

Durum 1 : payment_status == 1 ve transaction_type == “Auth” // İşlem başarılıdır ve işlem tutarı anında karttan düşülür.

Durum 2 : payment_status == 1 ve transaction_type == “Pre-Authorization” // İşlem başarılı olup, işlem tutarı daha sonra karttan düşülecektir.

Durum 3 : payment_status == 0 // İşlem başarısız.

Hash_key, isteğin iqmoney'den geldiğini doğrulamak için üye iş yeri tarafında doğrulanmalıdır. Ayrıca İşlem Durumu servisi işlemin başarılı veya Başarısız olduğunu onaylar.