Git Product home page Git Product logo

yii2-payparts's Introduction

Клиент API ПриватБанк "Оплата частями"

Документация:

Клиент реализован в виде модуля, для обработки callback-запросов от банка.

Конфигурация

В конфиге приложения настраиваем модуль оплаты частями. Основные настройки - это storeId и password.

[
    'modules' => [
        'payparts' => [
            'class' => dicr\payparts\PayPartsModule::class,
            'storeId' => '* мой storeId *',
            'password' => '* мой password *',
            // обработчик состояний платежей (опционально)
            'callbackHandler' => static function(dicr\payparts\PayPartsResponse $response) {
                Order::setPayed($response->orderId);
            }
        ]
    ]
];

Пример создания платежа:

/** @var PayPartsModule $module получаем модуль оплат */
$module = Yii::$app->getModule('payparts');

// запрос на создание платежа
$request = $module->paymentRequest([
    'orderId' => $orderId,                        // номер заказа в интернет-магазине
    'merchantType' => PayParts::MERCHANT_TYPE_PP, // сервис "оплата частями"
    'partsCount' => 2,                            // кол-во частей
    'products' => [                               // список товаров
        ['name' => 'Рулон бумаги', 'price' => 0.01, 'count' => 2],
        ['name' => 'Автомобиль', 'price' => 123, 'count' => 1],
        ['name' => 'Талоны на Интернет', 'price' => 123.123, 'count' => 3]
    ]
]);

// отправляем запрос и получаем токен
$response = $request->send();

echo 'Token: ' . $response->token . "\n";
echo 'Redirect URL: ' . $response->paymentUrl . "\n";

// переадресация покупателя на страницу оплаты
$response->redirectCheckout();

Если не установлен обработчик callback-оповещений банка, то состояние платежа можно получить дополнительным запросом:

// запрос состояния платежа
$request = $module->createStateRequest([
   'orderId' => $orderId     // номер заказа 
]);

// проверяем состояние платежа
$response = $request->send();
echo 'PaymentState: ' . $response->paymentState . "\n";

Рабочий пример вызова реализован в тестах (директория tests).

yii2-payparts's People

Contributors

dicrtarasov avatar

Stargazers

 avatar

Watchers

 avatar  avatar

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.