Single Sign On
Payfull da kayıtlı kullanıcılar bu servisi kullanarak şifresiz panellerine giriş yapabilirler. B2B sitelerden yönlendirme için kullanılabilir.
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 Get 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.
get_param: ZORUNLU
Parametre değeri OTAccessLink olmalıdır.
user_email: ZORUNLU
Kart sahibi Payfull hesabı içerisinde üye olmalıdır. Böylelikle payful hesabı içerisindeki e-mail değeri bu parametre ile gönderilmelidir.
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.

one_time_sale_return_url: OPSİYONEL
Örn: https://yourdomain/TEST/api/return3D.php

total: OPSİYONEL
İşlem toplamı

currency: OPSİYONEL
Para Birimi , TRY / USD / EURO
‍‍
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: OTAccessLink
user_email: User@payfull.com
language : tr
client_ip: 192.168.1.1
hash: 14339MjuG01015018

> Cevap  Örneği

{
“status”: 1,
“ErrorCode”: ”00”,
“ErrorMSG”: ””,
“data”:
{
“userEmail”: ”user@payfull.com”,
“sessionToken”: ” Sesssion Token”,
“sessionLink”: "https://yourdomain?switched_accout_token=sessiontoken",
“sessionCreateTime”: timestamp,
“sessionExpiryTime”: timestamp,
“sessionIsVisited”: 0,
“endUserIP”: "192.168.1.1",
}
}

>  Php Örneği

//API isteğini göndereceğiniz Endpoint URL değeri                      
 $api_url =
'https://yourSubDomain.payfull.com/integration/api/v1';    

                  //Payfull hesabınız içerisinde oluştuduğunuz API hesabına ait "Üye İşyeri Şifresi" değeri.                    
   $merchantPassword = 'your merchant password';  

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

"user_email" => 'user@payfull.com',
"language"  => 'tr',
"client_ip" => '192.168.0.0',                 
     );
                     
                     // Hash kodu üretme yöntemi.        
                        ksort($params);
                     $hashString = "";
                     foreach ($params as $key=>$val) {                             
                      $l = mb_strlen($val);  
                      if($l) $hashString .= $l . $val;
                       }


                       $params["hash"] = hash_hmac("sha256", $hashString, $merchantPassword);
                        // Hash kodu üretilip parametreler arasına "hash" index'i ile eklendi.

                       //curl sürecini başlatıyoruz.
                       $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));

                        //curl için gerekli olan URL değeri ve parametreler hazırlandı ve curl_exec() fonksiyonu ile işlemi başlatıp cevabı $response değerine atıyoruz.                      
                         $response = curl_exec($ch);                    

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

           //cevabı öğrenmek için print ediyoruz.                      
           var_dump(json_decode($response));