Özelleştirilebilir Form

Paynet ile ödeme almanın diğer bir kolay yolu Paynet-custom.js’i ödeme formunuza gömmektir. Paynet-custom.js ödeme ekranını kendi tasarımınıza uygun şekilde dizayn etmenize olanak verir. Sizin için kart bilgilerinin güvenliğini sağlar, tüm doğrulamaları yapar. Hassas kart bilgileri hiçbir şekilde güvensiz ortamlarda dolaşmaz.

Paynet-custom.js ile ödeme almak üç aşamadan oluşur;

  • Paynet-custom.js’i mevcut tasarımı size ait olan HTML formunuza yerleştirirsiniz.

  • HTML Form elementlere data-paynet attribute'u ile hangi alan olduğunu işaretlersiniz. Örneğin Kredi kartı numarasını alacağınız html input'a data-paynet="number" attribute'unu eklemeniz gerekiyor.

  • Kullanıcı kart bilgilerini girip ödeme butonuna basınca Paynet-custom.js kart bilgilerini alarak sizin formunuza “token_id” ve “session_id” bilgilerini ekler ve formunuzu post eder. Sizde sunucunuzda gönderilen “token_id” ve “session_id” bilgilerini alarak “Ödeme Onaylama” servisi ile kredi kartından çekim işlemini tamamlayabilirsiniz.

Özelleştirilebilir Form methodu ile script'i sayfanıza eklemek için Publishable key, ödeme işlemini sunucu tarafında onaylamak için de secret key'e ihtiyacınız vardır. bnkz.

1.Adım: Paynet-custom.js’i formunuza ekleme

Paynet-custom.js’i aşağıdaki şekilde sayfanıza ekleyebilirsiniz. Eklenen bu script ile sayfanızı isteğiniz doğrultuda dizayn edebilirsiniz.

<script type="text/javascript"
class="paynet-button"
src="https://pts-pj.paynet.com.tr/public/js/paynet-custom.js"
data-form="#checkout-form"
data-key="[Publishable key]"
data-amount="200"
data-description="Ödeme açıklaması">
</script>
<form action="[post adresi]" method="post" name="checkout-form" id="checkout-form">
<input type="text" name="cardHolderName" data-paynet="holderName" placeholder="Kart Üzerindeki İsim" />
<input type="text" name="cardNumber" data-paynet="number" placeholder="Kart No" />
<select name="expMonth" id="expMonth" data-paynet="exp-month" >
<option value="1">1</option>
...
<option value="11">11</option>
<option value="12">12</option>
</select>
<select name="expYear" id="expYear" data-paynet="exp-year" >
<option value="">...</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
</select>
<input type="password" name="cvv" data-paynet="cvv" />
<button type="submit" data-paynet="submit">Öde</button>
</form>

Paynet-custom.js Parametreleri

Data attribute

Zorunlu

Açıklama

data-form

Evet

Kart bilgilerinin alıncağı formun id'si. css selector "#formid" şeklinde verilmeli

data-key

Evet

Publishable key'iniz.

data-amount

Evet

Kredi kartından çekilecek tutar. Ödeme tutarının yüz ile çarpılmış hali. “10.00 TL” => “1000” olarak gönderilmeli.

data-name

Hayır

Ödeme sırasında görünecek başlık.

data-description

Hayır

Ödeme sırasında görünecek işlem açıklaması. Paynet API İşlem listesinde ve Paynet işlem listesinde burada gönderdiğiniz açıklama gösterilir.

data-agent

Hayır

Eğer alt bayileriniz var ise işlemin hangi bayi üzerinden geldiğini bu alana bayi kodu göndererek yapabilirsiniz.

data-add_commission_amount

Hayır

Komisyon tutarının ödeme tutarına eklenip eklenmeyeceği belirlenir. True olduğunda komisyon tutarı kredi kartından çekilecek tutara eklenir.

data-no_instalment

Hayır

true/false, default: false. True olduğunda Taksitli çekime izin vermez, tek çekim yapılır.

data-ratio_code

Hayır

Paynet.com.tr yönetim ekranlarında “API oran tanımları” sayfasından tanımlayabileceğiniz oran tablolarının “oran kodunu” bu alanda gönderebilirsiniz. Gönderdiğiniz oran koduna ait oran tablosu üzerinden komisyon hesaplaması yapılır. Bu sayede API üzerinden istediğiniz oranlar ile işlem yapabilirsiniz.

data-reference_no

Hayır

Ödeme işleminin ilişkili olduğu referans numarası.

data-show_tds_error

Hayır

Bankanın 3D sayfasında hata alması durumunda bunu direkt müşterinize göstermek isterseniz "true", onaylama adımında göstermek isterseniz "false".

data-invoice_no

Hayır

Düzenli ödeme fatura numarası.

data-save_card

Hayır

Ödeme işlemi ile birlikte kredi kart numarasının da saklanması istiyorsanız bu parametreyi true yollayabilirsiniz. Kart saklama işlemi yapıyorsanız card_desc zorunlu, save_cardoid ya da save_carduid değerlerinden en az birini göndermeniz zorunlu.

data-use_saved_card

Hayır

Ödeme işlemi sırasında data-use_saved_card parametresinin “true” ayarlandığı durumda card_hash parametresinin doğruluğu kontrol edilir.

data-save_cardoid

Hayır

İlk defa kart saklama yapıldıktan sonra, Paynet tarafından user_unique_id’ye göre oluşturulan kart sahibinin benzersiz bilgisi. Bir sonraki kart saklama ve karttan ödeme alma işlemlerinde bu değer kullanılır.

data-save_carduid

Hayır

Üye iş yeri tarafından verilen kullanıcıya özgü benzersiz id. İlk defa kart saklama yapılıyorsa zorunlu. İlk kart saklama tamamlandıktan sonra Paynet tarafından bu kullanıcıya benzersiz bir değer atanır( card_owner_id). Bu değeri kendi sisteminizde kullanıcınız ile ilişkilendirerek saklamalısınız. Daha sonra bu kullanıcıya yapılan kart saklama işlemlerinde user_unique_id yerine Paynet tarafından verilen card_owner_id değişkenini kullanmalısınız.

data-save_card_desc

Hayır

Kart saklamada kullanılacak kart açıklaması.

data-tds_required

Hayır

True/false, Default: true False : Eğer işlem yapılacak POS 3D’siz işlemi destekliyor ise, kullanıcının 3D’siz de işlem yapmasına izin verir. True: Eğer işlem yapılacak POS 3D’siz işlemi destekliyor ise, kullanıcının 3D’siz de işlem yapmasını engeller.

data-merge_option

Hayır

Bu alanla ilgili daha detaylı bilgi için lütfen destek ekibimiz ile iletişime geçiniz.

data-pos_type

Hayır

Bu alanla ilgili daha detaylı bilgi için lütfen destek ekibimiz ile iletişime geçiniz.

data-ratio_code_method

Hayır

Bu alanla ilgili daha detaylı bilgi için lütfen destek ekibimiz ile iletişime geçiniz.

data-return_url

Hayır

Form action parametresi yerine başka bir url'de ödeme onaylama işlemi yapacaksanız bu alanda ilgili url bilgisini gönderebilirsiniz.

2.Adım: HTML input elementlerinizi işaretleyin.

Ödeme bilgilerinin alınacağı HTML formunuz, tercihleriniz doğrultusunda diyazn edilir. Formunuzdaki input elementleri ve buton data-paynet attribute'u ile işaretlenir.

Kullanıcı kart bilgilerini girip formu post ettiğinde; Paynet-custom.js, “token_id” ve “session_id” parametrelerini formunuza hidden olarak ekler ve formu action adresi ile belirtiğiniz sayfaya post eder.

Form post işlemi ile sizin formunuza eklediğiniz parametreler ile beraber session_id ve token_id bilgisi web server’ınıza gelir.

Script tag’inin içinde data-from parametresinin değeri ödeme bilgilerinin alınacağı HTML formun ID"si olmalı. Değer "#formid" şeklinde verilmeli.

Eğer data-return_url parametresi kullanıyorsanır, Paynet-custom.js formun action adresi yerine return_url ile belirtilen adrese post işlemini yapar.

Formunuzda data-paynet attribute'u ile işaretlemediğiniz inputlar değişiklik olmadan post edilir.

data-paynet HTML form değerleri

Parametre İsmi

Zorunlu

Açıklama

number

Evet

Kredi kartı numarasının alınacağı html input'u işaretlemek için kullanılır.

installmentKey

Hayır

Seçilen taksitin ID’si

holderName

Evet

Kart sahibinin alınacağı html input'u işaretlemek için kullanılır.

exp-month

Evet

Kredi kartı son kullanma tarihinin ay bilgisinin alınacağı html input'u işaretlemek için kullanılır.

exp-year

Evet

Kredi kartı son kullanma tarihinin yıl bilgisinin alınacağı html input'u işaretlemek için kullanılır.

cvv

Evet

Kredi kartı CVC bilgisinin alınacağı html input'u işaretlemek için kullanılır.

desc

Hayır

Ödeme ile ilgili açıklama bilgisinin alınacağı html input'u işaretlemek için kullanılır.

email

Hayır

Ödeme yapan kişinin e-posta bilgisinin alınacağı html input'u işaretlemek için kullanılır.

phone

Hayır

Ödeme yapan kişinin telefon bilgisinin alınacağı html input'u işaretlemek için kullanılır.

do3D

Hayır

3D'li ya da 3D'siz ödemeyi kullanıcıların tercihine bırakmak istediğinizde HTML checkboxı işaretlemek için kullanılır.

save_card

Hayır

Kart saklamayı kullanıcının tercihine bırakmak istediğinizde HTML checkbox'ı işaretlemek için kullanılır.

save-card-desc

Hayır

Kart saklamada kart açıklamasının alınacağı HTML input'u işaretlemek için kullanılır.

3.Adım : Ödemeyi onaylama

Form action adresi ya da data-return_url ile belirtiğiniz adrese session_id ve token_id parametreleri post edildikten sonra ödeme işlemini "Ödeme Onaylama" servisi ile onaylamalısınız. Bknz.

Ödeme onaylama servisini başarılı şekilde çalıştırmazsanız kredi kartından tahsilat işlemi yapılmaz.

Event parametre ve Servisler

Paynet-custom.js javascript kütüphanesindeki aşağıdaki eventleri ve servisleri daha esnek bir uygulama oluşturmak için kullanabilirsiniz.