dicr/yii2-payparts

PrivatBank 为 Yii2 提供分期付款

安装: 62

依赖项: 0

建议者: 0

安全: 0

星标: 2

分支: 0

类型:yii2-extension

3.0.0 2022-01-05 03:16 UTC

This package is auto-updated.

Last update: 2024-09-05 06:23:04 UTC


README

文档

客户端以模块的形式实现,用于处理银行回调请求。

配置

在应用程序配置中设置分期付款模块。主要设置是 storeIdpassword

[
    '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();

如果没有安装银行回调通知处理程序,则可以通过额外请求获取付款状态

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

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

实际调用示例在测试中实现(tests 目录)。