Exemplo n.º 1
0
use Omnipay\Common\CreditCard;
use Omnipay\Omnipay;
use Silex\Application;
require __DIR__ . '/vendor/autoload.php';
// create basic Silex application
$app = new Application();
$app->register(new Silex\Provider\SessionServiceProvider());
$app->register(new Silex\Provider\TwigServiceProvider(), array('twig.path' => __DIR__ . '/views'));
// enable Silex debugging
$app['debug'] = true;
// set the basurl for all templates
$app->before(function () use($app) {
    // maybe a misnomer - getBaseUrl() seems to get a base *path*
    $app["twig"]->addGlobal('baseurl', $app['request']->getBaseUrl());
});
$allgate = Omnipay::register('Cardknox');
// root route
$app->get('/', function () use($app) {
    $gateways = array_map(function ($name) {
        return Omnipay::create($name);
    }, Omnipay::find());
    return $app['twig']->render('index.twig', array('gateways' => $gateways));
});
// gateway settings
$app->get('/gateways/{name}', function ($name) use($app) {
    $gateway = Omnipay::create($name);
    $sessionVar = 'omnipay.' . $gateway->getShortName();
    $gateway->initialize((array) $app['session']->get($sessionVar));
    return $app['twig']->render('gateway.twig', array('gateway' => $gateway, 'settings' => $gateway->getParameters()));
});
// save gateway settings