Kart Kayıt İşlemi
Kart kaydetme özelliği için karta ait bilgilerin tamamı payfula istek olarak gönderilir ve Payfull tarafından cevap bilgisi içerisinde TOKEN değeri dönülür. Token değeri kayıt edilmeli ve sonrasında kayıtlı kart ile satış yapılmak istenirse bu token yardımı ile kart bilgilerine ihtiyaç duyulmadan satış işlemi gerçekleştirilebilir. Ayrıca kart kaydı silinmek istenirse Token değerine yeniden ihtiyaç duyulacaktır.

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.
set_param: ZORUNLU
Parametre değeri Card olmalıdır.
card_op: ZORUNLU
İki seçenk bulunmaktadır ekle veya çıkar şuan ekleme işlemi yapmaktayız o yüzden add olarak değer atanmalı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.
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.
cc_number: ZORUNLU
16 haneli kart numarasıÖrnek olarak: 4123456789123456
cc_month: ZORUNLU
Kart Son Kullanım Tarihi Ay değeriÖrnek Olarak: 05
cc_year: ZORUNLU
Kart Son Kullanım Tarihi Yıl değeriÖrnek Olarak: 2017
cc_cvc: ZORUNLU
Kart Güvenlik NumarasıÖrnek Olarak: 000
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 : Set
set_param: Card
card_op: add
user_email: demo@gmail.com
cc_name: Mohammad
cc_number: 4111111111111111
cc_month: 12
cc_year: 2030
cc_cvc: 000
language: tr
client_ip: 192.168.1.1
hash: 14339MjuG01015018

> Cevap Örneği

{
“status”: 1,
“ErrorMSG”: "",
“ErrorCode”: "00",
“data”:
[{
“cc_token”: "A5NVH5VFTXE3XT3DUTVJMTD2
BR2U7K5LBS2UNOXFTA5W2BII",
}

>  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"            => 'Set',          
                        "get_param"            => 'Card',
                        "card_op"         => 'add',
                       "user_email"        => 'demo@gmail.com',
                     "cc_name"       => 'Mohammad'
                      "cc_number"       => '4111111111111111'

                     "cc_month"  =>   '12',
                     "cc_year"  =>   '2030',
                     "cc_cvc"  =>   '000',
                     "language"  =>   'tr',
                     "client_ip"  =>   '192.168.1.1',
     );
                     // 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);

                       $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));