Giter Site home page Giter Site logo

joejoker77 / yii2-alfabank-pay Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pantera-digital/yii2-alfabank-pay

0.0 1.0 0.0 8 KB

Модуль позволяет организовать прием платежей через шлюз Альфа банка на вашем yii2-проекте.

PHP 100.00%

yii2-alfabank-pay's Introduction

yii2-alfabank-pay

Установка через композер

composer require pantera-digital/yii2-alfabank-pay "@dev"

Запустить миграции

php yii migrate --migrationPath=@pantera/yii2/pay/alfabank/migrations

Настройка, добавить в config/main.php

'bootstrap' => ['alfabank'],
'modules' => [
    'alfabank' => [
        'class' => pantera\yii2\pay\alfabank\Module::class,
        'components' => [
            'sberbank' => [
                'class' => pantera\yii2\pay\alfabank\components\Alfabank::class,
                
                // время жизни инвойса в секундах (по умолчанию 20 минут - см. документацию Альфабанка)
                // в этом примере мы ставим время 1 неделю, т.е. в течение этого времени покупатель может
                // произвести оплату по выданной ему ссылке
                'sessionTimeoutSecs' => 60 * 60 * 24 * 7,
                
                // логин api мерчанта
                'login' => 'ваш логин',
                
                // пароль api мерчанта
                'password' => 'ваш пароль',
            ],
        ],
        
        // страница вашего сайта с информацией об успешной оплате
        'successUrl' => '/paySuccess',
        
        // страница вашего сайта с информацией о НЕуспешной оплате
        'failUrl' => '/payFail',
        
        // обработчик, вызываемый по факту успешной оплаты
        'successCallback' => function($invoice){
            // какая-то ваша логика, например
            $order = \your\models\Order::findOne($invoice->order_id);
            $client = $order->getClient();
            $client->sendEmail('Зачислена оплата по вашему заказу №' . $order->id);
            // .. и т.д.
        }
    ],
]

Создание заказа

В вашем контроллере после сохранения заказа, либо на событие создания заказа вам необходимо создать инвойс, передав в него номер и сумму вашего заказа:

// ...здесь какая-то ваша логика по сохранению заказа, например это объект $order

// создаем и сохраняем инвойс, передаем в него номер и сумму вашего заказа
$invoice = \pantera\yii2\pay\alfabank\models\Invoice::addAlfabank($order->id, $order->price);

Далее для перенаправления пользователя на шлюз оплаты Альфабанка вам нужно выдать пользователю ссылку (либо автоматически перенаправить его) на url:

\yii\helpers\Html::a('Оплатить заказ', ['/alfabank/default/create', 'id' => $invoice->id /* id инвойса */])

При этом при переходе пользователя по этой ссылке (либо автоматическом перенаправлении) будет произведено обращение к API альфабанка для создания инвойса у них в системе, и перенаправление уже на платежную форму Альфабанка.

После успешной оплаты на шлюзе Альфабанка пользователь будет преренаправлен на yoursite.com/paySuccess. В случае неуспешной оплаты пользователь будет преренаправлен на yoursite.com/payFail. paySuccess и payFail задаются в настройках модуля, см. пример конфигурации.

Статусы инвойсов

I - initial, инвойс создан
S - success, успешно оплачен

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.