İşlem Durum Bilgisi
Satış/iptal/iade sonrası işlemin durumunu öğrenmek için kullanılan bir istektir. Tarayıcı veya internet sorunlarından ötürü websitenizin işlem hakkında bilgisiz kaldığı durumlarda kullanılır. get_param bu işlem için özel olarak TransactionStatus şeklinde değer atanarak belirlenir. İlgili işleme ait ID bilgisi merchant_trx_id parametresine koyularak gönderilir.

Gerekli parametreler
merchant: ZORUNLU
Payfull hesabınız içerisinde(Ayarlar->Apı Hesapları) tanımladığınız Apı hesabına ait "Üye İşyeri Adı" alanına girilen değerdir.
type: ZORUNLU
İşlem tipi Sale olmalıdır.
get_param: ZORUNLU
Parametre değeri TransactionStatus olmalıdır.
language: ZORUNLU
Gelecek olan cevabın dil seçeneğini belirlemekte kullanılır. İki seçenek vardır. en / tr
client_ip: ZORUNLU
İşlemi yapacak kişiye ait IP bilgisi gönderilmelidir.
merchant_trx_id: ZORUNLU
This parameter must be filled with the original id value you defined for the operation.
hash: ZORUNLU
İşlemin hangi api kullanıcısına ait olduğunu anlamamız ve güvenlik için kullanılan Güvenlik kodu parametresidir. Nasıl oluşturulacağı aşağıda anlatılmış olup sayfanın sağ tarafındaki örnekte php örneği olarak gösterilmiştir.

Güvenlik kodu (hash) değerini oluşturmak için aşağıdaki işlemler sırası ile gerçekleştirilmelidir;

- Bütün parametrelerin oluşturulduğundan emin olun. Her senaryo için Güvenlik kodu (hash) oluşturma işlemi son işlem ve son parametreniz olmalıdır.
- Parametreleri alfabetik olarak A'dan Z'ye sıralayınız.
- Bir string değeri($siraliParametreler) oluşturup teker teker her parametrenizin uzunluğunu ve kendisini yanyana ekleyiniz.
- sha256 hash kodu üretici fonksiyon ile parametrelerinizden oluşturduğunuz ($siraliParametreler) string değerinizi ve Payfull hesabınızda belirlenen "Üye İşyeri Şifresi" ni kullanarak bir Güvenlik kodu üretiniz.
- Parametreleriniz içerisine parametre ismi "hash", değeri ise şimdi oluştuduğunuz Güvenlik kodunu yerleştirerek Api isteğinizi Endpoint Url'inize gönderiniz.

> İstek Örneği

merchant : merchant name
type : Get
get_param: TransactionStatus
language : tr
client_ip: 192.168.1.1
transaction_id: P_F_e2da8f7c25_dbab58efe
hash: e34a9d3aa4312e43cae22573d21edf8d84ee9564

> Cevap Örneği

{
“status”: 1,
“ErrorMSG”: "",
“ErrorCode”: "00",
“data”:
[{
“type”: "Sale",
“transaction_processor”: "Moka",
“transaction_id”: "P_F_e2da8f7c25_dbab58efe",
“transaction_status”: "1",
“total”: "10.00",
“currency”: "TRY",
“original_currency”: "TL",
“currency_rate”: "1.0000",
“currency_code”: "949",
“installments”: "1",
“mode”: "TEST",
“date”: "20-02-2018 11:26:09",
“client_ip”: "78.186.146.107",
“customer_firstname”: "Faruk",
“customer_lastname”: "Cinemre",
“customer_email”: "test@payfull.com",
“customer_phone”: "+95399999999",
“customer_tc”: "38770568598",
}]
}

>  Php Örneği

 $api_url =
'https://yourSubDomain.payfull.com/integration/api/v1';    

   $merchantPassword = 'your merchant password';  

                     //parametrelerinizi oluşturduğunuz dizi.
                        $params = array(                  
                     "merchant"        => 'your merchant name',
                       "type"            => 'Get',          
                        "get_param"            => 'TransactionStatus',

                       "language"        => 'tr',
                     "client_ip"       => '192.168.1.1 

                     "merchant_trx_id"  =>   'P_F_e2da8f7c25_dbab58efe',
                      "total"           => '21.39',
                    "passive_data"  => 'xxxxxxxx', //opsiyonel',                  
     );
                     
                        ksort($params);
                     $hashString = "";
                     foreach ($params as $key=>$val) {                             
                      $l = mb_strlen($val);  
                      if($l) $hashString .= $l . $val;
                       }


                       $params["hash"] = hash_hmac("sha256", $hashString, $merchantPassword);

                       $ch = curl_init();
                       curl_setopt($ch, CURLOPT_URL, $api_url);            
                        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                               curl_setopt($ch, CURLOPT_TIMEOUT, 60);      
                        curl_setopt($ch, CURLOPT_POST, 1);  
                        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));

                         $response = curl_exec($ch);                    

           $curlerrcode = curl_errno($ch);
           $curlerr = curl_error($ch);              

           var_dump(json_decode($response));