Payment gateway module for Omnipay: Yandex kassa (checkout)
forked from official for version compactable with actial Laravel",
yandexmoney-cms-omnipay3
ΠΠΎΠ΄ΡΠ»Ρ ΠΎΠΏΠ»Π°ΡΡ yandexmoney-omnipay Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠΌ Π―Π½Π΄Π΅ΠΊΡ.ΠΠ°ΡΡΠ° Π½Π° Π±Π°Π·Π΅ Omnipay., (*1)
ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ ΠΊΠ°ΠΊ ΡΡΠΈΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π»ΠΈΡΠΎ:
* ΠΠ°Π½ΠΊΠΎΠ²ΡΠΊΠΈΠ΅ ΠΊΠ°ΡΡΡ - Visa (Π²ΠΊΠ»ΡΡΠ°Ρ Electron), MasterCard ΠΈ Maestro Π»ΡΠ±ΠΎΠ³ΠΎ Π±Π°Π½ΠΊΠ° ΠΌΠΈΡΠ°
* ΠΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠ΅ Π΄Π΅Π½ΡΠ³ΠΈ - Π―Π½Π΄Π΅ΠΊΡ.ΠΠ΅Π½ΡΠ³ΠΈ ΠΈ WebMoney
* ΠΠ°Π»ΠΈΡΠ½ΡΠ΅ - ΠΠΎΠ»Π΅Π΅ 170 ΡΡΡΡΡ ΠΏΡΠ½ΠΊΡΠΎΠ² ΠΎΠΏΠ»Π°ΡΡ ΠΏΠΎ Π ΠΎΡΡΠΈΠΈ
* ΠΠ°Π»Π°Π½Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½Π° - ΠΠΈΠ»Π°ΠΉΠ½, ΠΠ΅Π³Π°Π€ΠΎΠ½ ΠΈ ΠΠ’Π‘
* ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ Π±Π°Π½ΠΊΠΈΠ½Π³ - ΠΠ»ΡΡΠ°-ΠΠ»ΠΈΠΊ, Π‘Π±Π΅ΡΠ±Π°Π½ΠΊ ΠΠ½Π»Π°ΠΉΠ½, ΠΡΠΎΠΌΡΠ²ΡΠ·ΡΠ±Π°Π½ΠΊ ΠΈ MasterPass, (*2)
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
ΡΠ΅ΠΊΠ°
ΠΡΠ»ΠΈ Π²Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π»ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠ΅ΠΊΠΎΠ² Π² Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ² Π―Π½Π΄Π΅ΠΊΡ.ΠΠ°ΡΡΡ (ΠΏΠΎ 54-Π€Π), Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π°Π΄ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΡΠ΅ΠΊΠ°.
ΠΠΎΠΌΠΎΡΡ ΠΠ°ΡΡΡ: ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠ΅ΠΊΠΎΠ² ΠΏΠΎ 54-Π€Π, (*3)
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Omnipay:
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΡΠ΅Π· Composer Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:, (*4)
#composer require yandexmoney/omnipay
composer require bagart/omnipay3-yandexkassa
ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π² ΡΠ°ΠΉΠ» composer.json
ΠΏΠ°ΠΊΠ΅ΡΠ° bagart/omnipay3-yandexkassa
Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:, (*5)
composer update
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ°Π³ΠΎΠ²:, (*6)
-
ΠΠ²ΡΠΎΠ·Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ², (*7)
require_once (__DIR__.'/vendor/autoload.php');
-
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Omnipay/Omnipay, (*8)
use Omnipay\Omnipay;
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΏΠ»Π°ΡΠ΅ΠΆΠ΅ΠΉ:
- Π½Π° ΠΊΠΎΡΠ΅Π»Π΅ΠΊ Π―Π½Π΄Π΅ΠΊΡ.ΠΠ΅Π½ΡΠ³ΠΈ:
```
$gateway = Omnipay::create('\yandexmoney\YandexMoney\GatewayIndividual');
//use yandexmoney\YandexMoney\GatewayIndividual as YandexMoneyGateway
//$gateway = Omnipay::create('\'.YandexMoneyGateway::class),
//$gateway = new YandexMoneyGateway(),, (*9)
$gateway->setAccount([Π½ΠΎΠΌΠ΅ΡΠΊΠΎΡΠ΅Π»ΡΠΊΠ°]);
$gateway->setLabel([Π½ΠΎΠΌΠ΅ΡΠ·Π°ΠΊΠ°Π·Π°]);
$gateway->setPassword([ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ΡΠ»ΠΎΠ²ΠΎ]);
$gateway->setOrderId([Π½ΠΎΠΌΠ΅ΡΠ·Π°ΠΊΠ°Π·Π°]);
$gateway->setMethod([ΡΠΈΠΏΠΎΠΏΠ»Π°ΡΡ_PCΠΈΠ»ΠΈAC]);
$gateway->setReturnUrl([Π°Π΄ΡΠ΅ΡΡΡΡΠ°Π½ΠΈΡΡΡΡΠΏΠ΅Ρ
Π°]);
$gateway->setCancelUrl([Π°Π΄ΡΠ΅ΡΡΡΡΠ°Π½ΠΈΡΡ_ΠΎΡΠΊΠ°Π·Π°]);
* ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠ²ΠΈΡ Π―Π½Π΄Π΅ΠΊΡ.ΠΠ°ΡΡΠ°:
$gateway = Omnipay::create('\yandexmoney\YandexMoney\Gateway');
//use yandexmoney\YandexMoney\Gateway as YandexCheckoutGateway
//$gateway = Omnipay::create('\'.YandexCheckoutGateway::class),
//$gateway = new YandexCheckoutGateway,, (*10)
$gateway->setShopId([ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΌΠ°Π³Π°Π·ΠΈΠ½Π°]);
$gateway->setScid([Π½ΠΎΠΌΠ΅ΡΠ²ΠΈΡΡΠΈΠ½ΡΠΌΠ°Π³Π°Π·ΠΈΠ½Π°]);
$gateway->setCustomerNumber([ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΏΠ»Π°ΡΠ΅Π»ΡΡΠΈΠΊΠ°]);
$gateway->setOrderNumber([Π½ΠΎΠΌΠ΅ΡΠ·Π°ΠΊΠ°Π·Π°]);
$gateway->setOrderId([Π½ΠΎΠΌΠ΅ΡΠ·Π°ΠΊΠ°Π·Π°]);
$gateway->setMethod([ΡΠΈΠΏΠΎΠΏΠ»Π°ΡΡ]);
$gateway->setReturnUrl([Π°Π΄ΡΠ΅ΡΡΡΡΠ°Π½ΠΈΡΡΡΡΠΏΠ΅Ρ
Π°]);
$gateway->setCancelUrl([Π°Π΄ΡΠ΅ΡΡΡΡΠ°Π½ΠΈΡΡ_ΠΎΡΠΊΠ°Π·Π°]);
5. ΠΡΠΏΡΠ°Π²ΠΊΠΎΠΉ Π·Π°ΠΏΡΠΎΡΠ°
* Π½Π° ΠΊΠΎΡΠ΅Π»Π΅ΠΊ Π―Π½Π΄Π΅ΠΊΡ.ΠΠ΅Π½ΡΠ³ΠΈ:
$response = $gateway->purchase(['amount' => '1.00', 'currency' => 'RUB', 'testMode' => true, 'FormComment'=>'test'])->send();
* ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠ²ΠΈΡ Π―Π½Π΄Π΅ΠΊΡ.ΠΠ°ΡΡΠ°:
$response = $gateway->purchase(['amount' => '1.00', 'currency' => 'RUB', 'testMode' => true])->send();
```
6. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΎΡΠ²Π΅ΡΠ°, (*11)
if ($response->isSuccessful()) {
print_r($response);
} elseif ($response->isRedirect()) {
$response->redirect();
} else {
echo $response->getMessage();
}
ΠΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΡΠΉ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ.
ΠΡΠ±ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈ Π±Π΅Π·ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ½ΡΡΠΈΠ΅ ΠΠ°ΠΌΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ https://money.yandex.ru/doc.xml?id=527132 (Π΄Π°Π»Π΅Π΅ β Β«ΠΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΡΠΉ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΒ»).
ΠΡΠ»ΠΈ ΠΡ Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΠΈΡΠ΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ° Π² ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΎΠ±ΡΡΠΌΠ΅, ΠΡ Π½Π΅ ΠΈΠΌΠ΅Π΅ΡΠ΅ ΠΏΡΠ°Π²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ ΡΠ΅Π»ΡΡ
., (*12)
ΠΠ°ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ ΠΈΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ?
ΠΠΈΡΠΈΡΠ΅ Π½Π°ΠΌ cms@yamoney.ru
ΠΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ:
* Π£ΠΊΠ°Π·Π°ΡΡ Π²Π΅ΡΡΠΈΡ Omnipay
* Π£ΠΊΠ°Π·Π°ΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΠ»Π°ΡΠ΅ΠΆΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ
* ΠΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅
* ΠΡΠΈΠ»ΠΎΠΆΠΈΡΡ ΡΠ½ΠΈΠΌΠΎΠΊ ΡΠΊΡΠ°Π½Π° (Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎΡΡΠΈ), (*13)