https://github.com/dicrtarasov/yii2-payparts
Оплата частями ПриватБанк для Yii2
https://github.com/dicrtarasov/yii2-payparts
api dicr payparts php privatbank yii2
Last synced: 4 months ago
JSON representation
Оплата частями ПриватБанк для Yii2
- Host: GitHub
- URL: https://github.com/dicrtarasov/yii2-payparts
- Owner: dicrtarasov
- Created: 2020-07-12T18:28:31.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-07-31T17:35:43.000Z (almost 2 years ago)
- Last Synced: 2025-01-13T21:11:01.089Z (5 months ago)
- Topics: api, dicr, payparts, php, privatbank, yii2
- Language: PHP
- Homepage:
- Size: 2.14 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Клиент API ПриватБанк "Оплата частями"
Документация:
- основной API: https://api.privatbank.ua/#p24/partPaymentApi
- расширенный API: https://bw.gitbooks.io/api-oc/content/
- личный кабинет https://payparts2.privatbank.ua
- тестовые данные: https://bw.gitbooks.io/api-oc/content/testdata.htmlКлиент реализован в виде модуля, для обработки callback-запросов от банка.
### Конфигурация
В конфиге приложения настраиваем модуль оплаты частями. Основные настройки - это `storeId` и `password`.```php
[
'modules' => [
'payparts' => [
'class' => dicr\payparts\PayPartsModule::class,
'storeId' => '* мой storeId *',
'password' => '* мой password *',
// обработчик состояний платежей (опционально)
'callbackHandler' => static function(dicr\payparts\PayPartsResponse $response) {
Order::setPayed($response->orderId);
}
]
]
];
```### Пример создания платежа:
```php
/** @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-оповещений банка, то состояние платежа можно получить дополнительным запросом:
```php
// запрос состояния платежа
$request = $module->createStateRequest([
'orderId' => $orderId // номер заказа
]);// проверяем состояние платежа
$response = $request->send();
echo 'PaymentState: ' . $response->paymentState . "\n";
```Рабочий пример вызова реализован в тестах (директория tests).