PayTR Direkt API kullanarak, ödeme sırasında kullanıcıların kredi kartı bilgilerini PayTR üzerinde kaydedebilir ve sonraki ödemelerde hızlı bir şekilde kart bilgilerinin tekrar girilmesine gerek kalmadan ödeme almaya devam edebilirsiniz. Bu makalede "Yeni Kart Kaydetme" sürecini detaylı şekilde anlatıyor olacağız.
Bağlantılı Rehber:
Kart Kaydetme Süreci
-
Ödeme Formu: Kullanıcı ödeme bilgilerini girerken bir "Kartımı Kaydet" onay kutusu gösterilir.
-
POST Verileri:
-
store_card=1 gönderilir.
-
Daha önceden kayıtlı bir kart varsa ayrıca utoken bilgisi de gönderilir.
-
-
Ödeme Tamamlanınca: PayTR tarafından yeni bir utoken oluşturulur veya mevcut utoken ile yeni kart birleştirilir.
-
Bildirim URL: Ödeme başarılı ise gelen bildirimde utoken bilgisi yer alır. Sisteminize kaydedilmelidir.
Token Üretiminde Kullanılacak Veriler
-
merchant_id
-
user_ip
-
merchant_oid
-
email
-
payment_amount
-
payment_type ('card')
-
installment_count (0,2,3..)
-
currency
-
test_mode
-
non_3d
Ayrıca store_card ve mevcut ise utoken de POST içeriğine eklenmelidir.
POST REQUEST Parametreleri
Parametre | Zorunlu | Açıklama |
---|---|---|
merchant_id | Evet | Mağaza numarası |
paytr_token | Evet | Çıkış tokeni |
user_ip | Evet | Müşteri IP adresi |
merchant_oid | Evet | Sipariş numarası |
Evet | Müşteri e-posta adresi | |
payment_type | Evet | 'card' |
payment_amount | Evet | Ödeme tutarı |
installment_count | Evet | Taksit sayısı |
card_type | Hayır | Kart tipi |
currency | Hayır | Para birimi |
test_mode | Hayır | Test mod |
non_3d | Evet | 3D Secure kullanılıp kullanılmayacağı |
cc_owner | Evet | Kart sahibi |
card_number | Evet | Kart numarası |
expiry_month | Evet | Ay |
expiry_year | Evet | Yıl |
cvv | Evet | CVV kodu |
merchant_ok_url | Evet | Başarılı ödeme sayfası |
merchant_fail_url | Evet | Başarısız ödeme sayfası |
user_name | Evet | Müşteri adı |
user_address | Evet | Müşteri adresi |
user_phone | Evet | Müşteri telefon numarası |
user_basket | Evet | Sepet JSON |
debug_on | Hayır | Hata gösterimi |
utoken | Hayır | Daha önceden kayıtlı kart var ise |
store_card | Evet | Kart kaydetme isteği |
Örnek PHP Form Kodu
<input type="checkbox" name="store_card" value="1"/> Kartımı Kaydet
<input type="hidden" name="utoken" value="<?php echo $utoken; ?>">
Önemli Notlar
-
Utoken gönderilmezse yeni bir token oluşturulur ve eski kartlarla ilişik kurulmaz.
-
store_card parametresi 1 gönderilmezse kart kaydetme işlemi yapılmaz.
-
Müşterinin sonraki ödemelerinde sadece utoken kullanarak kartı seçmesine izin verilir.
Sonuç
Bu yapı sayesinde kullanıcıların kart bilgilerini PayTR altyapısında güvenli bir şekilde kaydederek, hem PCI DSS uyumlu bir altyapı sağlarsınız hem de ödeme sürecini hızlandırırsınız.