Ödeme İsteği Gönderme (Tekrarlı/Tek Sefer)



- Ödeme isteği gönderme işlemi için gerekli parametreleri doldurup Payfula istek atılınca, Payfull ilgili müşterilere E-mail veya Sms yoluyla belirlediğiniz kriterlerin hazır olduğu ödeme sayfasına ait linki gönderir.


- Oluşturulan linkler özel linklerdir, belirledğiniz kriterler ile oluşturulmuş bir ödeme sayfasına yönlendirme yapar. Tek yapılması gereken kart bilgilerinin girilmesi ve ödeme talimatı verilmesidir.

- İki çeşit ödeme isteği bulunmaktadır. Tekrarlı ödemeler demek belirlenen tarihlerde ilgili kişinin kartından aynı ücret otomatik olarak tahsil edilir. Bir diğer yöntemi ise tek seferlik ödemelerdir.

- Toplam tutar değeri istek oluşturulurkende üretilebilir yada Payful hesabından ödeme kalemi oluşturularakta üretilebilir.

- Tekrarlı ödeme isteği günlük, aylık yada yıllık olarak seçilebilir.

- Tekrar sayısı ve başlam tarihi seçilebilir.


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 Set olmalıdır.

set_param: ZORUNLU

Parametre değeri Request olmaldır.

language: ZORUNLU

Satış işlemi sonrası gelecek olan cevabın dil seçeneğini belirlemekte kullanılır. İki seçenek vardır. en / tr

client_ip: ZORUNLU

İşlemi yapacak olan kişiye ait IP bilgisi gönderilmelidir.

title: ZORUNLU

Her satış işlemine ait belirlenmesi gereken işlem başlığıdır. Örnek olarak: Çay Bardağı 6'lı Set

recipient_first_name: optional

Müşterilerin İsim

recipient_last_name: optional

Müşterilerin Soyadı

recipient_email: required

Müşterilerin e-mail adresleri


recipient_phone: optional

üşterilerin telefon numarası, eğer belirtilmez ise ülke kodu Türkiye için 0090 olmalıdır

recipient_code: optional

Ödeme talebinde kayıtlı bayi kodu ile gönderim sağlanır ise, email adresi ve telefon bilgisi otomatik olarak algılanır. Bu parametrelerin gönderilmesine gerek kalmaz.

start_date: ZORUNLU

Ödem işleminin başlangıç tarihi

end_date: ZORUNLU

Bitiş tarihi

changeable_quantity: ZORUNLU

Müşterinizin miktarı değiştirebilmesini sağlayan parametredir 0 / 1 olabilir. 1 olması müşterinizin miktarı değiştirebileceği anlamına gelir.

predefined_payment: ZORUNLU

Toplam değeri için payful içeriisnde oluşturulan bir ödeme kalemi kullanılabilmesi için gerekli parametredir.


payment_item: OPSİYONEL

Eğer predefined_payment = 1

olarak ayarlanmış ise ZORUNLU hangi ödeme kaleminin kullanılacağını belirlemek için kullanılır.


payment_free_amount: OPSİYONEL

Eğer predefined_payment = 0 olarak ayarlanmış ise ZORUNLU hale helir. Alınacak ücreti belirlememiz gerekir.

payment_free_title: OPSİYONEL

Eğer predefined_payment = 0 olarak ayarlanmış ise ZORUNLU hale gelir. Ödemenin ismini belirlemek gerekir.

quantity: ZORUNLUÜrün miktarı

currency: ZORUNLU

Desteklenen para birimleri şunlardır. TRY/USD/EUR/GB

kdv: ZORUNLU

KDV değerinin olabileceği değerler. 0% / 1% / 8% / 18%


via_email_sms: ZORUNLU

Ödeme isteğinin yollları belirlenir. 3 seçenek vardır. 0:email / 1:sms / 2:email+sms

email_text: OPSİYONEL

Eğer via_email_sms = 0 or 2 değerlerinden biri ise ZORUNLU olur. SMS içeriği belirlenmelidir.

Bazı taglar önemli bilgileri göndermenizde yardımcı olacaktır.

  • [email or name-surname]: Kayıtlı değilse e-mail bilgisi yada isim soyisim bilgisi
  • [PRDATE]: Oluşturulma tarihi
  • [PRNAME]: Gönderilme tarihi
  • [TOTAL]: istenen toplam ücret
  • [LASTPAYMENTDATE]: Bitiş tarihi


sms_text: OPSİYONELeğer via_email_sms = 1 or 2 değerlerinden biri ise ZORUNLU olur. E-mail içeriği belirlenmelidir.
Bazı taglar önemli bilgileri göndermenize yardımcı olur.

  • [email or name-surname]: Kayıtlı değilse e-mail bilgisi yada isim soyisim bilgisi
  • [PRDATE]: Oluşturulma tarihi
  • [PRNAME]: Gönderilme tarihi
  • [TOTAL]: istenen toplam ücret
  • [LASTPAYMENTDATE]: Bitiş tarihi
  • [LINK]: Ödeme Linki

request_type: ZORUNLU

İstek tipi tekrarlı yada tek seferlik olabilir. normal or recurring

request_action_type: OPSİYONEL

Bu parametre iki değer alabilir. manual or auto, Eğer request_type = recurring olarak seçilirse ZORUNLU hale gelir.

request_period: OPSİYONEL

Tekrarlı Ödeme periodları seçilebilir. 1:day / 2:week / 3:month / 4:year, Eğer request_type = recurring olarak seçildiyse ZORUNLU hale gelir.

repetition_count: OPSİYONEL

Tekrarlı ödemeler için tekrar sayısı seçilebilir, Eğer request_type = recurring olarak seçildiyse ZORUNLU hale gelir.
extra_field_: OPSİYONELTo provide extra data with payment request, you can add more fields to the request, those fields should start with prefix extra_field_, then the field machine name come after, Example: extra_field_invoiceid, where the field invoiceid is created from UI side before.

extra_field_: OPSİYONEL

Ekstra alan bilgisi ödeme talebinde ek bilgi gsağlamak amacı ile kullanılır. Bu parametre panelde oluşturulan ekstra alan entegrasyon bilgisi ile kullanılır. Örn : extra_field_faturaid, faturaid ekstra alanı Payfull panelinde oluşturulmuş olmaldır.

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: api_merch
type: Set
set_param: Request
language: tr
client_ip: 192.168.1.1
title: payment title here
recipient_first_name: Muhammed
recipient_last_name: Salih
recipient_email: MuhammedSalihTestEmail@payfull.com
recipient_phone: 00905..........
start_date: 01-09-2016',
end_date: 01-01-2030'
changeable_quantity: 0
predefined_payment: 0
payment_item: 0
payment_free_amount: 12.25
payment_free_title: Item Title here
quantity: 1
currency: TRY
kdv: 1
via_email_sms: 0
email_text: email text come here
sms_text: sms text come here
request_type: recurring
request_action_type: auto
request_period: 1
repetition_count: 2
hash: 14339MjuG01015018

Cevap Örneği


{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
"data":{ "approved":true, paymentRequestHash:token_value, "paymentRequestLink":"https://yourDomain.payfull.com/tahsilat-sayfasi/token_value"}
}



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"              => 'api_merch',

                           "type"                  => 'Set',

                           "set_param"             => 'Request',

                           "language"              => 'tr',

                           "client_ip"             => '192.168.1.1',

                           "recipient_first_name"  => "Muhammed",

                           "recipient_last_name"   => "Salih",

                           "recipient_email"       => "MuhammedSalihTestEmail@payfull.com",

                           "recipient_phone"       => "009053.........",

                           "title"                 => 'payment title here',

                           "start_date"            => '01-09-2016',

                           "end_date"              => '01-01-2030',

                           "changeable_quantity"   => '0',

                           "predefined_payment"    => '0',

                           "payment_item"          => '1',

                           "payment_free_amount"   => '1',

                           "payment_free_title"    => 'Item Title here',

                           "quantity"              => '1',

                           "currency"              => 'TRY',

                           "kdv"                   => '1',

                           "via_email_sms"         => '0',

                           "email_text"            => 'email text come here',

                           "sms_text"              => 'sms text come here',

                           "request_type"          => 'recurring',

                           "request_action_type"   => 'auto',

                           "request_period"        => '1',

                           "repetition_count"      => '2',

                       );

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

Ödeme Talebi Silme [Tek Sefer]



Daha önceden gönderilen bir ödeme talebini silebilmeniz için, talebin ödenmemiş olması gerekmektedir. Ayrıca Tekrarlayan ödeme talepleri silinemez.


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 Delete.

delete_param: ZORUNLU

Silmek için bu parametreyi Request.

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.

payment_request_hash: ZORUNLU

The payment request hash paymentRequestHash value that is returned when this payment-request is created.

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: api_merch
type: Delete
delete_param: Request
language: tr
client_ip: 192.168.1.1
payment_request_hash: a74d5bb428_9a162e55a
hash: 14339MjuG01015018

Cevap Örneği


{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
}



PHP Örneği

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

                       $merchantPassword = 'your merchant password';

                       $params = array(

                           "merchant"              => 'api_merch',

                           "type"                  => 'Delete',

                           "delete_param"             => 'Request',

                           "language"              => 'tr',

                           "client_ip"             => '192.168.1.1',

                           "payment_request_hash"  => "a74d5bb428_9a162e55a",

                       );

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

Ödeme İsteği Gönderme (Tekrarlı/Tek Sefer)



- Ödeme isteği gönderme işlemi için gerekli parametreleri doldurup Payfula istek atılınca, Payfull ilgili müşterilere E-mail veya Sms yoluyla belirlediğiniz kriterlerin hazır olduğu ödeme sayfasına ait linki gönderir.


- Oluşturulan linkler özel linklerdir, belirledğiniz kriterler ile oluşturulmuş bir ödeme sayfasına yönlendirme yapar. Tek yapılması gereken kart bilgilerinin girilmesi ve ödeme talimatı verilmesidir.

- İki çeşit ödeme isteği bulunmaktadır. Tekrarlı ödemeler demek belirlenen tarihlerde ilgili kişinin kartından aynı ücret otomatik olarak tahsil edilir. Bir diğer yöntemi ise tek seferlik ödemelerdir.

- Toplam tutar değeri istek oluşturulurkende üretilebilir yada Payful hesabından ödeme kalemi oluşturularakta üretilebilir.

- Tekrarlı ödeme isteği günlük, aylık yada yıllık olarak seçilebilir.

- Tekrar sayısı ve başlam tarihi seçilebilir.


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 Set olmalıdır.

set_param: ZORUNLU

Parametre değeri Request olmaldır.

language: ZORUNLU

Satış işlemi sonrası gelecek olan cevabın dil seçeneğini belirlemekte kullanılır. İki seçenek vardır. en / tr

client_ip: ZORUNLU

İşlemi yapacak olan kişiye ait IP bilgisi gönderilmelidir.

title: ZORUNLU

Her satış işlemine ait belirlenmesi gereken işlem başlığıdır. Örnek olarak: Çay Bardağı 6'lı Set

recipient_first_name: optional

Müşterilerin İsim

recipient_last_name: optional

Müşterilerin Soyadı

recipient_email: required

Müşterilerin e-mail adresleri


recipient_phone: optional

üşterilerin telefon numarası, eğer belirtilmez ise ülke kodu Türkiye için 0090 olmalıdır

recipient_code: optional

Ödeme talebinde kayıtlı bayi kodu ile gönderim sağlanır ise, email adresi ve telefon bilgisi otomatik olarak algılanır. Bu parametrelerin gönderilmesine gerek kalmaz.

start_date: ZORUNLU

Ödem işleminin başlangıç tarihi

end_date: ZORUNLU

Bitiş tarihi

changeable_quantity: ZORUNLU

Müşterinizin miktarı değiştirebilmesini sağlayan parametredir 0 / 1 olabilir. 1 olması müşterinizin miktarı değiştirebileceği anlamına gelir.

predefined_payment: ZORUNLU

Toplam değeri için payful içeriisnde oluşturulan bir ödeme kalemi kullanılabilmesi için gerekli parametredir.


payment_item: OPSİYONEL

Eğer predefined_payment = 1

olarak ayarlanmış ise ZORUNLU hangi ödeme kaleminin kullanılacağını belirlemek için kullanılır.


payment_free_amount: OPSİYONEL

Eğer predefined_payment = 0 olarak ayarlanmış ise ZORUNLU hale helir. Alınacak ücreti belirlememiz gerekir.

payment_free_title: OPSİYONEL

Eğer predefined_payment = 0 olarak ayarlanmış ise ZORUNLU hale gelir. Ödemenin ismini belirlemek gerekir.

quantity: ZORUNLUÜrün miktarı

currency: ZORUNLU

Desteklenen para birimleri şunlardır. TRY/USD/EUR/GB

kdv: ZORUNLU

KDV değerinin olabileceği değerler. 0% / 1% / 8% / 18%


via_email_sms: ZORUNLU

Ödeme isteğinin yollları belirlenir. 3 seçenek vardır. 0:email / 1:sms / 2:email+sms

email_text: OPSİYONEL

Eğer via_email_sms = 0 or 2 değerlerinden biri ise ZORUNLU olur. SMS içeriği belirlenmelidir.

Bazı taglar önemli bilgileri göndermenizde yardımcı olacaktır.

  • [email or name-surname]: Kayıtlı değilse e-mail bilgisi yada isim soyisim bilgisi
  • [PRDATE]: Oluşturulma tarihi
  • [PRNAME]: Gönderilme tarihi
  • [TOTAL]: istenen toplam ücret
  • [LASTPAYMENTDATE]: Bitiş tarihi


sms_text: OPSİYONELeğer via_email_sms = 1 or 2 değerlerinden biri ise ZORUNLU olur. E-mail içeriği belirlenmelidir.
Bazı taglar önemli bilgileri göndermenize yardımcı olur.

  • [email or name-surname]: Kayıtlı değilse e-mail bilgisi yada isim soyisim bilgisi
  • [PRDATE]: Oluşturulma tarihi
  • [PRNAME]: Gönderilme tarihi
  • [TOTAL]: istenen toplam ücret
  • [LASTPAYMENTDATE]: Bitiş tarihi
  • [LINK]: Ödeme Linki

request_type: ZORUNLU

İstek tipi tekrarlı yada tek seferlik olabilir. normal or recurring

request_action_type: OPSİYONEL

Bu parametre iki değer alabilir. manual or auto, Eğer request_type = recurring olarak seçilirse ZORUNLU hale gelir.

request_period: OPSİYONEL

Tekrarlı Ödeme periodları seçilebilir. 1:day / 2:week / 3:month / 4:year, Eğer request_type = recurring olarak seçildiyse ZORUNLU hale gelir.

repetition_count: OPSİYONEL

Tekrarlı ödemeler için tekrar sayısı seçilebilir, Eğer request_type = recurring olarak seçildiyse ZORUNLU hale gelir.
extra_field_: OPSİYONELTo provide extra data with payment request, you can add more fields to the request, those fields should start with prefix extra_field_, then the field machine name come after, Example: extra_field_invoiceid, where the field invoiceid is created from UI side before.

extra_field_: OPSİYONEL

Ekstra alan bilgisi ödeme talebinde ek bilgi gsağlamak amacı ile kullanılır. Bu parametre panelde oluşturulan ekstra alan entegrasyon bilgisi ile kullanılır. Örn : extra_field_faturaid, faturaid ekstra alanı Payfull panelinde oluşturulmuş olmaldır.

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: api_merch
type: Set
set_param: Request
language: tr
client_ip: 192.168.1.1
title: payment title here
recipient_first_name: Muhammed
recipient_last_name: Salih
recipient_email: MuhammedSalihTestEmail@payfull.com
recipient_phone: 00905..........
start_date: 01-09-2016',
end_date: 01-01-2030'
changeable_quantity: 0
predefined_payment: 0
payment_item: 0
payment_free_amount: 12.25
payment_free_title: Item Title here
quantity: 1
currency: TRY
kdv: 1
via_email_sms: 0
email_text: email text come here
sms_text: sms text come here
request_type: recurring
request_action_type: auto
request_period: 1
repetition_count: 2
hash: 14339MjuG01015018

Cevap Örneği


{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
"data":{ "approved":true, paymentRequestHash:token_value, "paymentRequestLink":"https://yourDomain.payfull.com/tahsilat-sayfasi/token_value"}
}



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"              => 'api_merch',

                           "type"                  => 'Set',

                           "set_param"             => 'Request',

                           "language"              => 'tr',

                           "client_ip"             => '192.168.1.1',

                           "recipient_first_name"  => "Muhammed",

                           "recipient_last_name"   => "Salih",

                           "recipient_email"       => "MuhammedSalihTestEmail@payfull.com",

                           "recipient_phone"       => "009053.........",

                           "title"                 => 'payment title here',

                           "start_date"            => '01-09-2016',

                           "end_date"              => '01-01-2030',

                           "changeable_quantity"   => '0',

                           "predefined_payment"    => '0',

                           "payment_item"          => '1',

                           "payment_free_amount"   => '1',

                           "payment_free_title"    => 'Item Title here',

                           "quantity"              => '1',

                           "currency"              => 'TRY',

                           "kdv"                   => '1',

                           "via_email_sms"         => '0',

                           "email_text"            => 'email text come here',

                           "sms_text"              => 'sms text come here',

                           "request_type"          => 'recurring',

                           "request_action_type"   => 'auto',

                           "request_period"        => '1',

                           "repetition_count"      => '2',

                       );

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

Ödeme Talebi Silme [Tek Sefer]



Daha önceden gönderilen bir ödeme talebini silebilmeniz için, talebin ödenmemiş olması gerekmektedir. Ayrıca Tekrarlayan ödeme talepleri silinemez.


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 Delete.

delete_param: ZORUNLU

Silmek için bu parametreyi Request.

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.

payment_request_hash: ZORUNLU

The payment request hash paymentRequestHash value that is returned when this payment-request is created.

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: api_merch
type: Delete
delete_param: Request
language: tr
client_ip: 192.168.1.1
payment_request_hash: a74d5bb428_9a162e55a
hash: 14339MjuG01015018

Cevap Örneği


{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
}



PHP Örneği

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

                       $merchantPassword = 'your merchant password';

                       $params = array(

                           "merchant"              => 'api_merch',

                           "type"                  => 'Delete',

                           "delete_param"             => 'Request',

                           "language"              => 'tr',

                           "client_ip"             => '192.168.1.1',

                           "payment_request_hash"  => "a74d5bb428_9a162e55a",

                       );

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

Ödeme İsteği Gönderme (Tekrarlı/Tek Sefer)



- Ödeme isteği gönderme işlemi için gerekli parametreleri doldurup Payfula istek atılınca, Payfull ilgili müşterilere E-mail veya Sms yoluyla belirlediğiniz kriterlerin hazır olduğu ödeme sayfasına ait linki gönderir.


- Oluşturulan linkler özel linklerdir, belirledğiniz kriterler ile oluşturulmuş bir ödeme sayfasına yönlendirme yapar. Tek yapılması gereken kart bilgilerinin girilmesi ve ödeme talimatı verilmesidir.

- İki çeşit ödeme isteği bulunmaktadır. Tekrarlı ödemeler demek belirlenen tarihlerde ilgili kişinin kartından aynı ücret otomatik olarak tahsil edilir. Bir diğer yöntemi ise tek seferlik ödemelerdir.

- Toplam tutar değeri istek oluşturulurkende üretilebilir yada Payful hesabından ödeme kalemi oluşturularakta üretilebilir.

- Tekrarlı ödeme isteği günlük, aylık yada yıllık olarak seçilebilir.

- Tekrar sayısı ve başlam tarihi seçilebilir.


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 Set olmalıdır.

set_param: ZORUNLU

Parametre değeri Request olmaldır.

language: ZORUNLU

Satış işlemi sonrası gelecek olan cevabın dil seçeneğini belirlemekte kullanılır. İki seçenek vardır. en / tr

client_ip: ZORUNLU

İşlemi yapacak olan kişiye ait IP bilgisi gönderilmelidir.

title: ZORUNLU

Her satış işlemine ait belirlenmesi gereken işlem başlığıdır. Örnek olarak: Çay Bardağı 6'lı Set

recipient_first_name: optional

Müşterilerin İsim

recipient_last_name: optional

Müşterilerin Soyadı

recipient_email: required

Müşterilerin e-mail adresleri


recipient_phone: optional

üşterilerin telefon numarası, eğer belirtilmez ise ülke kodu Türkiye için 0090 olmalıdır

recipient_code: optional

Ödeme talebinde kayıtlı bayi kodu ile gönderim sağlanır ise, email adresi ve telefon bilgisi otomatik olarak algılanır. Bu parametrelerin gönderilmesine gerek kalmaz.

start_date: ZORUNLU

Ödem işleminin başlangıç tarihi

end_date: ZORUNLU

Bitiş tarihi

changeable_quantity: ZORUNLU

Müşterinizin miktarı değiştirebilmesini sağlayan parametredir 0 / 1 olabilir. 1 olması müşterinizin miktarı değiştirebileceği anlamına gelir.

predefined_payment: ZORUNLU

Toplam değeri için payful içeriisnde oluşturulan bir ödeme kalemi kullanılabilmesi için gerekli parametredir.


payment_item: OPSİYONEL

Eğer predefined_payment = 1

olarak ayarlanmış ise ZORUNLU hangi ödeme kaleminin kullanılacağını belirlemek için kullanılır.


payment_free_amount: OPSİYONEL

Eğer predefined_payment = 0 olarak ayarlanmış ise ZORUNLU hale helir. Alınacak ücreti belirlememiz gerekir.

payment_free_title: OPSİYONEL

Eğer predefined_payment = 0 olarak ayarlanmış ise ZORUNLU hale gelir. Ödemenin ismini belirlemek gerekir.

quantity: ZORUNLUÜrün miktarı

currency: ZORUNLU

Desteklenen para birimleri şunlardır. TRY/USD/EUR/GB

kdv: ZORUNLU

KDV değerinin olabileceği değerler. 0% / 1% / 8% / 18%


via_email_sms: ZORUNLU

Ödeme isteğinin yollları belirlenir. 3 seçenek vardır. 0:email / 1:sms / 2:email+sms

email_text: OPSİYONEL

Eğer via_email_sms = 0 or 2 değerlerinden biri ise ZORUNLU olur. SMS içeriği belirlenmelidir.

Bazı taglar önemli bilgileri göndermenizde yardımcı olacaktır.

  • [email or name-surname]: Kayıtlı değilse e-mail bilgisi yada isim soyisim bilgisi
  • [PRDATE]: Oluşturulma tarihi
  • [PRNAME]: Gönderilme tarihi
  • [TOTAL]: istenen toplam ücret
  • [LASTPAYMENTDATE]: Bitiş tarihi


sms_text: OPSİYONELeğer via_email_sms = 1 or 2 değerlerinden biri ise ZORUNLU olur. E-mail içeriği belirlenmelidir.
Bazı taglar önemli bilgileri göndermenize yardımcı olur.

  • [email or name-surname]: Kayıtlı değilse e-mail bilgisi yada isim soyisim bilgisi
  • [PRDATE]: Oluşturulma tarihi
  • [PRNAME]: Gönderilme tarihi
  • [TOTAL]: istenen toplam ücret
  • [LASTPAYMENTDATE]: Bitiş tarihi
  • [LINK]: Ödeme Linki

request_type: ZORUNLU

İstek tipi tekrarlı yada tek seferlik olabilir. normal or recurring

request_action_type: OPSİYONEL

Bu parametre iki değer alabilir. manual or auto, Eğer request_type = recurring olarak seçilirse ZORUNLU hale gelir.

request_period: OPSİYONEL

Tekrarlı Ödeme periodları seçilebilir. 1:day / 2:week / 3:month / 4:year, Eğer request_type = recurring olarak seçildiyse ZORUNLU hale gelir.

repetition_count: OPSİYONEL

Tekrarlı ödemeler için tekrar sayısı seçilebilir, Eğer request_type = recurring olarak seçildiyse ZORUNLU hale gelir.
extra_field_: OPSİYONELTo provide extra data with payment request, you can add more fields to the request, those fields should start with prefix extra_field_, then the field machine name come after, Example: extra_field_invoiceid, where the field invoiceid is created from UI side before.

extra_field_: OPSİYONEL

Ekstra alan bilgisi ödeme talebinde ek bilgi gsağlamak amacı ile kullanılır. Bu parametre panelde oluşturulan ekstra alan entegrasyon bilgisi ile kullanılır. Örn : extra_field_faturaid, faturaid ekstra alanı Payfull panelinde oluşturulmuş olmaldır.

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: api_merch
type: Set
set_param: Request
language: tr
client_ip: 192.168.1.1
title: payment title here
recipient_first_name: Muhammed
recipient_last_name: Salih
recipient_email: MuhammedSalihTestEmail@payfull.com
recipient_phone: 00905..........
start_date: 01-09-2016',
end_date: 01-01-2030'
changeable_quantity: 0
predefined_payment: 0
payment_item: 0
payment_free_amount: 12.25
payment_free_title: Item Title here
quantity: 1
currency: TRY
kdv: 1
via_email_sms: 0
email_text: email text come here
sms_text: sms text come here
request_type: recurring
request_action_type: auto
request_period: 1
repetition_count: 2
hash: 14339MjuG01015018

Cevap Örneği


{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
"data":{ "approved":true, paymentRequestHash:token_value, "paymentRequestLink":"https://yourDomain.payfull.com/tahsilat-sayfasi/token_value"}
}



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"              => 'api_merch',

                           "type"                  => 'Set',

                           "set_param"             => 'Request',

                           "language"              => 'tr',

                           "client_ip"             => '192.168.1.1',

                           "recipient_first_name"  => "Muhammed",

                           "recipient_last_name"   => "Salih",

                           "recipient_email"       => "MuhammedSalihTestEmail@payfull.com",

                           "recipient_phone"       => "009053.........",

                           "title"                 => 'payment title here',

                           "start_date"            => '01-09-2016',

                           "end_date"              => '01-01-2030',

                           "changeable_quantity"   => '0',

                           "predefined_payment"    => '0',

                           "payment_item"          => '1',

                           "payment_free_amount"   => '1',

                           "payment_free_title"    => 'Item Title here',

                           "quantity"              => '1',

                           "currency"              => 'TRY',

                           "kdv"                   => '1',

                           "via_email_sms"         => '0',

                           "email_text"            => 'email text come here',

                           "sms_text"              => 'sms text come here',

                           "request_type"          => 'recurring',

                           "request_action_type"   => 'auto',

                           "request_period"        => '1',

                           "repetition_count"      => '2',

                       );

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

Ödeme Talebi Silme [Tek Sefer]



Daha önceden gönderilen bir ödeme talebini silebilmeniz için, talebin ödenmemiş olması gerekmektedir. Ayrıca Tekrarlayan ödeme talepleri silinemez.


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 Delete.

delete_param: ZORUNLU

Silmek için bu parametreyi Request.

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.

payment_request_hash: ZORUNLU

The payment request hash paymentRequestHash value that is returned when this payment-request is created.

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: api_merch
type: Delete
delete_param: Request
language: tr
client_ip: 192.168.1.1
payment_request_hash: a74d5bb428_9a162e55a
hash: 14339MjuG01015018

Cevap Örneği


{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
}



PHP Örneği

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

                       $merchantPassword = 'your merchant password';

                       $params = array(

                           "merchant"              => 'api_merch',

                           "type"                  => 'Delete',

                           "delete_param"             => 'Request',

                           "language"              => 'tr',

                           "client_ip"             => '192.168.1.1',

                           "payment_request_hash"  => "a74d5bb428_9a162e55a",

                       );

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

Ödeme İsteği Gönderme (Tekrarlı/Tek Sefer)



- Ödeme isteği gönderme işlemi için gerekli parametreleri doldurup Payfula istek atılınca, Payfull ilgili müşterilere E-mail veya Sms yoluyla belirlediğiniz kriterlerin hazır olduğu ödeme sayfasına ait linki gönderir.


- Oluşturulan linkler özel linklerdir, belirledğiniz kriterler ile oluşturulmuş bir ödeme sayfasına yönlendirme yapar. Tek yapılması gereken kart bilgilerinin girilmesi ve ödeme talimatı verilmesidir.

- İki çeşit ödeme isteği bulunmaktadır. Tekrarlı ödemeler demek belirlenen tarihlerde ilgili kişinin kartından aynı ücret otomatik olarak tahsil edilir. Bir diğer yöntemi ise tek seferlik ödemelerdir.

- Toplam tutar değeri istek oluşturulurkende üretilebilir yada Payful hesabından ödeme kalemi oluşturularakta üretilebilir.

- Tekrarlı ödeme isteği günlük, aylık yada yıllık olarak seçilebilir.

- Tekrar sayısı ve başlam tarihi seçilebilir.


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 Set olmalıdır.

set_param: ZORUNLU

Parametre değeri Request olmaldır.

language: ZORUNLU

Satış işlemi sonrası gelecek olan cevabın dil seçeneğini belirlemekte kullanılır. İki seçenek vardır. en / tr

client_ip: ZORUNLU

İşlemi yapacak olan kişiye ait IP bilgisi gönderilmelidir.

title: ZORUNLU

Her satış işlemine ait belirlenmesi gereken işlem başlığıdır. Örnek olarak: Çay Bardağı 6'lı Set

recipient_first_name: optional

Müşterilerin İsim

recipient_last_name: optional

Müşterilerin Soyadı

recipient_email: required

Müşterilerin e-mail adresleri


recipient_phone: optional

üşterilerin telefon numarası, eğer belirtilmez ise ülke kodu Türkiye için 0090 olmalıdır

recipient_code: optional

Ödeme talebinde kayıtlı bayi kodu ile gönderim sağlanır ise, email adresi ve telefon bilgisi otomatik olarak algılanır. Bu parametrelerin gönderilmesine gerek kalmaz.

start_date: ZORUNLU

Ödem işleminin başlangıç tarihi

end_date: ZORUNLU

Bitiş tarihi

changeable_quantity: ZORUNLU

Müşterinizin miktarı değiştirebilmesini sağlayan parametredir 0 / 1 olabilir. 1 olması müşterinizin miktarı değiştirebileceği anlamına gelir.

predefined_payment: ZORUNLU

Toplam değeri için payful içeriisnde oluşturulan bir ödeme kalemi kullanılabilmesi için gerekli parametredir.


payment_item: OPSİYONEL

Eğer predefined_payment = 1

olarak ayarlanmış ise ZORUNLU hangi ödeme kaleminin kullanılacağını belirlemek için kullanılır.


payment_free_amount: OPSİYONEL

Eğer predefined_payment = 0 olarak ayarlanmış ise ZORUNLU hale helir. Alınacak ücreti belirlememiz gerekir.

payment_free_title: OPSİYONEL

Eğer predefined_payment = 0 olarak ayarlanmış ise ZORUNLU hale gelir. Ödemenin ismini belirlemek gerekir.

quantity: ZORUNLUÜrün miktarı

currency: ZORUNLU

Desteklenen para birimleri şunlardır. TRY/USD/EUR/GB

kdv: ZORUNLU

KDV değerinin olabileceği değerler. 0% / 1% / 8% / 18%


via_email_sms: ZORUNLU

Ödeme isteğinin yollları belirlenir. 3 seçenek vardır. 0:email / 1:sms / 2:email+sms

email_text: OPSİYONEL

Eğer via_email_sms = 0 or 2 değerlerinden biri ise ZORUNLU olur. SMS içeriği belirlenmelidir.

Bazı taglar önemli bilgileri göndermenizde yardımcı olacaktır.

  • [email or name-surname]: Kayıtlı değilse e-mail bilgisi yada isim soyisim bilgisi
  • [PRDATE]: Oluşturulma tarihi
  • [PRNAME]: Gönderilme tarihi
  • [TOTAL]: istenen toplam ücret
  • [LASTPAYMENTDATE]: Bitiş tarihi


sms_text: OPSİYONELeğer via_email_sms = 1 or 2 değerlerinden biri ise ZORUNLU olur. E-mail içeriği belirlenmelidir.
Bazı taglar önemli bilgileri göndermenize yardımcı olur.

  • [email or name-surname]: Kayıtlı değilse e-mail bilgisi yada isim soyisim bilgisi
  • [PRDATE]: Oluşturulma tarihi
  • [PRNAME]: Gönderilme tarihi
  • [TOTAL]: istenen toplam ücret
  • [LASTPAYMENTDATE]: Bitiş tarihi
  • [LINK]: Ödeme Linki

request_type: ZORUNLU

İstek tipi tekrarlı yada tek seferlik olabilir. normal or recurring

request_action_type: OPSİYONEL

Bu parametre iki değer alabilir. manual or auto, Eğer request_type = recurring olarak seçilirse ZORUNLU hale gelir.

request_period: OPSİYONEL

Tekrarlı Ödeme periodları seçilebilir. 1:day / 2:week / 3:month / 4:year, Eğer request_type = recurring olarak seçildiyse ZORUNLU hale gelir.

repetition_count: OPSİYONEL

Tekrarlı ödemeler için tekrar sayısı seçilebilir, Eğer request_type = recurring olarak seçildiyse ZORUNLU hale gelir.
extra_field_: OPSİYONELTo provide extra data with payment request, you can add more fields to the request, those fields should start with prefix extra_field_, then the field machine name come after, Example: extra_field_invoiceid, where the field invoiceid is created from UI side before.

extra_field_: OPSİYONEL

Ekstra alan bilgisi ödeme talebinde ek bilgi gsağlamak amacı ile kullanılır. Bu parametre panelde oluşturulan ekstra alan entegrasyon bilgisi ile kullanılır. Örn : extra_field_faturaid, faturaid ekstra alanı Payfull panelinde oluşturulmuş olmaldır.

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: api_merch
type: Set
set_param: Request
language: tr
client_ip: 192.168.1.1
title: payment title here
recipient_first_name: Muhammed
recipient_last_name: Salih
recipient_email: MuhammedSalihTestEmail@payfull.com
recipient_phone: 00905..........
start_date: 01-09-2016',
end_date: 01-01-2030'
changeable_quantity: 0
predefined_payment: 0
payment_item: 0
payment_free_amount: 12.25
payment_free_title: Item Title here
quantity: 1
currency: TRY
kdv: 1
via_email_sms: 0
email_text: email text come here
sms_text: sms text come here
request_type: recurring
request_action_type: auto
request_period: 1
repetition_count: 2
hash: 14339MjuG01015018

Cevap Örneği


{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
"data":{ "approved":true, paymentRequestHash:token_value, "paymentRequestLink":"https://yourDomain.payfull.com/tahsilat-sayfasi/token_value"}
}



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"              => 'api_merch',

                           "type"                  => 'Set',

                           "set_param"             => 'Request',

                           "language"              => 'tr',

                           "client_ip"             => '192.168.1.1',

                           "recipient_first_name"  => "Muhammed",

                           "recipient_last_name"   => "Salih",

                           "recipient_email"       => "MuhammedSalihTestEmail@payfull.com",

                           "recipient_phone"       => "009053.........",

                           "title"                 => 'payment title here',

                           "start_date"            => '01-09-2016',

                           "end_date"              => '01-01-2030',

                           "changeable_quantity"   => '0',

                           "predefined_payment"    => '0',

                           "payment_item"          => '1',

                           "payment_free_amount"   => '1',

                           "payment_free_title"    => 'Item Title here',

                           "quantity"              => '1',

                           "currency"              => 'TRY',

                           "kdv"                   => '1',

                           "via_email_sms"         => '0',

                           "email_text"            => 'email text come here',

                           "sms_text"              => 'sms text come here',

                           "request_type"          => 'recurring',

                           "request_action_type"   => 'auto',

                           "request_period"        => '1',

                           "repetition_count"      => '2',

                       );

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

Ödeme Talebi Silme [Tek Sefer]



Daha önceden gönderilen bir ödeme talebini silebilmeniz için, talebin ödenmemiş olması gerekmektedir. Ayrıca Tekrarlayan ödeme talepleri silinemez.


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 Delete.

delete_param: ZORUNLU

Silmek için bu parametreyi Request.

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.

payment_request_hash: ZORUNLU

The payment request hash paymentRequestHash value that is returned when this payment-request is created.

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: api_merch
type: Delete
delete_param: Request
language: tr
client_ip: 192.168.1.1
payment_request_hash: a74d5bb428_9a162e55a
hash: 14339MjuG01015018

Cevap Örneği


{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
}



PHP Örneği

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

                       $merchantPassword = 'your merchant password';

                       $params = array(

                           "merchant"              => 'api_merch',

                           "type"                  => 'Delete',

                           "delete_param"             => 'Request',

                           "language"              => 'tr',

                           "client_ip"             => '192.168.1.1',

                           "payment_request_hash"  => "a74d5bb428_9a162e55a",

                       );

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

Ödeme İsteği Gönderme (Tekrarlı/Tek Sefer)



- Ödeme isteği gönderme işlemi için gerekli parametreleri doldurup Payfula istek atılınca, Payfull ilgili müşterilere E-mail veya Sms yoluyla belirlediğiniz kriterlerin hazır olduğu ödeme sayfasına ait linki gönderir.


- Oluşturulan linkler özel linklerdir, belirledğiniz kriterler ile oluşturulmuş bir ödeme sayfasına yönlendirme yapar. Tek yapılması gereken kart bilgilerinin girilmesi ve ödeme talimatı verilmesidir.

- İki çeşit ödeme isteği bulunmaktadır. Tekrarlı ödemeler demek belirlenen tarihlerde ilgili kişinin kartından aynı ücret otomatik olarak tahsil edilir. Bir diğer yöntemi ise tek seferlik ödemelerdir.

- Toplam tutar değeri istek oluşturulurkende üretilebilir yada Payful hesabından ödeme kalemi oluşturularakta üretilebilir.

- Tekrarlı ödeme isteği günlük, aylık yada yıllık olarak seçilebilir.

- Tekrar sayısı ve başlam tarihi seçilebilir.


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 Set olmalıdır.

set_param: ZORUNLU

Parametre değeri Request olmaldır.

language: ZORUNLU

Satış işlemi sonrası gelecek olan cevabın dil seçeneğini belirlemekte kullanılır. İki seçenek vardır. en / tr

client_ip: ZORUNLU

İşlemi yapacak olan kişiye ait IP bilgisi gönderilmelidir.

title: ZORUNLU

Her satış işlemine ait belirlenmesi gereken işlem başlığıdır. Örnek olarak: Çay Bardağı 6'lı Set

recipient_first_name: optional

Müşterilerin İsim

recipient_last_name: optional

Müşterilerin Soyadı

recipient_email: required

Müşterilerin e-mail adresleri


recipient_phone: optional

üşterilerin telefon numarası, eğer belirtilmez ise ülke kodu Türkiye için 0090 olmalıdır

recipient_code: optional

Ödeme talebinde kayıtlı bayi kodu ile gönderim sağlanır ise, email adresi ve telefon bilgisi otomatik olarak algılanır. Bu parametrelerin gönderilmesine gerek kalmaz.

start_date: ZORUNLU

Ödem işleminin başlangıç tarihi

end_date: ZORUNLU

Bitiş tarihi

changeable_quantity: ZORUNLU

Müşterinizin miktarı değiştirebilmesini sağlayan parametredir 0 / 1 olabilir. 1 olması müşterinizin miktarı değiştirebileceği anlamına gelir.

predefined_payment: ZORUNLU

Toplam değeri için payful içeriisnde oluşturulan bir ödeme kalemi kullanılabilmesi için gerekli parametredir.


payment_item: OPSİYONEL

Eğer predefined_payment = 1

olarak ayarlanmış ise ZORUNLU hangi ödeme kaleminin kullanılacağını belirlemek için kullanılır.


payment_free_amount: OPSİYONEL

Eğer predefined_payment = 0 olarak ayarlanmış ise ZORUNLU hale helir. Alınacak ücreti belirlememiz gerekir.

payment_free_title: OPSİYONEL

Eğer predefined_payment = 0 olarak ayarlanmış ise ZORUNLU hale gelir. Ödemenin ismini belirlemek gerekir.

quantity: ZORUNLUÜrün miktarı

currency: ZORUNLU

Desteklenen para birimleri şunlardır. TRY/USD/EUR/GB

kdv: ZORUNLU

KDV değerinin olabileceği değerler. 0% / 1% / 8% / 18%


via_email_sms: ZORUNLU

Ödeme isteğinin yollları belirlenir. 3 seçenek vardır. 0:email / 1:sms / 2:email+sms

email_text: OPSİYONEL

Eğer via_email_sms = 0 or 2 değerlerinden biri ise ZORUNLU olur. SMS içeriği belirlenmelidir.

Bazı taglar önemli bilgileri göndermenizde yardımcı olacaktır.

  • [email or name-surname]: Kayıtlı değilse e-mail bilgisi yada isim soyisim bilgisi
  • [PRDATE]: Oluşturulma tarihi
  • [PRNAME]: Gönderilme tarihi
  • [TOTAL]: istenen toplam ücret
  • [LASTPAYMENTDATE]: Bitiş tarihi


sms_text: OPSİYONELeğer via_email_sms = 1 or 2 değerlerinden biri ise ZORUNLU olur. E-mail içeriği belirlenmelidir.
Bazı taglar önemli bilgileri göndermenize yardımcı olur.

  • [email or name-surname]: Kayıtlı değilse e-mail bilgisi yada isim soyisim bilgisi
  • [PRDATE]: Oluşturulma tarihi
  • [PRNAME]: Gönderilme tarihi
  • [TOTAL]: istenen toplam ücret
  • [LASTPAYMENTDATE]: Bitiş tarihi
  • [LINK]: Ödeme Linki

request_type: ZORUNLU

İstek tipi tekrarlı yada tek seferlik olabilir. normal or recurring

request_action_type: OPSİYONEL

Bu parametre iki değer alabilir. manual or auto, Eğer request_type = recurring olarak seçilirse ZORUNLU hale gelir.

request_period: OPSİYONEL

Tekrarlı Ödeme periodları seçilebilir. 1:day / 2:week / 3:month / 4:year, Eğer request_type = recurring olarak seçildiyse ZORUNLU hale gelir.

repetition_count: OPSİYONEL

Tekrarlı ödemeler için tekrar sayısı seçilebilir, Eğer request_type = recurring olarak seçildiyse ZORUNLU hale gelir.
extra_field_: OPSİYONELTo provide extra data with payment request, you can add more fields to the request, those fields should start with prefix extra_field_, then the field machine name come after, Example: extra_field_invoiceid, where the field invoiceid is created from UI side before.

extra_field_: OPSİYONEL

Ekstra alan bilgisi ödeme talebinde ek bilgi gsağlamak amacı ile kullanılır. Bu parametre panelde oluşturulan ekstra alan entegrasyon bilgisi ile kullanılır. Örn : extra_field_faturaid, faturaid ekstra alanı Payfull panelinde oluşturulmuş olmaldır.

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: api_merch
type: Set
set_param: Request
language: tr
client_ip: 192.168.1.1
title: payment title here
recipient_first_name: Muhammed
recipient_last_name: Salih
recipient_email: MuhammedSalihTestEmail@payfull.com
recipient_phone: 00905..........
start_date: 01-09-2016',
end_date: 01-01-2030'
changeable_quantity: 0
predefined_payment: 0
payment_item: 0
payment_free_amount: 12.25
payment_free_title: Item Title here
quantity: 1
currency: TRY
kdv: 1
via_email_sms: 0
email_text: email text come here
sms_text: sms text come here
request_type: recurring
request_action_type: auto
request_period: 1
repetition_count: 2
hash: 14339MjuG01015018

Cevap Örneği


{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
"data":{ "approved":true, paymentRequestHash:token_value, "paymentRequestLink":"https://yourDomain.payfull.com/tahsilat-sayfasi/token_value"}
}



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"              => 'api_merch',

                           "type"                  => 'Set',

                           "set_param"             => 'Request',

                           "language"              => 'tr',

                           "client_ip"             => '192.168.1.1',

                           "recipient_first_name"  => "Muhammed",

                           "recipient_last_name"   => "Salih",

                           "recipient_email"       => "MuhammedSalihTestEmail@payfull.com",

                           "recipient_phone"       => "009053.........",

                           "title"                 => 'payment title here',

                           "start_date"            => '01-09-2016',

                           "end_date"              => '01-01-2030',

                           "changeable_quantity"   => '0',

                           "predefined_payment"    => '0',

                           "payment_item"          => '1',

                           "payment_free_amount"   => '1',

                           "payment_free_title"    => 'Item Title here',

                           "quantity"              => '1',

                           "currency"              => 'TRY',

                           "kdv"                   => '1',

                           "via_email_sms"         => '0',

                           "email_text"            => 'email text come here',

                           "sms_text"              => 'sms text come here',

                           "request_type"          => 'recurring',

                           "request_action_type"   => 'auto',

                           "request_period"        => '1',

                           "repetition_count"      => '2',

                       );

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

Ödeme İsteği Gönderme (Tekrarlı/Tek Sefer)



- Ödeme isteği gönderme işlemi için gerekli parametreleri doldurup Payfula istek atılınca, Payfull ilgili müşterilere E-mail veya Sms yoluyla belirlediğiniz kriterlerin hazır olduğu ödeme sayfasına ait linki gönderir.


- Oluşturulan linkler özel linklerdir, belirledğiniz kriterler ile oluşturulmuş bir ödeme sayfasına yönlendirme yapar. Tek yapılması gereken kart bilgilerinin girilmesi ve ödeme talimatı verilmesidir.

- İki çeşit ödeme isteği bulunmaktadır. Tekrarlı ödemeler demek belirlenen tarihlerde ilgili kişinin kartından aynı ücret otomatik olarak tahsil edilir. Bir diğer yöntemi ise tek seferlik ödemelerdir.

- Toplam tutar değeri istek oluşturulurkende üretilebilir yada Payful hesabından ödeme kalemi oluşturularakta üretilebilir.

- Tekrarlı ödeme isteği günlük, aylık yada yıllık olarak seçilebilir.

- Tekrar sayısı ve başlam tarihi seçilebilir.


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 Set olmalıdır.

set_param: ZORUNLU

Parametre değeri Request olmaldır.

language: ZORUNLU

Satış işlemi sonrası gelecek olan cevabın dil seçeneğini belirlemekte kullanılır. İki seçenek vardır. en / tr

client_ip: ZORUNLU

İşlemi yapacak olan kişiye ait IP bilgisi gönderilmelidir.

title: ZORUNLU

Her satış işlemine ait belirlenmesi gereken işlem başlığıdır. Örnek olarak: Çay Bardağı 6'lı Set

recipient_first_name: optional

Müşterilerin İsim

recipient_last_name: optional

Müşterilerin Soyadı

recipient_email: required

Müşterilerin e-mail adresleri


recipient_phone: optional

üşterilerin telefon numarası, eğer belirtilmez ise ülke kodu Türkiye için 0090 olmalıdır

recipient_code: optional

Ödeme talebinde kayıtlı bayi kodu ile gönderim sağlanır ise, email adresi ve telefon bilgisi otomatik olarak algılanır. Bu parametrelerin gönderilmesine gerek kalmaz.

start_date: ZORUNLU

Ödem işleminin başlangıç tarihi

end_date: ZORUNLU

Bitiş tarihi

changeable_quantity: ZORUNLU

Müşterinizin miktarı değiştirebilmesini sağlayan parametredir 0 / 1 olabilir. 1 olması müşterinizin miktarı değiştirebileceği anlamına gelir.

predefined_payment: ZORUNLU

Toplam değeri için payful içeriisnde oluşturulan bir ödeme kalemi kullanılabilmesi için gerekli parametredir.


payment_item: OPSİYONEL

Eğer predefined_payment = 1

olarak ayarlanmış ise ZORUNLU hangi ödeme kaleminin kullanılacağını belirlemek için kullanılır.


payment_free_amount: OPSİYONEL

Eğer predefined_payment = 0 olarak ayarlanmış ise ZORUNLU hale helir. Alınacak ücreti belirlememiz gerekir.

payment_free_title: OPSİYONEL

Eğer predefined_payment = 0 olarak ayarlanmış ise ZORUNLU hale gelir. Ödemenin ismini belirlemek gerekir.

quantity: ZORUNLUÜrün miktarı

currency: ZORUNLU

Desteklenen para birimleri şunlardır. TRY/USD/EUR/GB

kdv: ZORUNLU

KDV değerinin olabileceği değerler. 0% / 1% / 8% / 18%


via_email_sms: ZORUNLU

Ödeme isteğinin yollları belirlenir. 3 seçenek vardır. 0:email / 1:sms / 2:email+sms

email_text: OPSİYONEL

Eğer via_email_sms = 0 or 2 değerlerinden biri ise ZORUNLU olur. SMS içeriği belirlenmelidir.

Bazı taglar önemli bilgileri göndermenizde yardımcı olacaktır.

  • [email or name-surname]: Kayıtlı değilse e-mail bilgisi yada isim soyisim bilgisi
  • [PRDATE]: Oluşturulma tarihi
  • [PRNAME]: Gönderilme tarihi
  • [TOTAL]: istenen toplam ücret
  • [LASTPAYMENTDATE]: Bitiş tarihi


sms_text: OPSİYONELeğer via_email_sms = 1 or 2 değerlerinden biri ise ZORUNLU olur. E-mail içeriği belirlenmelidir.
Bazı taglar önemli bilgileri göndermenize yardımcı olur.

  • [email or name-surname]: Kayıtlı değilse e-mail bilgisi yada isim soyisim bilgisi
  • [PRDATE]: Oluşturulma tarihi
  • [PRNAME]: Gönderilme tarihi
  • [TOTAL]: istenen toplam ücret
  • [LASTPAYMENTDATE]: Bitiş tarihi
  • [LINK]: Ödeme Linki

request_type: ZORUNLU

İstek tipi tekrarlı yada tek seferlik olabilir. normal or recurring

request_action_type: OPSİYONEL

Bu parametre iki değer alabilir. manual or auto, Eğer request_type = recurring olarak seçilirse ZORUNLU hale gelir.

request_period: OPSİYONEL

Tekrarlı Ödeme periodları seçilebilir. 1:day / 2:week / 3:month / 4:year, Eğer request_type = recurring olarak seçildiyse ZORUNLU hale gelir.

repetition_count: OPSİYONEL

Tekrarlı ödemeler için tekrar sayısı seçilebilir, Eğer request_type = recurring olarak seçildiyse ZORUNLU hale gelir.
extra_field_: OPSİYONELTo provide extra data with payment request, you can add more fields to the request, those fields should start with prefix extra_field_, then the field machine name come after, Example: extra_field_invoiceid, where the field invoiceid is created from UI side before.

extra_field_: OPSİYONEL

Ekstra alan bilgisi ödeme talebinde ek bilgi gsağlamak amacı ile kullanılır. Bu parametre panelde oluşturulan ekstra alan entegrasyon bilgisi ile kullanılır. Örn : extra_field_faturaid, faturaid ekstra alanı Payfull panelinde oluşturulmuş olmaldır.

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: api_merch
type: Set
set_param: Request
language: tr
client_ip: 192.168.1.1
title: payment title here
recipient_first_name: Muhammed
recipient_last_name: Salih
recipient_email: MuhammedSalihTestEmail@payfull.com
recipient_phone: 00905..........
start_date: 01-09-2016',
end_date: 01-01-2030'
changeable_quantity: 0
predefined_payment: 0
payment_item: 0
payment_free_amount: 12.25
payment_free_title: Item Title here
quantity: 1
currency: TRY
kdv: 1
via_email_sms: 0
email_text: email text come here
sms_text: sms text come here
request_type: recurring
request_action_type: auto
request_period: 1
repetition_count: 2
hash: 14339MjuG01015018

Cevap Örneği


{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
"data":{ "approved":true, paymentRequestHash:token_value, "paymentRequestLink":"https://yourDomain.payfull.com/tahsilat-sayfasi/token_value"}
}



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"              => 'api_merch',

                           "type"                  => 'Set',

                           "set_param"             => 'Request',

                           "language"              => 'tr',

                           "client_ip"             => '192.168.1.1',

                           "recipient_first_name"  => "Muhammed",

                           "recipient_last_name"   => "Salih",

                           "recipient_email"       => "MuhammedSalihTestEmail@payfull.com",

                           "recipient_phone"       => "009053.........",

                           "title"                 => 'payment title here',

                           "start_date"            => '01-09-2016',

                           "end_date"              => '01-01-2030',

                           "changeable_quantity"   => '0',

                           "predefined_payment"    => '0',

                           "payment_item"          => '1',

                           "payment_free_amount"   => '1',

                           "payment_free_title"    => 'Item Title here',

                           "quantity"              => '1',

                           "currency"              => 'TRY',

                           "kdv"                   => '1',

                           "via_email_sms"         => '0',

                           "email_text"            => 'email text come here',

                           "sms_text"              => 'sms text come here',

                           "request_type"          => 'recurring',

                           "request_action_type"   => 'auto',

                           "request_period"        => '1',

                           "repetition_count"      => '2',

                       );

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

Ödeme İsteği Gönderme (Tekrarlı/Tek Sefer)



- Ödeme isteği gönderme işlemi için gerekli parametreleri doldurup Payfula istek atılınca, Payfull ilgili müşterilere E-mail veya Sms yoluyla belirlediğiniz kriterlerin hazır olduğu ödeme sayfasına ait linki gönderir.


- Oluşturulan linkler özel linklerdir, belirledğiniz kriterler ile oluşturulmuş bir ödeme sayfasına yönlendirme yapar. Tek yapılması gereken kart bilgilerinin girilmesi ve ödeme talimatı verilmesidir.

- İki çeşit ödeme isteği bulunmaktadır. Tekrarlı ödemeler demek belirlenen tarihlerde ilgili kişinin kartından aynı ücret otomatik olarak tahsil edilir. Bir diğer yöntemi ise tek seferlik ödemelerdir.

- Toplam tutar değeri istek oluşturulurkende üretilebilir yada Payful hesabından ödeme kalemi oluşturularakta üretilebilir.

- Tekrarlı ödeme isteği günlük, aylık yada yıllık olarak seçilebilir.

- Tekrar sayısı ve başlam tarihi seçilebilir.


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 Set olmalıdır.

set_param: ZORUNLU

Parametre değeri Request olmaldır.

language: ZORUNLU

Satış işlemi sonrası gelecek olan cevabın dil seçeneğini belirlemekte kullanılır. İki seçenek vardır. en / tr

client_ip: ZORUNLU

İşlemi yapacak olan kişiye ait IP bilgisi gönderilmelidir.

title: ZORUNLU

Her satış işlemine ait belirlenmesi gereken işlem başlığıdır. Örnek olarak: Çay Bardağı 6'lı Set

recipient_first_name: optional

Müşterilerin İsim

recipient_last_name: optional

Müşterilerin Soyadı

recipient_email: required

Müşterilerin e-mail adresleri


recipient_phone: optional

üşterilerin telefon numarası, eğer belirtilmez ise ülke kodu Türkiye için 0090 olmalıdır

recipient_code: optional

Ödeme talebinde kayıtlı bayi kodu ile gönderim sağlanır ise, email adresi ve telefon bilgisi otomatik olarak algılanır. Bu parametrelerin gönderilmesine gerek kalmaz.

start_date: ZORUNLU

Ödem işleminin başlangıç tarihi

end_date: ZORUNLU

Bitiş tarihi

changeable_quantity: ZORUNLU

Müşterinizin miktarı değiştirebilmesini sağlayan parametredir 0 / 1 olabilir. 1 olması müşterinizin miktarı değiştirebileceği anlamına gelir.

predefined_payment: ZORUNLU

Toplam değeri için payful içeriisnde oluşturulan bir ödeme kalemi kullanılabilmesi için gerekli parametredir.


payment_item: OPSİYONEL

Eğer predefined_payment = 1

olarak ayarlanmış ise ZORUNLU hangi ödeme kaleminin kullanılacağını belirlemek için kullanılır.


payment_free_amount: OPSİYONEL

Eğer predefined_payment = 0 olarak ayarlanmış ise ZORUNLU hale helir. Alınacak ücreti belirlememiz gerekir.

payment_free_title: OPSİYONEL

Eğer predefined_payment = 0 olarak ayarlanmış ise ZORUNLU hale gelir. Ödemenin ismini belirlemek gerekir.

quantity: ZORUNLUÜrün miktarı

currency: ZORUNLU

Desteklenen para birimleri şunlardır. TRY/USD/EUR/GB

kdv: ZORUNLU

KDV değerinin olabileceği değerler. 0% / 1% / 8% / 18%


via_email_sms: ZORUNLU

Ödeme isteğinin yollları belirlenir. 3 seçenek vardır. 0:email / 1:sms / 2:email+sms

email_text: OPSİYONEL

Eğer via_email_sms = 0 or 2 değerlerinden biri ise ZORUNLU olur. SMS içeriği belirlenmelidir.

Bazı taglar önemli bilgileri göndermenizde yardımcı olacaktır.

  • [email or name-surname]: Kayıtlı değilse e-mail bilgisi yada isim soyisim bilgisi
  • [PRDATE]: Oluşturulma tarihi
  • [PRNAME]: Gönderilme tarihi
  • [TOTAL]: istenen toplam ücret
  • [LASTPAYMENTDATE]: Bitiş tarihi


sms_text: OPSİYONELeğer via_email_sms = 1 or 2 değerlerinden biri ise ZORUNLU olur. E-mail içeriği belirlenmelidir.
Bazı taglar önemli bilgileri göndermenize yardımcı olur.

  • [email or name-surname]: Kayıtlı değilse e-mail bilgisi yada isim soyisim bilgisi
  • [PRDATE]: Oluşturulma tarihi
  • [PRNAME]: Gönderilme tarihi
  • [TOTAL]: istenen toplam ücret
  • [LASTPAYMENTDATE]: Bitiş tarihi
  • [LINK]: Ödeme Linki

request_type: ZORUNLU

İstek tipi tekrarlı yada tek seferlik olabilir. normal or recurring

request_action_type: OPSİYONEL

Bu parametre iki değer alabilir. manual or auto, Eğer request_type = recurring olarak seçilirse ZORUNLU hale gelir.

request_period: OPSİYONEL

Tekrarlı Ödeme periodları seçilebilir. 1:day / 2:week / 3:month / 4:year, Eğer request_type = recurring olarak seçildiyse ZORUNLU hale gelir.

repetition_count: OPSİYONEL

Tekrarlı ödemeler için tekrar sayısı seçilebilir, Eğer request_type = recurring olarak seçildiyse ZORUNLU hale gelir.
extra_field_: OPSİYONELTo provide extra data with payment request, you can add more fields to the request, those fields should start with prefix extra_field_, then the field machine name come after, Example: extra_field_invoiceid, where the field invoiceid is created from UI side before.

extra_field_: OPSİYONEL

Ekstra alan bilgisi ödeme talebinde ek bilgi gsağlamak amacı ile kullanılır. Bu parametre panelde oluşturulan ekstra alan entegrasyon bilgisi ile kullanılır. Örn : extra_field_faturaid, faturaid ekstra alanı Payfull panelinde oluşturulmuş olmaldır.

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: api_merch
type: Set
set_param: Request
language: tr
client_ip: 192.168.1.1
title: payment title here
recipient_first_name: Muhammed
recipient_last_name: Salih
recipient_email: MuhammedSalihTestEmail@payfull.com
recipient_phone: 00905..........
start_date: 01-09-2016',
end_date: 01-01-2030'
changeable_quantity: 0
predefined_payment: 0
payment_item: 0
payment_free_amount: 12.25
payment_free_title: Item Title here
quantity: 1
currency: TRY
kdv: 1
via_email_sms: 0
email_text: email text come here
sms_text: sms text come here
request_type: recurring
request_action_type: auto
request_period: 1
repetition_count: 2
hash: 14339MjuG01015018

Cevap Örneği


{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
"data":{ "approved":true, paymentRequestHash:token_value, "paymentRequestLink":"https://yourDomain.payfull.com/tahsilat-sayfasi/token_value"}
}



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"              => 'api_merch',

                           "type"                  => 'Set',

                           "set_param"             => 'Request',

                           "language"              => 'tr',

                           "client_ip"             => '192.168.1.1',

                           "recipient_first_name"  => "Muhammed",

                           "recipient_last_name"   => "Salih",

                           "recipient_email"       => "MuhammedSalihTestEmail@payfull.com",

                           "recipient_phone"       => "009053.........",

                           "title"                 => 'payment title here',

                           "start_date"            => '01-09-2016',

                           "end_date"              => '01-01-2030',

                           "changeable_quantity"   => '0',

                           "predefined_payment"    => '0',

                           "payment_item"          => '1',

                           "payment_free_amount"   => '1',

                           "payment_free_title"    => 'Item Title here',

                           "quantity"              => '1',

                           "currency"              => 'TRY',

                           "kdv"                   => '1',

                           "via_email_sms"         => '0',

                           "email_text"            => 'email text come here',

                           "sms_text"              => 'sms text come here',

                           "request_type"          => 'recurring',

                           "request_action_type"   => 'auto',

                           "request_period"        => '1',

                           "repetition_count"      => '2',

                       );

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

BANKA
KART NUMARASI
SON KULLANMA TARİHİ
CVV
AKBANK-vISA
4355084355084358
12/2030
000
AKBANK-MASTER
5571135571135575
12/2030
000
TEB-VISA
4402934402934406
12/2030
000
TEB-MASTER
5101385101385104
12/2030
000
HALKBANK-VISA
4920244920244921
12/2030
001
HALKBANK-MASTER
5404355404355405
12/2030
001
FINANSBANK-VISA
4022774022774026
12/2030
000
FINANSBANK-MASTER
5456165456165454
12/2030
000
ISBANK-VISA
4508034508034509
12/2030
000
ISBANK-MASTER
5406675406675403
12/2030
000
ANADOLUBANK-VISA
4258464258464253
12/2030
000
ANADOLUBANK-MASTER
5222405222405229
12/2030
000
KUVEYTTURK-VISA
4025894025894022
12/2030
000
INGBANK-VISA
4555714555714556
12/2030
000
INGBANK-MASTER
5400245400245409
12/2030
000
GARANTI
5342614723204016
06/2020
599
YKB
4506347048543223
08/2019
000
4506347011448053
02/2020
000
4506347022052795
02/2020
000
4506347031187533
02/2020
000
4506347043358536
02/2020
000
4921307045825277
02/2020
000
5400610093155852
02/2020
000
5400617049774124
02/2020
000
5400637003737156
02/2020
000
VAKIBANK
4938410114062912
01/2020
956
HSBC
5100051016005572
01/2020
742
KOMBANK-VISA
4920244920244913
01/2018
000
KOMBANK-MASTERCARD
5404355404355405
01/2018
000
MOKA
5259222233334444
12/2030
000
FINANSBANK - TROY
9792023757123604
01/2026
861
TURK ELEKTRONIK   PARA - TROY
9792350046201275
07/2027
993
VAKIFBANK - TROY
6501700194147183
03/2023
136
VAKIFBANK - TROY
6500528865390837
01/2021
686
AKBANK - TROY
9792072000017956
01/2020
843

Ödeme İsteği Gönderme (Tekrarlı/Tek Sefer)



- Ödeme isteği gönderme işlemi için gerekli parametreleri doldurup Payfula istek atılınca, Payfull ilgili müşterilere E-mail veya Sms yoluyla belirlediğiniz kriterlerin hazır olduğu ödeme sayfasına ait linki gönderir.


- Oluşturulan linkler özel linklerdir, belirledğiniz kriterler ile oluşturulmuş bir ödeme sayfasına yönlendirme yapar. Tek yapılması gereken kart bilgilerinin girilmesi ve ödeme talimatı verilmesidir.

- İki çeşit ödeme isteği bulunmaktadır. Tekrarlı ödemeler demek belirlenen tarihlerde ilgili kişinin kartından aynı ücret otomatik olarak tahsil edilir. Bir diğer yöntemi ise tek seferlik ödemelerdir.

- Toplam tutar değeri istek oluşturulurkende üretilebilir yada Payful hesabından ödeme kalemi oluşturularakta üretilebilir.

- Tekrarlı ödeme isteği günlük, aylık yada yıllık olarak seçilebilir.

- Tekrar sayısı ve başlam tarihi seçilebilir.


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 Set olmalıdır.

set_param: ZORUNLU

Parametre değeri Request olmaldır.

language: ZORUNLU

Satış işlemi sonrası gelecek olan cevabın dil seçeneğini belirlemekte kullanılır. İki seçenek vardır. en / tr

client_ip: ZORUNLU

İşlemi yapacak olan kişiye ait IP bilgisi gönderilmelidir.

title: ZORUNLU

Her satış işlemine ait belirlenmesi gereken işlem başlığıdır. Örnek olarak: Çay Bardağı 6'lı Set

recipient_first_name: optional

Müşterilerin İsim

recipient_last_name: optional

Müşterilerin Soyadı

recipient_email: required

Müşterilerin e-mail adresleri


recipient_phone: optional

üşterilerin telefon numarası, eğer belirtilmez ise ülke kodu Türkiye için 0090 olmalıdır

recipient_code: optional

Ödeme talebinde kayıtlı bayi kodu ile gönderim sağlanır ise, email adresi ve telefon bilgisi otomatik olarak algılanır. Bu parametrelerin gönderilmesine gerek kalmaz.

start_date: ZORUNLU

Ödem işleminin başlangıç tarihi

end_date: ZORUNLU

Bitiş tarihi

changeable_quantity: ZORUNLU

Müşterinizin miktarı değiştirebilmesini sağlayan parametredir 0 / 1 olabilir. 1 olması müşterinizin miktarı değiştirebileceği anlamına gelir.

predefined_payment: ZORUNLU

Toplam değeri için payful içeriisnde oluşturulan bir ödeme kalemi kullanılabilmesi için gerekli parametredir.


payment_item: OPSİYONEL

Eğer predefined_payment = 1

olarak ayarlanmış ise ZORUNLU hangi ödeme kaleminin kullanılacağını belirlemek için kullanılır.


payment_free_amount: OPSİYONEL

Eğer predefined_payment = 0 olarak ayarlanmış ise ZORUNLU hale helir. Alınacak ücreti belirlememiz gerekir.

payment_free_title: OPSİYONEL

Eğer predefined_payment = 0 olarak ayarlanmış ise ZORUNLU hale gelir. Ödemenin ismini belirlemek gerekir.

quantity: ZORUNLUÜrün miktarı

currency: ZORUNLU

Desteklenen para birimleri şunlardır. TRY/USD/EUR/GB

kdv: ZORUNLU

KDV değerinin olabileceği değerler. 0% / 1% / 8% / 18%


via_email_sms: ZORUNLU

Ödeme isteğinin yollları belirlenir. 3 seçenek vardır. 0:email / 1:sms / 2:email+sms

email_text: OPSİYONEL

Eğer via_email_sms = 0 or 2 değerlerinden biri ise ZORUNLU olur. SMS içeriği belirlenmelidir.

Bazı taglar önemli bilgileri göndermenizde yardımcı olacaktır.

  • [email or name-surname]: Kayıtlı değilse e-mail bilgisi yada isim soyisim bilgisi
  • [PRDATE]: Oluşturulma tarihi
  • [PRNAME]: Gönderilme tarihi
  • [TOTAL]: istenen toplam ücret
  • [LASTPAYMENTDATE]: Bitiş tarihi


sms_text: OPSİYONELeğer via_email_sms = 1 or 2 değerlerinden biri ise ZORUNLU olur. E-mail içeriği belirlenmelidir.
Bazı taglar önemli bilgileri göndermenize yardımcı olur.

  • [email or name-surname]: Kayıtlı değilse e-mail bilgisi yada isim soyisim bilgisi
  • [PRDATE]: Oluşturulma tarihi
  • [PRNAME]: Gönderilme tarihi
  • [TOTAL]: istenen toplam ücret
  • [LASTPAYMENTDATE]: Bitiş tarihi
  • [LINK]: Ödeme Linki

request_type: ZORUNLU

İstek tipi tekrarlı yada tek seferlik olabilir. normal or recurring

request_action_type: OPSİYONEL

Bu parametre iki değer alabilir. manual or auto, Eğer request_type = recurring olarak seçilirse ZORUNLU hale gelir.

request_period: OPSİYONEL

Tekrarlı Ödeme periodları seçilebilir. 1:day / 2:week / 3:month / 4:year, Eğer request_type = recurring olarak seçildiyse ZORUNLU hale gelir.

repetition_count: OPSİYONEL

Tekrarlı ödemeler için tekrar sayısı seçilebilir, Eğer request_type = recurring olarak seçildiyse ZORUNLU hale gelir.
extra_field_: OPSİYONELTo provide extra data with payment request, you can add more fields to the request, those fields should start with prefix extra_field_, then the field machine name come after, Example: extra_field_invoiceid, where the field invoiceid is created from UI side before.

extra_field_: OPSİYONEL

Ekstra alan bilgisi ödeme talebinde ek bilgi gsağlamak amacı ile kullanılır. Bu parametre panelde oluşturulan ekstra alan entegrasyon bilgisi ile kullanılır. Örn : extra_field_faturaid, faturaid ekstra alanı Payfull panelinde oluşturulmuş olmaldır.

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: api_merch
type: Set
set_param: Request
language: tr
client_ip: 192.168.1.1
title: payment title here
recipient_first_name: Muhammed
recipient_last_name: Salih
recipient_email: MuhammedSalihTestEmail@payfull.com
recipient_phone: 00905..........
start_date: 01-09-2016',
end_date: 01-01-2030'
changeable_quantity: 0
predefined_payment: 0
payment_item: 0
payment_free_amount: 12.25
payment_free_title: Item Title here
quantity: 1
currency: TRY
kdv: 1
via_email_sms: 0
email_text: email text come here
sms_text: sms text come here
request_type: recurring
request_action_type: auto
request_period: 1
repetition_count: 2
hash: 14339MjuG01015018

Cevap Örneği


{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
{
"status":1,
"ErrorMSG":"",
"ErrorCode":"00",
"data":{ "approved":true, paymentRequestHash:token_value, "paymentRequestLink":"https://yourDomain.payfull.com/tahsilat-sayfasi/token_value"}
}



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"              => 'api_merch',

                           "type"                  => 'Set',

                           "set_param"             => 'Request',

                           "language"              => 'tr',

                           "client_ip"             => '192.168.1.1',

                           "recipient_first_name"  => "Muhammed",

                           "recipient_last_name"   => "Salih",

                           "recipient_email"       => "MuhammedSalihTestEmail@payfull.com",

                           "recipient_phone"       => "009053.........",

                           "title"                 => 'payment title here',

                           "start_date"            => '01-09-2016',

                           "end_date"              => '01-01-2030',

                           "changeable_quantity"   => '0',

                           "predefined_payment"    => '0',

                           "payment_item"          => '1',

                           "payment_free_amount"   => '1',

                           "payment_free_title"    => 'Item Title here',

                           "quantity"              => '1',

                           "currency"              => 'TRY',

                           "kdv"                   => '1',

                           "via_email_sms"         => '0',

                           "email_text"            => 'email text come here',

                           "sms_text"              => 'sms text come here',

                           "request_type"          => 'recurring',

                           "request_action_type"   => 'auto',

                           "request_period"        => '1',

                           "repetition_count"      => '2',

                       );

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

Banka/Ödeme Kuruluşu
Parametre Adı
Parametre Değeri
Garanti
Üye İşyeri ID
7000679
Secure Key
123qweASD
Terminal ID
30691297
3D Anahtarı
12345678
PROVAUT
123qweASD
PROVRFN
123qweASD
Akbank
API Üye İş Yeri ID
100658785
API Şifresi
TEST1111
API Kullanıcı Adı
api
3D Anahtarı
123456
Finansbank
API Üye İş Yeri ID
600658785
API Şifresi
TEST1111
API Kullanıcı Adı
api
3D Anahtarı
123456
Halkbank
API Üye İş Yeri ID
500658785
API Şifresi
TEST1111
API Kullanıcı Adı
api
3D Anahtarı
123456
HSBC
API Üye İş Yeri ID
100658785
API Şifresi
TEST1111
API Kullanıcı Adı
api
3D Anahtarı
123456
Iysico
PayU
Üye İşyeri
OPU_TEST
Şifre
SECRET_KEY
BKM Express
Üye İşyeri
ID
9d6818c5-8da5-4072-db17-c7f559b44aeb
Özel Anahtar
Lütfen kendi private key değerinizi
oluşturup BKM ile paylaşınız.
BKM Açık Anahtar
lüften BKM ile bağlantı kurup,
Public key değerlerini alıp kendi tarfınıza ekleyin
MOKA
dealerCode
34
Username
PayfullTest
Password
HS7D7329OD9DJ
Compay
Client ID
104000046
Sale Password
Test1234
Api Kullanıcı Adı
payfullapi
Api Parola
payfullapi