edofre/yii2-omnikassa

Yii2 component for Rabobank omnikassa payments

Installs: 32

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 2

Forks: 0

Open Issues: 0

Type:yii2-extension

V1.0.5 2016-12-24 10:19 UTC

This package is not auto-updated.

Last update: 2024-11-09 19:47:59 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License composer.lock

Installation

The preferred way to install this extension is through composer.

To install, either run

$ php composer.phar require edofre/yii2-omnikassa "V1.0.5"

or add

"edofre/yii2-omnikassa": "V1.0.5"

to the require section of your composer.json file.

Usage

Add the components to the configuration, the following configuration is the test environment for omnikassa

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, // Amount in cents, 12345 = 123,45
	'orderId'              => 'your-order-id',
	'normalReturnUrl'      => \yii\helpers\Url::to(['site/return'], true),
	'transactionReference' => "your-transaction-reference",
]);
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);
}