Skip to content

Latest commit

 

History

History
85 lines (70 loc) · 2.39 KB

CUSTOM-QUERY-EXAMPLE.md

File metadata and controls

85 lines (70 loc) · 2.39 KB

Custom Query

Kütüphanenin desteği olmadığı özel istekleri bu methodla yapabilirsiniz.

$ cp ./vendor/mews/pos/config/pos_test.php ./pos_test_ayarlar.php

config.php (Ayar dosyası)

<?php
require './vendor/autoload.php';

// API kullanıcı bilgileri
// AccountFactory'de kullanılacak method Gateway'e göre değişir!!!
// /examples altındaki _config.php dosyalara bakınız
// (örn: /examples/tosla/regular/_config.php)
$account = \Mews\Pos\Factory\AccountFactory::createToslaPosAccount(
    'tosla',
    '424342224432',
    'POS_rwrwwrwr',
    'POS_4343223',
);
$eventDispatcher = new \Symfony\Component\EventDispatcher\EventDispatcher();

try {
    $config = require __DIR__.'/pos_test_ayarlar.php';

    $pos = \Mews\Pos\Factory\PosFactory::createPosGateway($account, $config, $eventDispatcher);

    // GarantiPos'u test ortamda test edebilmek için zorunlu.
    $pos->setTestMode(true);
} catch (\Mews\Pos\Exceptions\BankNotFoundException | \Mews\Pos\Exceptions\BankClassNullException $e) {
    var_dump($e));
    exit;
}

custom_query.php

<?php

require 'config.php';

/**
 * requestData içinde API hesap bilgileri, hash verisi ve bazi sabit değerler
 * eğer zaten bulunmuyorsa kütüphane otomatik ekler.
 */
$requestData = [
    'bin' => 415956,
];

/** @var \Symfony\Component\EventDispatcher\EventDispatcher $eventDispatcher */
$eventDispatcher->addListener(\Mews\Pos\Event\RequestDataPreparedEvent::class, function (\Mews\Pos\Event\RequestDataPreparedEvent $event) {
//    dump($event->getRequestData()); //bankaya gonderilecek veri:
//
//    // Burda istek banka API'na gonderilmeden once gonderilecek veriyi degistirebilirsiniz.
//    // Ornek:
//    if ($event->getTxType() === PosInterface::TX_TYPE_CUSTOM_QUERY) {
//        $data         = $event->getRequestData();
//        $data['abcd'] = '1234';
//        $event->setRequestData($data);
//    }
});

try {
    $pos->customQuery(
        $requestData,

        // URL optional, bazı gateway'lerde zorunlu.
        // Default olarak configdeki query_api ya da payment_api kullanılır.
        'https://prepentegrasyon.tosla.com/api/Payment/GetCommissionAndInstallmentInfo'
    );
} catch (Exception $e) {
    dd($e);
}

/**
 * Bankadan dönen cevap array'e dönüştürülür,
 * ancak diğer transaction'larda olduğu gibi mapping/normalization yapılmaz.
 */
$response = $pos->getResponse();
var_dump($response);