Geliştirici Merkezi

TR

Merchant Yöntemi

Bir müşterinin WISECP'den ayrılmadan kredi kartı bilgilerini girdiği yerdir. Süreçler arka planda işlenir.  Kullanıcınız 3D güvenlik doğrulaması için sitenizden ayrılabilir veya bir popup görebilir. 

"Merchant" yöntemine göre modül oluşturmak için aşağıdaki adımları takip ediniz.

Modülde bulunan sınıf içerisine "capture" adında bir fonksiyon tanımlayın. Bu fonksiyonun kullanım amacı müşteriden temin edilen kredi kartı bilgilerini "capture" fonksiyonuna aktarmaktır. Genellikle ödeme hizmeti sağlayıcısına "HTTP/cURL" isteği göndererek gelen cevaba göre ödemeyi onaylamak için kullanılır.

Eğer ödeme hizmeti sağlayıcınız "3D Secure" ile ödemeyi destekliyorsa, "3D Secure" dokümana göz atınız.

Eğer ödeme hizmeti sağlayıcınız, ödeme iade etme özelliğini destekliyorsa, "İade" dokümanına göz atınız.

Değişkenler

Aşağıda belirtilen tüm değişkenler, "capture" fonksiyonuna iletilmektedir.

İsim Türü Açıklama
checkout_id integer Ödeme için benzersiz kimlik numarası (ör. 1234567)
amount float Ödenecek tutar bilgisi
currency integer Para birimi kodu (ör. USD,EUR, gibi.)
installment integer Kaç taksit talep edildiği
holder_name string Kart üzerindeki isim
type string Kart türü (Ör. VISA,MASTERCARD gibi.)
num integer 16 haneli kart numarası
expiry_m integer Kartın son kullanma tarihindeki ay bilgisi. (ör. 07)
expiry_y integer Kartının son kullanma tarihindeki yıl bilgisi. (ör. 22)
cvc integer Kartının arkasındaki güvenlik kodu
clientInfo object Müşteri bilgilerinin bulunduğu bir "object" değişkendir.
clientInfo -> id integer ID No
clientInfo -> name string Adı
clientInfo -> surname string Soyadı
clientInfo -> full_name string Tam Adı
clientInfo -> email string E-Posta Adresi
clientInfo -> gsm_cc integer GSM telefon ülke kodu (ör. 1,44,90 vb.)
clientInfo -> gsm integer GSM telefon numarası (ülke kodu olmadan)
clientInfo -> phone İnteger GSM telefon numarası (ülke kodu dahil)
clientInfo -> lang string Kullanılan dil (ör. en,fr,de, vb.)
clientInfo -> kind string Hesap türü (ör. individual, corporate)
clientInfo -> company_name String Firma ünvanı
clientInfo -> company_tax_number String Firma vergi numarası
clientInfo -> company_tax_office String Fimra vergi dairesi
clientInfo -> address > country_code string Seçilen adresin ülke kodu (ör. US,UK,DE, vb.)
clientInfo -> address > country_name String Seçilen adresin ülke adı
clientInfo -> address > city String Seçilen adresin şehir adı
clientInfo -> address > counti String Seçilen adresin ilçe adı
clientInfo -> address > zipcode String Seçilen adresin posta kodu
clientInfo -> address > address String Seçilen adresin ayrıntıları (Ör. x street, building no: 2254, vb.)

Sistem Değişkenleri

 $this->config["settings"]["...your_field..."] # Custom configuration field
 $this->name                   # Module Name
 $this->lang["invoice-name"]   # Module Display Name
 $this->url                    # Module Directory URL Address
 $this->dir                    # Module Directory Path (eg. /coremio/modules/Payment/SamplePay/)
 $this->lang["example"]        # Calling a field from a language file
 APP_URI                       # Website URL Address
 $this->links["successful"]    # Payment successful page link
 $this->links["failed"]        # Payment failed page link
 $this->links["callback"]      # Callback link

Yanıt

Fonksiyonun geri dönüş değeri bir "dizi" olmalı ve aşağıdaki değerleri döndürmelidir.

İsim Türü Zorunlu Açıklama
status string Evet Ödemenin durumu aşağıdakileri içerebilir:
successful : Ödemenin başarılı olduğunu belirtir.
pending: Ödemenin "bekleniyor" olduğunu belirtir.
output: Kart bilgilerinin girildiği alanı temizler ve "output" indisi içerisindeki veriyi yazdırır.
redirect: Sayfadan ayrılıp belirtilen URL'ye yönlendirir. (Genelde "3D Secure" süreci için kullanılır. Bu işlemde "callback" yöntemini de kullanmanız gerekir.)
error: ödemenin başarısız olduğunu belirtir.
redirect string Hayır Eğer status değeri "redirect" olarak belirlendiyse, bu alana bir URL adresi girmek zorunludur. Müşteri "Ödeme Yap" düğmesine tıklaıktan sonra, burada belirlenen URL adresine yönlendirilecektir.
message string veya array Hayır Yöneticiye ödeme hakkında bilgi vermeniz gereken herhangi bir durum olduğunda kullanılır. (Ör: Ödemenin takibi ile alakalı numara) Kabul edilebilir değer:" array" ve "string"
output String Hayır Eğer status değeri "output" olarak tanımlanırsa, bu indisin içerisindeki veri kredi kartı bilgisi girme alanının yerine yansıtılır.
paid Array Hayır Ödenen tutarın bilgisi  [amount] , [currency]
paid [amount] Float Evet Ödenen tutarın miktarı
paid[currency] String Evet Ödenen tutarın para birimi. Ör: USD,EUR,GBP,TRY

Örnek

Aşağıdaki örnekte bir URL adresine cURL kütüphanesi kullanarak "HTTP/POST" isteği gönderilmektedir. İsteğin gönderilmesinden sonra, gelen yanıt "JSON" çıktısı içermektedir.

public function capture($params=[])
{
    $api_key            = $this->config["settings"]["example1"] ?? 'N/A';
    $secret_key         = $this->config["settings"]["example2"] ?? 'N/A';
    $fields             = [
        'client' => [
            'first_name'    => $params["clientInfo"]->name,
            'last_name'     => $params["clientInfo"]->surname,
            'email'         => $params["clientInfo"]->email,
            'address'       => [
                'country'       => $params["clientInfo"]->address->country_code,
                'city'          => $params["clientInfo"]->address->city,
                'state'         => $params["clientInfo"]->address->counti,
                'postcode'      => $params["clientInfo"]->address->zipcode,
                'detail'        => $params["clientInfo"]->address->address,
            ],
        ],
        'card'              => [
            'card_number'        => $params['num'],
            'card_holder_name'   => $params['holder_name'],
            'card_expiry'        => $params['expiry_m']."-".$params['expiry_y'],
            'card_cvc'           => $params['cvc'],
        ],
        'amount'                => $params['amount'],
        'currency'              => $this->currency($params['currency']),
        'custom_id'             => $params["checkout_id"],
    ];

    // Here we are making an API call.
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, "api.sample.com/checkout/capture");
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array(
        'APIKEY: '.$api_key,
        'SECRET: '.$secret_key,
        'Content-Type: application/json',
    ));
    curl_setopt($curl,CURLOPT_POST,1);
    curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($fields));
    $result = curl_exec($curl);
    if(curl_errno($curl))
    {
        return [
            'status' => 'error',
            'message' => curl_error($curl)
        ];
    }
    $result             = json_decode($result,true);

    if($result && $result['status'] == 'success')
        return [
            'status' => 'successful',
            'message' => ['Merchant Transaction ID' => $result['transaction_id']],
        ];
    else
        return [
            'status'            => 'error',
            'message'           => $result['error_message'] ?? '!API ERROR!',
        ];

}
Third Party Yöntemi Tokenized Yöntemi

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