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