PHP SDK Π΄Π»Ρ Π’ΠΎΡΠΊΠ° Π±Π°Π½ΠΊ API Π²Π΅ΡΡΠΈΡ 2
Π£ΡΡΠ°ΡΠ΅Π²ΡΠ°Ρ ΠΏΠ΅ΡΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ API
Tochka API client for PHP can be installed with Composer. Run this command:
composer require lee-to/php-tochka-api-v2-sdk
use TochkaApi\Client;
use TochkaApi\HttpAdapters\CurlHttpClient;
- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π»ΠΈΡΠ½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ΅ Π’ΠΎΡΠΊΠ° Π±Π°Π½ΠΊ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ "ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ" ΠΈ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π΄ΠΎΡΡΡΠΏΡ
$tochkaApi = new \TochkaApi\Client("client_id", "client_secret", "redirect_uri", new CurlHttpClient);
- ΠΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΠΌ ΠΏΡΠ°Π²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΅ΡΠΎΠ΄ Π²Π΅ΡΠ½Π΅Ρ ΡΡΠ» Π΄Π»Ρ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ
- Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ code ΠΆΠΈΠ²Π΅Ρ 2 ΠΌΠΈΠ½ΡΡΡ
// Π£ΡΠ» Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π²Π΅ΡΠ½Π΅Ρ $_GET["code"] Π½Π° redirect_uri
$authorizeUrl = $tochkaApi->authorize();
header("Location: {$authorizeUrl}");
exit( );
//ΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠ°Π² Π’ΠΎΡΠΊΠ° Π±Π°Π½ΠΊ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡ Π½Π° redirect_uri ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ
//c ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ code
// code ΠΎΠ±ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΡΠΎΠΊΠ΅Π½ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π² ΠΊΠ»ΠΈΠ΅Π½Ρ
$accessToken = $client->token($_GET["code"]);
$tochkaApi->setAccessToken($accessToken);
//Access token ΠΆΠΈΠ²Π΅Ρ 24 ΡΠ°ΡΠ°
//Refresh token ΠΆΠΈΠ²Π΅Ρ 30 Π΄Π½Π΅ΠΉ
//ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π΅ ΡΡΡΠ°ΡΠ΅Π» Π»ΠΈ ΡΠΎΠΊΠ΅Π½ ($createdTimestamp - timestamp ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½Π°)
if($tochkaApi->isExpired($createdTimestamp)) {
}
//ΠΠ΅ΡΠ½Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ AccessToken
$client->refreshToken(string $refresh_token);
- https://enter.tochka.com/doc/v2/redoc#section/Authentication
- ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π²ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ
//ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ scopes
$tochkaApi->setScopes(string $scopes);
//ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ permissions
$tochkaApi->setPermissions(array $permissions);
$tochkaApi->account()->all()
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- $accountId - Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΡΡΠ°
$tochkaApi->account($accountId)->get()
ΠΠ΅ΡΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π±Π°Π»Π°Π½ΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ°
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- $accountID - ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ΅ΡΠ°
$tochkaApi->account($accountID)->balances()
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- $accountID - ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ΅ΡΠ°
- $statementId - ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π²ΡΠΏΠΈΡΠΊΠΈ
$tochkaApi->account($accountID)->statement($statementId)
$tochkaApi->balance()->all()
$tochkaApi->statement()->all()
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- $data - Request Body ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
$tochkaApi->statement()->create($data)
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- $cardCode - GUID ΠΊΠ°ΡΡΡ Π² ΠΠ¦ Π’ΠΎΡΠΊΠΈ
- $customerCode - Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
$tochkaApi->card($cardCode, $customerCode)->all()
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- $cardCode - GUID ΠΊΠ°ΡΡΡ Π² ΠΠ¦ Π’ΠΎΡΠΊΠΈ
- $customerCode - Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
- $data - Request Body ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
$tochkaApi->card($cardCode, $customerCode)->update($data)
- https://enter.tochka.com/doc/v2/redoc#operation/delete_card_card__apiVersion__card__cardCode__delete
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- $cardCode - GUID ΠΊΠ°ΡΡΡ Π² ΠΠ¦ Π’ΠΎΡΠΊΠΈ
- $customerCode - Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
$tochkaApi->card($cardCode, $customerCode)->delete()
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- $cardCode - GUID ΠΊΠ°ΡΡΡ Π² ΠΠ¦ Π’ΠΎΡΠΊΠΈ
- $customerCode - Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
- $query - Query parameters ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
$tochkaApi->card($cardCode, $customerCode)->limits($query)
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- $cardCode - GUID ΠΊΠ°ΡΡΡ Π² ΠΠ¦ Π’ΠΎΡΠΊΠΈ
- $customerCode - Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
- $data - Request Body ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
$tochkaApi->card($cardCode, $customerCode)->state($data)
$tochkaApi->customer()->all()
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- $customerCode - Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
$tochkaApi->customer($customerCode)->get()
- https://enter.tochka.com/doc/v2/redoc#section/Opisanie-metodov/Rabota-s-platezhami
- https://enter.tochka.com/doc/v2/redoc#operation/create_payment_for_sign_payment__apiVersion__for_sign_post
- https://enter.tochka.com/doc/v2/redoc#operation/create_payment_payment__apiVersion__order_post
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- $data - Request Body ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
- $forSign - Π‘ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ Π»ΠΈΠ±ΠΎ Π±Π΅Π·
$tochkaApi->payment()->create($data, $forSign = true)
- ΠΠ΅ΡΠΎΠ΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ»Π°ΡΠ΅ΠΆΠ° ($forSign = false) Π²Π΅ΡΠ½Π΅Ρ ΠΎΡΠ²Π΅Ρ Π²ΠΈΠ΄Π°
"Data": {
"requestId": "openapi-b96d770e-769f-49ce-9630-890e00d47720",
"redirectURL": "https://enter.tochka.com/payment/?requestId=openapi-b96d770e-769f-49ce-9630-890e00d47720&clientId=ΠΠΠ¨_ΠΠΠΠΠΠ’_ID"
}
- Π³Π΄Π΅ redirectURL - Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΠ°. Π query-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»Ρ ΠΏΠ»Π°ΡΠ΅ΠΆΠ°. ΠΠ°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡ ΠΏΠ»Π°ΡΠ΅ΠΆ ΠΊΠΎΠ΄ΠΎΠΌ
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- $requestId - ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π°ΠΏΡΠΎΡΠ° (ΠΏΠ»Π°ΡΠ΅ΠΆΠ°)
$tochkaApi->payment($requestId)->get()
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΊ API (ΠΠΎΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄Ρ Π‘ΠΠ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅)
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
- $method - GET|POST|DELETE|UPDATE|PUT
- $url - Π£ΡΠ», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ https://enter.tochka.com/uapi/sbp/v1.0/merchant/MF0000000001
- $data - Request Body
$tochkaApi->custom()->request($method, $url, $data = [])
- ΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ customer-code Π² header
$tochkaApi->custom(null, $customerCode)->request($method, $url, $data = [])
- Composer is a prerequisite for running the tests. Install composer globally, then run
composer install
to install required files. - The tests can be executed by running this command from the root directory:
./vendor/bin/phpunit
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.
If you have found a security issue, please contact the maintainers directly at [email protected].