Ödeme Sistemleri


    × Bunları biliyor muydunuz?
"Databases/ dizini bir veritabanı tablolarının şemasını oluşturup Generate::databases() komutu ile bu şemanın gerçek bir veritabanı ve tablo olarak işlenmesini sağlayabilirsiniz."


ZN Framework Payment kütüphanesi bir çok banka ile uyumlu sanal pos uygulaması oluşturmanıza yardımcı olur. Türkiye'de yer alan çoğu banka ile uyumlu bu kütüphane yurt dışı ödemeleri içinde geliştirilmeye devam etmektedir.

 

 

# Kurulum


Tüm ZN dağıtımları için terminal kurulum komutu.

↓ composer require znframework/package-payment

 

 

# Yöntemler


Gateway::request(string $provider) : object
Gateway::response(string $provider) : object

 

 

# Request


Ödeme isteğinin hangi sağlayıcı üzerinden gerçekleştirileceği belirtilir.

string $provider Ödeme işleminin hangi sağlayıcı ile gerçekleştirileceği.
Desteklenen Sağlayıcılar Nestpay, PayPal
return object

Kullanımı 

$nestpay = Gateway::request('Nestpay');
Nestpay İstek Yöntemleri
clientId(string $id) : this Gerekli Mağaza numarası.
storeKey(string $key) : this Gerekli Üye iş yeri anahtarı.
card
(
    string $number, 
    string $month, 
    string $year, 
    string $cvc

) : this
Gerekli Kart bilgileri. Yıl ve ay parametreleri 2 haneli olmalıdır. Paket[6.0.2.3][2021-01-18] sürümü ile beraber kontrol ve çevrimi otomatik olarak yapılmaktadır. Yani yılın 2 veya 4 hane gelmesi ile ayın tek veya çift hane gelmesi problem teşkil etmemektedir.
cardType(scalar $type) : this Gerekli Kart türü interger veya string değer verilebilir.
Kullanılabilir Seçenekler visa[1], mastercard[2]
orderId(string $id = NULL) : this Ön tanımlı Sipariş numarası.
amount(string $amount) : this Gerekli Ödeme tutarı.
currency(scalar $currency = 'TRY') : this
Ön tanımlı Para birimi.
randomKey(string $key = time()) : this Ön tanımlı İşlem anahtarı.
returnUrl
(
    string $success, 
    string $fail = NULL

) : this
Gerekli Dönüş URL adresi.
companyName(string $name) : this Gerekli değil Şirket adı.
installment(scalar $count) : this Gereki değil Taksit bilgisi.
processType(string $type = 'Auth') : this Ön tanımlı İşlem tipi.
send(string $bank) : string Gerekli Ödemenin gerçekleştirileceği banka.
Desteklenen Bankalar isbank, akbank, finansbank, halkbank, anadolubank, ziraatbank, tebtest

Kullanımları

Dosya: Controllers/Pay.php
<?php namespace Project\Controllers;

use Gateway;

class Pay extends Controller
{
    public function main()
    {
        $nestpay = Gateway::request('Nestpay');

        echo $nestpay->clientId('190200000')
                     ->storeKey('123456')
                     ->cardType('visa')
                     ->card('4546711234567894', '12', '26', '000')
                     ->amount('10.00')
                     ->returnUrl('Pay/response', 'Pay/cancel')
                     ->send('test');
    }
}
Bilgi: Ödeme 3d_pay modeline göre yapılmaktadır.
PayPal İstek Yöntemleri
clientId(string $clientId) : this Gerekli Satıcının yani ödeme alıcısının e-posta adresi veya hesap kimliği.
amount(string $amount) : this Gerekli Fiyat bilgisi.
returnUrl
(
    string $notify,
    string $success,
    string $cancel = NULL
) : this
Gerekli Dönüş URL adresi
notify Ödeme işlemi doğrulama işlemlerinin gerçekleşeceği adres.
success Ödeme işleminin başarılı olması durumunda yönlendirileceği adres.
cancel Alıcının iptal işlemi gerçekleşmesi durumunda yönlendirileceği adres.
currency(string $currency = 'USD') : this
Ön tanımlı Ödemenin hangi para birimi ile gerçekleştirileceği. 
orderId(string $name) : this Gerekli değil Alınan ürünün adı. İster ürün adı istenirse sipariş numarası olarak kullanılabilir.
item
(
    string $name,
    string $number = NULL,
    string $amount = NULL,
    string $quantity = NULL
) : this
Gerekli değil Siparişe ait ürün veya ürünlerin bilgisi. Bu yöntemi birden fazla kez kullanarak farklı ürün bilgilerini de tanımlayabilirsiniz.
name(string $first, string $last)
Gerekli değil Alıcının adı soyadı bilgisi.
buyer(string $email, string $id) Gerekli değil Alıcının e-posta ve hesap kimliği.
seller(string $email, string $id) Gerekli değil Satıcının e-posta ve hesap kimliği.
locale(string $locale = 'US') Gerekli değil Ödeme işlemi için açılan sayfanın dil ayarı.
__call(string $key, string $value) Gerekli değil Listede olmayan PayPal değişkenlerini yöntem olarak kullanabilirsiniz. Örnek: ->item_name('Item Name')
send(string $type = 'paypal') Gerekli Eğer test ekranında çalışma yapılacaksa bu parametre test olarak ayarlanmalıdır.
Kullanılabilir Seçenekler paypal, test

Kullanımları

Dosya: Controllers/Pay.php
<?php namespace Project\Controllers;

use Gateway;

class Pay extends Controller
{
    public function main()
    {
        $paypal = Gateway::request('PayPal');

        echo $paypal->clientId('[email protected]')
                    ->amount('10.00')
                    ->returnUrl('Pay/notify', 'Pay/success', 'Pay/cancel')
                    ->send('test');
    }
}

 

 

# Response


Ödeme isteği gönderilen hangi sağlayıcı üzerinden sonuçların alınacağı belirtilir.

string $provider Ödeme işlemi sonucunun hangi sağlayıcı üzerinden alınacağıdır.
Desteklenen Sağlayıcılar Nestpay, PayPal
return object

Kullanımı 

$nestpay = Gateway::response('Nestpay');
Nestpay Yanıt Yöntemleri
isApproved() : bool İşlemin onaylanıp onaylanmadığını kontrol etmek için kullanılır.
error() : bool Ödeme işleminde herhangi bir hata oluşması durumunda hatanın içeriğini gösterir.
isValidHash() : bool Parametre şifrelemesinin doğru olup olmadığını kontrol eder.
is3D() : bool Ödeme isteğinin 3D ile yapılıp yapılmadığını kontrol eder.

Kullanımları

Dosya: Controllers/Pay.php
<?php namespace Project\Controllers;

use Gateway;

class Pay extends Controller
{
    public function response()
    {
        $nestpay = Gateway::response('Nestpay');

        if( $nestpay->isValidHash() && $nestpay->isApproved() )
        {
            echo 'İşlem başarılı.';
        }
        else
        {
            echo $nestpay->error();
        }
    }

    public function cancel()
    {
        # İptal sayfası
    }
}
PayPal Yanıt Yöntemleri
isApproved() : bool İşlemin onaylanıp onaylanmadığını kontrol etmek için kullanılır.
error() : bool Ödeme işleminde herhangi bir hata oluşması durumunda hatanın içeriğini gösterir.
isValidHash() : bool Parametre şifrelemesinin doğru olup olmadığını kontrol eder.

Kullanımları

Dosya: Controllers/Pay.php
<?php namespace Project\Controllers;

use Gateway;

class Pay extends Controller
{
    # Bu yöntem arkaplanda çalışır
    public function notify()
    {
        $paypal = Gateway::response('PayPal');

        if( $paypal->isValidHash() && $paypal->isApproved() )
        {
            # Gerçekleştirilecek işlemler
        }
    }

    public function success()
    {
        # Başarım sayfası
    }

    public function cancel()
    {
        # İptal sayfası
    }
}