3D ile Satış İşlemi
- 3D Secure güvenlik satış İşleminde, normal satıştan farklı olarak use3d ve return_url olmak üzere iki ekstra parametre bulunur.
- Ayrıca lütfen TOKEN ve taksitlerin kullanılacağını öğrenmek/görmek için Satış İşlemi sayfasını kontrol edin.
- Aşama A:Satış isteği gönderirken use3d ve return_url ile birlikte göndermeniz gerekir.
- Aşama B: bağlantı isteği güvenli bir şekilde kurulursa HTML yanıtı alırsınız.
- Aşama C: : Dönen cevabı tarayıcıya HTML olarak yazdırmanız gerekir; bu sayede 3D doğrulama sayfası tarayıcınızda (OTP girişi yapılacak ekran) görünür ve kart sahibi işleme devam edebilir.
- Aşama D: Kart sahibi 3D şifresini ekrana başarılı olarak girdikten sonra, Payfull response mesajını (JSON formatında) return_url’nize döner.
Önemli notlar
- 3D isteği güvenli bir şekilde kurulmazsa, B Aşamasındaki sonuç/response HTML yanıtı yerine JSON formatında yanıt alırsınız.
- Aşama D’nin sonunda, Payfull üye işyeri eşleştirmesi ve güvenlik için Hash kullanarak dönüş sağlayacaktır.
Gerekli parametreler
- merchant: ZORUNLU
- Payfull hesabınız içerisinde(Ayarlar->Apı Hesapları) tanımladığınız Apı hesabına ait "Üye İşyeri Adı" alanına girilen değerdir.
- type: ZORUNLU
- İşlem tipi Sale olmalıdır.
- total: ZORUNLU
- Ödemenin miktarında kuruş değeride belirtilmelidir. Örnek olarak: 10.23 yada 10.00
- cc_name: ZORUNLU
- Ücret Tahsil edilecek kişinin kart bilgilerine ihtiyaç vardır.
- Kart üzerinde yazan isim.
- cc_number: ZORUNLU
- 16 haneli kart numarası
- Örnek olarak: 4123456789123456
- cc_month: ZORUNLU
- Kart Son Kullanım Tarihi Ay değeri
- Örnek Olarak: 05
- cc_year: ZORUNLU
- Kart Son Kullanım Tarihi Yıl değeri
- Örnek Olarak: 2017
- cc_cvc: ZORUNLU
- Kart Güvenlik Numarası
- Örnek Olarak: 000
- currency: ZORUNLU
- Desteklenen para birimleri şunlardır. TRY/USD/EUR/GBP
- installments: ZORUNLU
- Taksit değerinin girildiği alanı ifade eder. Tek çekim işlem tapılacaksa değer 1 olarak atanmalıdır.
- campaign_id: OPSİYONEL
- Belirli bankalar belirli koşullar yerine geldiğinde taksit değerlerinde kampanyalar oluşturmaktadır. Kampanyadan faydalanılmak istenirse ilgili id bilgisini göndermeniz gerekmektedir.
Buradan kampanyalara ait tüm bilgiye ulaşabilirsiniz. - 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 kişiye ait IP bilgisi gönderilmelidir.
- payment_title: ZORUNLU
- Her satış işlemine ait belirlenmesi gereken işlem başlığıdır. Örnek olarak: Çay Bardağı 6'lı Set
- use3d: ZORUNLU
-
Bu parametre 1 olmalıdır aksi halde normal bir satış işleminden farksız çalışır.
- return_url: ZORUNLU
-
3D sayfasından dönecek olan sonuç verilerinin gönderileceği link adresini buraya giriniz.
- gateway: OPSİYONEL
- Taksitli işlem yapılmak istenildiğinde ZORUNLU olan bir parametre daha. bank_id ile beraber kullanılmak istenen bankaya ait özel bir değer girilmesi gerekir. İlgili değeri nasıl temin edeceğinizi Taksit Bilgisi sayfasından öğrenebilirsiniz.
- customer_firstname: ZORUNLU
- İşlemi yapan kişinin bilgilerine ihtiyaç vardır. İlk olarak isim.
- customer_lastname: ZORUNLU
- Soyisim
- customer_email: ZORUNLU
- Email hesabı
- customer_phone: ZORUNLU
- Telefon numarası
- customer_tc: OPSİYONEL
- TC kimlik numarası.
- passive_data: OPSİYONEL
-
Bu parametre işlem için göndermek ve sonrasında tekrar geri almak istediğiniz herhangi data yada bilgi için oluşturulmuş bir parametredir.
(not: lütfen bunu kart numaraları veya şifreler gibi önemli bir veri göndermek için kullanmayın). - merchant_trx_id: OPSİYONEL
- Bu parametre işlem için özgün bir id değeri tanımlamanız ve göndermeniz içindir. Sonrasında üretmiş olduğunuz bu değeri İşlem Durum Bilgisi için kullanmanız gerekmektedir.
- 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.
- - 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.
Güvenlik kodu (hash) değerini oluşturmak için aşağıdaki işlemler sırası ile gerçekleştirilmelidir;
İstek Örneği
merchant: merchant name
type: Sale
total: 23.02
cc_name: ALI
cc_number: 4111111111111111
cc_month: 09
cc_year: 2024
cc_cvc: 000
currency: TRY
installments: 1
language: tr
client_ip: 192.168.1.1
payment_title: just payemnt title
use3d: 1
return_url: https://your_Application/return3D bank_id: Akbank
gateway: 160
customer_firstname: ALI
customer_lastname: MUHAMAD
customer_email: alitestemail@gmail.com
customer_phone: 5394659832
customer_tc: 12590326514
passive_data: just any passive data
hash: 14339MjuG01015018
Cevap Örneği
{
"type":"Sale",
"status":1,
"transaction_id":"T4U_7dd053f6b8_d9a58906b",
"ErrorMSG":"Success Transaction",
"ErrorCode":"00",
"passive_data":" just any passive data",
"original_currency":"TRY",
"total":23.02,
"currency":"TRY",
"conversion_rate":1,
"bank_id":"Akbank",
"use3d":1,
"installments":1,
"time":"08-09-2016 02:53:25"
hash: 14339MjuG01015018
}
PHP Example