edofre / yii2-omnikassa

适用于Rabobank omnikassa支付的Yii2组件

安装: 31

依赖关系: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

类型:yii2-extension

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

This package is not auto-updated.

Last update: 2024-09-14 19:04:00 UTC


README

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

安装

安装此扩展的首选方式是通过 composer.

要安装,请运行

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

或者将以下内容添加到您的 composer.json 文件的 require 部分:

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

to the require section of your composer.json file.

用法

将组件添加到配置中,以下配置是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',
		],
		...
	],
	...
];

创建PaymentRequest对象并创建表单

$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>

创建您在PaymentRequest中指定的控制器动作并处理请求

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);
}

不要忘记为这个动作禁用CSRF保护,因为它是一个外部动作

public function beforeAction($action)
{
	if ($action->id == 'return') {
		$this->enableCsrfValidation = false;
	}

	return parent::beforeAction($action);
}