omnikassa Yii2 components for Rabobank omnikassa payments

Yii2 omnikassa component

  1. Full code @ github
  2. Installation
  3. Usage

Full code @ github

Installation

The preferred way to install this extension is through composer.

To install, either run

$ php composer.phar require edofre/yii2-omnikassa "@dev"

or add

"edofre/yii2-omnikassa": "@dev"

to the `require` section of your composer.json file.

Usage

Add the components to the configuration
return [
	...
	'components'          => [
		'omniKassa'    => [
			'class'                => '\edofre\omnikassa\OmniKassa',
			'automaticResponse'    => false,
			'currencyCode'         => '978',
			'interfaceVersion'     => 'HP_1.0',
			'keyVersion'           => '1',
			'merchantId'           => '002020000000001',
			'paymentMeanBrandList' => 'IDEAL,VISA,MASTERCARD,MAESTRO',
			'secretKey'            => '002020000000001_KEY1',
			'testMode'             => true,
			'url'                  => 'https://payment-webinit.simu.omnikassa.rabobank.nl/paymentServlet',
		],
		...
	],
	...
];
Create the PaymentRequest object and create a form
$paymentRequest = new \edofre\omnikassa\PaymentRequest([
	'amount'               => 12354,
	'orderId'              => '123456789',
	'normalReturnUrl'      => \yii\helpers\Url::to(['site/return'], true),
	'transactionReference' => uniqid(),
]);
Yii::$app->omniKassa->prepareRequest($paymentRequest)

<form method="post" action="<?= Yii::$app->omniKassa->url ?>">
	<input type="hidden" name="Data" value="<?= Yii::$app->omniKassa->dataField ?>">
	<input type="hidden" name="InterfaceVersion" value="<?= Yii::$app->omniKassa->interfaceVersion ?>">
	<input type="hidden" name="Seal" value="<?= Yii::$app->omniKassa->seal ?>">
	<?= \yii\helpers\Html::submitButton('Click here to make your payment', ['class' => 'btn btn-success']) ?>
</form>
Create the controller action you specified in the PaymentRequest and process the request
public function actionReturn()
{
	$response = Yii::$app->omniKassa->processRequest();

	var_dump($response->attributes);
	var_dump('Pending', $response->isPending);
	var_dump('Successful', $response->isSuccessful);
	var_dump('Failure', $response->isFailure);
}
Don't forgot to disable CSRF protection for this action as it is an external action
public function beforeAction($action)
{
	if ($action->id == 'return') {
		$this->enableCsrfValidation = false;
	}

	return parent::beforeAction($action);
}
1 0
1 follower
0 downloads
Yii Version: 2.0
License: MIT
Category: Others
Developed by: EdoFre
Created on: Feb 28, 2016
Last updated: 8 years ago