Ödeme Doğrulama

PreAuth ödemede sistemde Beklemede olarak işlem oluşturulur. Bu işlemi Başarısız/Failed veya Başarılı/Completed yapmak için aşağıdaki istek parametreleri kullanılarak bu API çağrılmalıdır.

Method URL İçerik Tipi
POST /api/confirmPayment application/json


Tip Parametre Data Tipi Şart
HEADER Authorization string Zorunlu
HEADER Accept string Zorunlu
KEY invoice_id string Zorunlu
KEY merchant_key string Zorunlu
KEY status string Zorunlu
KEY hash_key string Zorunlu

Authorization

Authorization bağlantı girişimine izin verildiğini doğrulayan tanımlayan bir başlık anahtarıdır. Yöntem “Bearer” olmalıdır

Örnek değer

Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6Im
RlMGVlZGFiZjdhZDhkODYzYTgyMzQ4Nzk5NTFkYzFlMDZkZ
TUxYjU0NWRjYmU3MzRjMmQ1OGNkMWFlOWE4YjliZTkyMjd
lZGVmZDdlMDliIn0.eyJhdWQiOiIxNSIsImp0aSI6ImRlMGVlZGF
iZjdhZDhkODYzYTgyMzQ4Nzk5NTFkYzFlMDZkZTUxYjU0NWR
jYmU3MzRjMmQ1OGNkMWFlOWE4YjliZTkyMjdlZGVmZDdlMD
liIiwiaWF0IjoxNTczNzUyNDcyLCJuYmYiOjE1NzM3NTI0NzIsImV
4cCI6MTYwNTM3NDg3Miwic3ViIjoiMSIsInNjb3BlcyI6W119.mDtd
zcv15p8SnYjZYJUJrhdskO5NohXbkcAxKWWZ72lNtrg86RZ1yxQwf
QlRu6IPoa1rfG3M4jfsNeH

Accept

accept, istemci tarafında ne tür bir temsilin istendiğini belirler. Değer "application/json" olmalıdır

invoice_id

invoice_id üye iş yeri tarafından gönderilen eşsiz sipariş id'sidir.

merchant_key

merchant_key Sipay tarafından üye iş yerine sağlanan eşsiz bir anahtardır.

status

status 1 veya 2 şeklinde olabilir (1=onaylandı, 2 = iptal)

hash_key

hash_key, giriş değeri kullanılarak üretilmesi gereken benzersiz bir anahtardır. hash_key oluşturmak için method aşağıdaki gibidir

function generateConfrimPaymentHashKey($merchant_key, $invoice_id, $status, $app_secret)
{

   $data = $merchant_key . '|' . $invoice_id . '|' . $status;

   $iv = substr(sha1(mt_rand()), 0, 16);
   $password = sha1($app_secret);

   $salt = substr(sha1(mt_rand()), 0, 4);
   $saltWithPassword = hash('sha256', $password . $salt);

   $encrypted = openssl_encrypt(
     "$data", 'aes-256-cbc', "$saltWithPassword", null, $iv
   );
   $msg_encrypted_bundle = "$iv:$salt:$encrypted";
   $msg_encrypted_bundle = str_replace('/', '__', $msg_encrypted_bundle);
   return $msg_encrypted_bundle;
}

Başarısız Yanıt

{
    "status_code": 105,
    "status_description": " The transaction is not Approved",
    "transaction_status": "Pending",
    "order_id": "162435924998223",
    "invoice_id": "50781624359247
}

Başarılı Yanıt

{
    "status_code": 100,
    "status_description": "An order has been taken place for this invoice id: 33491162435928”,
    "transaction_status": "Completed",
    "order_id": "162435932934307",
    "invoice_id": "33491162435928"

}