alex290/yii2-sb-payment

俄罗斯联邦储蓄银行支付网关

安装: 141

依赖关系: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:yii2-extension

dev-master 2019-01-05 22:48 UTC

This package is auto-updated.

Last update: 2024-09-12 22:14:46 UTC


README

俄罗斯联邦储蓄银行支付网关

安装

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

运行以下命令之一:

php composer.phar require --prefer-dist alex290/yii2-sb-payment "*"

或添加

"alex290/yii2-sb-payment": "*"

到你的 composer.json 文件的 require 部分。

注册支付

<?php


use yii\helpers\Html;
use alex290\sbpayment\Payment;
use yii\helpers\Url;


$sbPayment = new Payment();
$sbPayment->userName = 'login-api'; // логин api мерчанта
$sbPayment->password = 'password'; // пароль api мерчанта
$sbPayment->orderNumber = 121; //Номер ордера в Вашем магазине

$sbPayment->returnUrl = Url::home(true).'/payment/success'; //Страница ваозврата после оплаты
$sbPayment->failUrl = Url::home(true).'/payment/fail'; //Страница неудачной оплаты

$sbPayment->amount = 4654; // Сумма в копейках


/**
 * Сервера
 * тестовый - 'https://3dsec.sberbank.ru/payment/rest/'
 * рабочий - 'https://securepayments.sberbank.ru/payment/rest/'
 */

$sbPayment->server = 'https://3dsec.sberbank.ru/payment/rest/';

$regOrder = $sbPayment->register(); //Отправка данных на сервер сбербанка и получение данных для отправки платежа

?>

创建用于支付的操作按钮

<?php if ($regOrder): ?>

<?= Html::a('Оплатить сумму', $regOrder['formUrl'], ['class' => 'btn btn-secondary', 'target'=> "_blank"]) ?>

<?php endif; ?>

支付后,页面将重定向到地址 payment/success?orderId=0c0f9700-7b0c-78f3-889b-713404b38c28&lang=ru

其中 orderId 是支付网关中的订单号。在网关内部是唯一的。

在这个页面上,我们在控制器中

<?php

namespace app\controllers;

use app\models\Order;
use Yii;

class PaymentController extends \yii\web\Controller
{
	public function actionSuccess()
	{
		$orderPayId = \Yii::$app->request->get('orderId');
		return $this->render('success', ['orderPayId' => $orderPayId]);
	}
    
    
	public function actionFail($param) 
	{
		
		return $this->render('fail');

	}
}

并在 success.php 视图中获取当前支付的全部信息

<?php


use yii\helpers\Html;
use alex290\sbpayment\Payment;


$this->title = 'Платеж завершён';

$sbPayment = new Payment();

$sbPayment->userName = 'login-api';
$sbPayment->password = 'password';

$getOrder = $sbPayment->getOrderInfo($orderPayId); //получем полную информацию о текущем платеже
?>