dicr/yii2-payparts ΠžΠΏΠ»Π°Ρ‚Π° частями ΠΎΡ‚ ΠŸΡ€ΠΈΠ²Π°Ρ‚Π‘Π°Π½ΠΊ для Yii2

ΠšΠ»ΠΈΠ΅Π½Ρ‚ 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).

0 0
1 follower
71 downloads
Yii Version: 2.0
License: MIT
Category: Others
Developed by: Igor Tarasov Igor Tarasov
Created on: Nov 19, 2020
Last updated: (not set)
Packagist Profile
Code Repository

Related Extensions