ΠΠ»ΠΈΠ΅Π½Ρ 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.
[
'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).
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.