Öncelikle http://app.iqmoneytr.com/merchant/apisetting adresindeki iqmoney üye işyeri panelinde satış web hook URL'nizi (anahtar, değer) ayarlamanız gerekir. Bu özelliği almak için, üye iş yerinin satın alma talebini gönderirken sale_web_hook_key ile faturayı göndermesi gerekir. Bu anahtar isteğe bağlıdır, ancak gönderilirse geçerli bir anahtar olmalıdır. Her ödeme için, aşağıda verilen aşağıdaki parametrelerle satış webhook url'sine bir POST isteği gönderiyoruz
Tip | Parametre | Örnek Değer |
---|---|---|
Key | iqmoney_status | 1 |
Key | order_no | 162754070457149 |
Key | invoice_id | 1627540702924 |
Key | status_code | 100 |
Key | status_description | Approved(21210JoDF14161) |
Key | iqmoney_payment_method | 1 |
Key | credit_card_no | 450803**** 4509 |
Key | transaction_type | Auth |
Key | payment_status | 1 |
Key | payment_method | 1 |
Key | error_code | 100 |
Key | error | Approved(21210JoDF14161) |
Key | status | Completed |
Key | hash_key | 4c63ed8a964ab9a3:f20f : WMnQTMI128rDslYQKRpJfQW0tuskVAwDlMA7Hlp84TbST6tqJo0zuM9U9Iu9lY6u |
Key | transaction_type | “Auth” / ”Pre-Authorization” |
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 |
payment_status == 1 ve transaction_type == “Auth” // İşlem başarılıdır ve işlem tutarı anında karttan düşülür.
payment_status == 1 and transaction_type == “Pre-Authorization” // İşlem başarılı olup, işlem tutarı kredi kartından bloke edilir. Bloke tutarın karttan çekilmesi için /api/confirmPayment çağırılmalıdır.
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.
Öncelikle https://app.iqmoneytr.com/merchant/apisetting adresindeki Iqmoney üye işyeri panelinde yinelenen web kancası URL'nizi (anahtar, değer) ayarlamanız gerekir. Yinelenen ödeme için üye iş yeri, faturayla birlikte recurring_web_hook_key ayarlamalıdır. Iqmoney, satın alma talebi sırasında bu anahtarın veritabanında mevcut olduğunu doğrular.
Yinelenen her ödeme için Iqmoney aşağıda verilen parametrelerle üye iş yerinin yinelenen web hook url'sine bir POST isteği gönderir.
Tür | Parametre | Örnek Değer |
---|---|---|
Key | merchant_key | $2y$10$snLdZ5xKfpmP561tpNlfWurcNl8r.r7Jg.w8Fi88PGFiGPQDOlfXO |
Key | invoice_id | 266011626686877 |
Key | order_id | 162709021159202 |
Key | product_price | 0.10 |
Key | plan_code | 162668699215UOjS |
Key | recurring_number | 6 |
Key | status | Completed |
Key | attempts | 1 |
Key | action_date | 2021-07-24 03:00:49 |
Adım 1: Doğrulama isteği post ve üye iş yeri anahtarı geçerlidir.
Adım 2: Bundan sonra, yinelenen sorgu API'sini çağırın.
POST | application/json |
Tür | Parametre | Data Türü | Şart |
---|---|---|---|
HEADER | Authorization | string | Zorunlu |
HEADER | Accept | string | Zorunlu |
KEY | merchant_key | string | Zorunlu |
KEY | plan_code | string | Zorunlu |
KEY | recurring_number | Integer | Zorunlu |
Authorization, bağlantı girişimine izin verildiğini doğrulayan bir başlık anahtarıdır. Yöntem " Bearer " olmalıdır
Bearer
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImRlMG
VlZGFiZjdhZDhkODYzYTgyMzQ4Nzk5NTFkYzFlMDZkZTUxYjU0NW
RjYmU3MzRjMmQ1OGNkMWFlOWE4YjliZTkyMjdlZGVmZDdlMDliIn0
.eyJhdWQiOiIxNSIsImp0aSI6ImRlMGVlZGFiZjdhZDhkODYzYTgyMzQ
4Nzk5NTFkYzFlMDZkZTUxYjU0NWRjYmU3MzRjMmQ1OGNkMWFlOW
E4YjliZTkyMjdlZGVmZDdlMDliIiwiaWF0IjoxNTczNzUyNDcyLCJuYmYiOjE
1NzM3NTI0NzIsImV4cCI6MTYwNTM3NDg3Miwic3ViIjoiMSIsInNjb3BlcyI6W119.
Acceept
Accept, istemci tarafında ne tür bir temsilin istendiğini belirler. Değer "application / json" olmalıdır
merchant_key
merchant key, Iqmoney tarafından sağlanan üye işyerinin benzersiz anahtarıdır.
plan_code
plan_code, ilk ödeme sırasında oluşturulan benzersiz anahtardır. (Bu durumda, plan_code web kancası yanıtından alınmalıdır).
recurring_number
recurring_number her yinelemede Iqmoney'e gönderilen webHook isteğinden alınmalıdır..
Üye iş yerinin, https://app.Iqmoney.com.tr/merchant/apisetting adresindeki Iqmoney üye iş yeri panelinde geri ödeme web hook URL'nizi (anahtar/key, değer/value) ayarlaması gerekir. Geri ödeme için geri ödeme isteği parametresi ile refund_web_hook_key anahtarı gönderilmelidir. Iqmoney, iade talebinde bulunurken anahtarın veritabanında bulunduğunu doğrular. Geri ödeme onayında, aşağıda belirtilen parametrelerle bir üye iş yeri geri ödeme web hook url'sine bir POST isteği gönderilir.
Yinelenen her ödeme için Iqmoney aşağıda verilen parametrelerle üye iş yerinin yinelenen web hook url'sine bir POST isteği gönderir.
Tip | Parametre | Örnek Değer |
---|---|---|
KEY | invoice_id | 8iu75g |
KEY | order_id | 15767887576675 |
KEY | amount | 10.50 |
KEY | status | Completed |
KEY | hash_key | 5uUVKijz5im5FfStic2wVX4gG8ngRfMS3H+FvAauQvOc1nAnh9GZ9T6zyxV5WUnQP2F |
İade Onayında Iqmoney, web hook url'sine bir gönderi isteği gönderir. Bu bağlantılarla ilgili sorun, anonim bir kişi tarafından erişilebilmesidir. Bu sorunu önlemek için, istek parametreleriyle birlikte durum, invoice_id, order_id, amount ve hash_key gibi bağlantılara bazı parametreler eklendiğinden, talebin hash anahtarı kullanılarak doğrulanması önerilir.
function validateHashKey($hash_key, $secret_key){
$status = '';
$amount = $invoice_id = $order_id = 0;
if (!empty($hash_key)) {
$hash_key = str_replace('__', '/', $hash_key);
$password = sha1($secret_key);
$components = explode(':', $hash_key);
if (count($components) >2) {
$iv = $components[0] ?? '';
$salt = $components[1] ?? '';
$salt = hash('sha256', $password . $salt);
$encrypted_msg = $components[2] ?? '';
$decrypted_msg = openssl_decrypt($encrypted_msg, 'aes-256-cbc', $salt, null, $iv);
if (strpos($decrypted_msg, '|') !== false){
$array = explode('|', $decrypted_msg);
$status = $array[0] ?? 0;
$amount = $array[1] ?? 0;
$invoice_id = $array[2] ?? '0';
$order_id = $array[3] ?? 0;
}
}
}
return [$status, $amount, $invoice_id, $order_id];
}
$hash_key istekten alınmalı , $secret_key üye işyeri app secret bilgisi Iqmoney tarafından sağlanmaktadır.