Geliştirici Merkezi

TR

Subscription Yöntemi

Bir müşteri bu yöntemi seçtiğinde, sepetinde bulunan ne kadar periyodik ürün/hizmet varsa otomatik yenileme özelliği için etkinleştirilmiş olacaktır.

"Subscription" yöntemi "Third Party" ve "Merchant" yöntemleri ile aynı çalışmaktadır. Ek olarak sepetteki her bir öge için abonelik kimliği tanımlanmaktadır.

Abonelik Kimliği Atamak

Aşağıda belirtilen örnek kodu "capture", "area" , "callback" işlevlerinde kullanabilirsiniz. Abonelik kimliği, “Yönetim Paneli > Ürün/Hizmet Detay” sayfasında görünecektir.

if($items = $this->subscribable_items())
{
    $subscribed = [];
    foreach($items AS $item)
        $subscribed[$item['identifier']] = 'Here Subscription ID';
    if($subscribed) $this->set_subscribed_items($subscribed);
}

"subscribable_items" işlevinden dönen değer bir dizi döngüsüdür. Parametreler aşağıda belirlenmiştir:

İsim Türü Açıklama
identifier string Abonelik kimliği tanımlanabilmesi için gereklidir.
product_type string Ürünün türü (şunlar olabilir: 'hosting', 'server' , 'domain', 'software', 'special', 'sms')
product_id integer Ürünün numarası
period string Seçili periyodun türü (şunlar olabilir: 'hour','day','week','month','year')
period_time integer Seçili periyodun zamanı
name string Ürünün adı
amount float Ürünün vergisiz ücreti
tax_included float Ürünün vergi dahil ücreti
tax_exempt integer Ürünün vergi muafiyeti varsa "1" değilse "0"
tax_rate integer Vergi oranı
currency integer Para birimi, "$this->currency()" işlevini kullanarak para birimi koduna dönüştürebilirsiniz.

"set_subscribed_items"işlevi ile satın alınan hizmetlere abonelik kimliği tanımlanır. Gönderilecek parametre bir dizi olmalıdır. Dizinin anahtar değerine "subscribable_items" işlevinden geri dönen dizi döngüsünde elde ettiğiniz "identifier" değerini tanımlayın. Daha sonra dizinin değerine ödeme hizmeti sağlayıcısından elde ettiğiniz "abone kimlik numarasını" tanımlayın.

Değişkenler

Aşağıda belirtilen parametreler "get_subscription" , "cancel_subscription" , "change_subscription_fee" , "capture_subscription", işlevlerinde kullanılmaktadır.

İsim Türü Açıklama
id integer Abone ID, veritabanı kimlik numarasıdır
user_id integer Müşterinin ID numarası
items array "subscribable_items" işlevinden elde edilen bilgiler
status string Aboneliğin durumu, olabilecek değerler: (approved, active, suspended, cancelled, expired)
status_msg string Aboneliğin durumu ile alakalı var ise mesaj
identifier string Aboneliğin tanımlayıcı kimlik numarası
currency integer Para Birimi, "$this->currency()" işlevini kullanarak para birimi koduna dönüştürebilirsiniz.
first_paid_fee float İlk ödenen ücret
last_paid_fee float Son ödenen ücret
next_payable_fee float Sonraki ödenecek ücret
last_paid_date string En son ödenen tarih, format: YYYY-MM-DD HH:ii:ss
next_payable_date string Sonraki ödenecek tarih, format: YYYY-MM-DD HH:ii:ss
created_at String İlk ödenen tarih, format: YYYY-MM-DD HH:ii:ss

Abonelik Durumu

Aboneliğin durumu, tarihi ve ödenen tutar hakkında güncel bilgi edinmek için "get_subscription" işlevi kullanılır. Eğer bir hizmete abonelik kimliği tanımlanmışsa, işlevin kullanılması zorunludur.

Örnek
public function get_subscription($params=[])
{
    $sub_id             = $params["identifier"];

    /*
     * From here, you can send an API command to the payment service provider and report the status of the subscription according to the response you receive.
     */

    return [
        'status'            => 'active',
        'status_msg'        => '',
        'first_paid'        => [
            'time'              => '2021-07-01 13:00:00',
            'fee'               => [
                'amount'    => 15,
                'currency'  => 'USD',
            ],
        ],
        'last_paid'         => [
            'time'          => '2021-08-01 13:00:00',
            'fee'           => [
                'amount'    => 15,
                'currency'  => 'USD',
            ],
        ],
        'next_payable'      => [
            'time'              => '2021-09-01 13:00:00',
            'fee'               => [
                'amount'            => 15,
                'currency'          => 'USD',
            ],
        ],
        'failed_payments'   => 0,
    ];

}
Yanıt

"get_subscription" işlevinden geri döndürülmesi gereken parametreler aşağıda açıklanmıştır:

İsim Türü Açıklama
status string Aboneliğin durumu, olabilecek değerler: (approved, active, suspended, cancelled, expired)
status_msg string Aboneliğin durumu ile alakalı var ise mesaj
first_paid array Aboneliğin ilk başlama tarihi ve ücreti
first_paid -> time string İlk ödenen tarih, format: YYYY-MM-DD HH:ii:ss
first_paid -> fee float İlk ödenen ücret
last_paid array Aboneliğin en son ödenme tarihi ve tutarı
last_paid -> time string En son ödenen tarih, format: YYYY-MM-DD HH:ii:ss
last_paid -> fee float En son ödenen ücret
next_payable array Sonraki ödeme tarihi ve ücreti
next_payable -> time string Sonraki ödenecek tarih, format: YYYY-MM-DD HH:ii:ss
next_payable -> fee float Sonraki ödenecek ücret
Failed_payments integer Başarısız ödeme sayısı

Ödeme Tahsil Etmek

Eğer ödeme hizmeti sağlayıcınız ödeme tahsil etme özelliğini destekliyorsa, gününde ödenmeyen abonelikleri "capture_subscription" işlevi sayesinde tetikleyebilir ve hemen ödeme işlemi yürütebilirsiniz.

Örnek

İşleve gönderilen parametreler yukarıdaki "Değişkenler" bölümüne açıklanmıştır.

public function capture_subscription($params=[])
{
    $sub_id     = $params["identifier"];
    $amount     = $params["next_payable_fee"];
    $curr       = $params["currency"];

    $request_fields        = [
        'note'          => 'pay the remaining balance',
        'currency'      => $this->currency($curr),
        'amount'        => $amount,
    ];

    $request            = "failed";

    if($request == "failed")
    {
        $this->error = 'Payment cannot be captured.';
        return false;
    }

    return true;
}
Yanıt

Geri döndürülmesi gereken yanıt bir "boolean" olmalıdır.

Abonelik Ücreti Güncelleme

Eğer ödeme hizmeti sağlayıcınız abonelik ücretini güncellemeyi destekliyorsa, "change_subscription_fee" işlevini kullanabilirsiniz.

Ürünlere uygulanan ücret değişiklikleri ve döviz kurundaki değişikliklerden dolayı aboneliğin ücret bilgisi bu işlev sayesinde güncellenebilmektedir.

Abonelikteki her bir "öğe/kalem" için işlev çalıştırılmaktadır.

Örnek

$params > değişken içeriği Değişkenler başlığında açıklanmıştır. (array)
$value > tutar bilgisi (float)
$currency > para birimi kimliği (int)

public function change_subscription_fee($params=[],$value = 0,$currency=0)
{
    $sub_id     = $params["identifier"];

    $request_fields    = [
        'sub_id'        => $sub_id,
        'amount'        => $value,
        'currency'      => $this->currency($currency),
    ];

    $request            = 'failed';

    if($request == 'failed')
    {
        $this->error = 'The subscription fee cannot change.';
        return false;
    }

    return true;
}
Yanıt

Geri döndürülmesi gereken yanıt bir "boolean" veri türü olmalıdır.

Abonelik İptali

Aboneliğin iptal edilmesi durumunda "cancel_subscription" işlevi tetiklenmektedir.

Örnek

İşleve gönderilen parametreler yukarıdaki "Değişkenler" bölümüne açıklanmıştır.

public function cancel_subscription($params=[])
{
    $sub_id = $params["identifier"];

    /*
     * From here you can send an API command to the payment service provider and, based on the response you receive, report the subscription cancellation.
     */
    $request = 'CRITICAL ERROR';

    if($request == 'CRITICAL ERROR')
    {
        $this->error = 'Subscription cannot be cancelled.';
        return false;
    }
    return true;
}
Yanıt

Geri döndürülmesi gereken yanıt bir "boolean" veri türü olmalıdır.

Tokenized Yöntemi Kart No Doğrulama (BIN Check)

Bir Sorunuz mu Var?

Bize yazmaktan çekinmeyin. En kısa sürede yanıt göndereceğiz.
Bize Ulaşın.
Copyright © 2024. All Rights Reserved.
Join Our Discord Channel
Top