- Установка
- Начало работы
- Методы API
- Create Webpay
- Get Order Status
- Get Order Status (extended)
- Get transaction Status
- Get transaction Status (extended)
- Get transaction Status (by-dates)
- Paylink Create
- Paylink Void
- Create Payment
- Create Block
- Rebill Payment
- Confirm Payment
- Create Refund
- Cancel Payment
- Charge Payment
- Cancel Subscription
- Create Payout
- Get Balance
- Register Recurring
- Search Recurring
- Change Recurring
- Cancel Recurring
- Работа с webhooks
- Webhook для проверки платежа
Установить библиотеку можно с помощью composer:
composer require payselection/payselection-php-client
- Создайте экземпляр объекта клиента.
$apiClient = new \PaySelection\Library();
$apiClient->setConfiguration([
'webpay_url' => 'https://webform.payselection.com',
'api_url' => 'https://gw.payselection.com',
'site_id' => '123',
'secret_key' => '###########',
'public_key' => '###########',
'site_url' => 'https://test.com'
'webhook_url' => 'https://webhook.site/notification/'
]);
Значение webhook_url
должно совпадать со значением WebhookUrl
из запросов.
Опциональное значение public_key
может использоваться в методах Paylink и Webpay.
При заполнении public_key
необходимо обязательное заполнение site_url
(его значение уточните у своего менеджера).
- Вызовите нужный метод API.
Создайте платёж, чтобы Покупатель смог оплатить его
try {
$response = $apiClient->createWebPay([
'MetaData' => [
'PaymentType' => 'Pay'
],
'PaymentRequest' => [
'OrderId' => 'a3a393d8-ac47-11ed-afa1-0242ac1200021',
'Amount' => '100.00',
'Currency' => 'RUB',
'Description' => 'Order description',
'RebillFlag' => true,
'ExtraData' => [
'WebhookUrl' => 'https://webhook.site/f2bea4b3-e85c-40e9-9587-b588cfda84d3'
],
],
'ReceiptData' => [
'timestamp' => '2023-01-11T13:38+0000',
'external_id' => '12345678',
'receipt' => [
'client' => [
'name' => 'Inan Ivanov',
'email' => '[email protected]',
],
'company' => [
'email' => '[email protected]',
'inn' => '12345',
'payment_address' => 'company address',
],
'items' => [
[
'name' => 'Product title 1',
'price' => 123.00,
'quantity' => 1,
'sum' => 123.00,
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'vat' => [
'type' => 'vat0'
]
],
[
'name' => 'Product title 2',
'price' => 10.00,
'quantity' => 2,
'sum' => 20.00,
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'vat' => [
'type' => 'vat0'
]
],
],
'payments' => [
[
'type' => 1,
'sum' => 143.00
]
],
'total' => 143.00
]
],
'CustomerInfo' => [
'ZIP' => '222410',
'Language' => 'ru'
],
'RecurringData' => [
'Amount' => '100.00',
'Currency' => 'RUB',
'Description' => 'Recurring description',
'WebhookUrl' => 'https://webhook.site/f2bea4b3-e85c-40e9-9587-b588cfda84d3',
'AccountId' => 'order63',
'Email' => '[email protected]',
'StartDate' => '2023-05-11T13:38+0000',
'Interval' => '5',
'Period' => 'day',
'MaxPeriods' => '3',
'ReceiptData' => [
'timestamp' => '2023-01-11T13:38+0000',
'external_id' => '12345678',
'receipt' => [
'client' => [
'name' => 'Inan Ivanov',
'email' => '[email protected]',
],
'company' => [
'email' => '[email protected]',
'inn' => '12345',
'payment_address' => 'company address',
],
'items' => [
[
'name' => 'Product title 1',
'price' => 123.00,
'quantity' => 1,
'sum' => 123.00,
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'vat' => [
'type' => 'vat0'
]
],
[
'name' => 'Product title 2',
'price' => 10.00,
'quantity' => 2,
'sum' => 20.00,
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'vat' => [
'type' => 'vat0'
]
],
],
'payments' => [
[
'type' => 1,
'sum' => 143.00
]
],
'total' => 143.00
]
]
]
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Метод позволяет создать ссылку для перехода на платежный виджет.
try {
$response = $apiClient->createPaylink([
'MetaData' => [
'PaymentType' => 'Pay',
'TypeLink' => 'Reusable',
'PreviewForm' => true,
'SendSMS' => true,
'OfferUrl' => 'string',
'SendBill' => true
],
'PaymentRequest' => [
'OrderId' => 'string',
'Amount' => '123.45',
'Currency' => 'RUB',
'Description' => 'string',
'RebillFlag' => false,
'ExtraData' => [
'ReturnUrl' => 'https://api.payselection.com/',
'SuccessUrl' => 'string',
'DeclineUrl' => 'string',
'WebhookUrl' => 'https://webhook.site/94a06b69',
'ShortDescription' => 'string',
'DynamicAmount' => true
]
],
'ReceiptData' => [
'timestamp' => 'string',
'external_id' => 'string',
'receipt' => [
'client' => [
'name' => 'string',
'inn' => 'string',
'email' => 'string',
'phone' => 'string'
],
'company' => [
'email' => 'string',
'sno' => 'osn',
'inn' => 'string',
'payment_address' => 'string'
],
'agent_info' => [
'type' => 'bank_paying_agent',
'paying_agent' => [
'operation' => 'string',
'phones' => [
'string'
]
],
'receive_payments_operator' => [
'phones' => [
'string'
]
],
'money_transfer_operator' => [
'phones' => [
'string'
],
'name' => 'string',
'address' => 'string',
'inn' => 'string'
]
],
'supplier_info' => [
'phones' => [
'string'
]
],
'items' => [
[
'name' => 'string',
'price' => 42949673,
'quantity' => 99999.999,
'sum' => 42949672.95,
'measurement_unit' => 'string',
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'nomenclature_code' => 'string',
'vat' => [
'type' => 'none',
'sum' => 99999999.99
],
'agent_info' => [
'type' => 'bank_paying_agent',
'paying_agent' => [
'operation' => 'string',
'phones' => [
'string'
]
],
'receive_payments_operator' => [
'phones' => [
'string'
]
],
'money_transfer_operator' => [
'phones' => [
'string'
],
'name' => 'string',
'address' => 'string',
'inn' => 'string'
]
],
'supplier_info' => [
'phones' => [
'string'
],
'name' => 'string',
'inn' => 'string'
],
'user_data' => 'string',
'excise' => 0,
'country_code' => 'str',
'declaration_number' => 'string'
]
],
'payments' => [
[
'type' => 0,
'sum' => 99999999.99
]
],
'vats' => [
[
'type' => 'none',
'sum' => 99999999.99
]
],
'total' => 99999999.99,
'additional_check_props' => 'string',
'cashier' => 'string',
'additional_user_props' => [
'name' => 'string',
'value' => 'string'
]
]
],
'CustomerInfo' => [
'Email' => '[email protected]',
'ReceiptEmail' => '[email protected]',
'Phone' => '+79999999999',
'Language' => 'en',
'Address' => 'string',
'Town' => 'string',
'ZIP' => 'string',
'Country' => 'RUS',
'UserId' => 'string'
],
'RecurringData' => [
'Amount' => '123.45',
'Currency' => 'RUB',
'Description' => 'string',
'WebhookUrl' => 'https://webhook.site/94a06b69',
'AccountId' => 'order63',
'Email' => '[email protected]',
'StartDate' => '2023-01-11T13:38+0000',
'Interval' => '5',
'Period' => 'day',
'MaxPeriods' => '3',
'ReceiptData' => [
'timestamp' => 'string',
'external_id' => 'string',
'receipt' => [
'client' => [
'name' => 'string',
'inn' => 'string',
'email' => 'string',
'phone' => 'string'
],
'company' => [
'email' => 'string',
'sno' => 'osn',
'inn' => 'string',
'payment_address' => 'string'
],
'agent_info' => [
'type' => 'bank_paying_agent',
'paying_agent' => [
'operation' => 'string',
'phones' => [
'string'
]
],
'receive_payments_operator' => [
'phones' => [
'string'
]
],
'money_transfer_operator' => [
'phones' => [
'string'
],
'name' => 'string',
'address' => 'string',
'inn' => 'string'
]
],
'supplier_info' => [
'phones' => [
'string'
]
],
'items' => [
[
'name' => 'string',
'price' => 42949673,
'quantity' => 99999.999,
'sum' => 42949672.95,
'measurement_unit' => 'string',
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'nomenclature_code' => 'string',
'vat' => [
'type' => 'none',
'sum' => 99999999.99
],
'agent_info' => [
'type' => 'bank_paying_agent',
'paying_agent' => [
'operation' => 'string',
'phones' => [
'string'
]
],
'receive_payments_operator' => [
'phones' => [
'string'
]
],
'money_transfer_operator' => [
'phones' => [
'string'
],
'name' => 'string',
'address' => 'string',
'inn' => 'string'
]
],
'supplier_info' => [
'phones' => [
'string'
],
'name' => 'string',
'inn' => 'string'
],
'user_data' => 'string',
'excise' => 0,
'country_code' => 'str',
'declaration_number' => 'string'
]
],
'payments' => [
[
'type' => 0,
'sum' => 99999999.99
]
],
'vats' => [
[
'type' => 'none',
'sum' => 99999999.99
]
],
'total' => 99999999.99,
'additional_check_props' => 'string',
'cashier' => 'string',
'additional_user_props' => [
'name' => 'string',
'value' => 'string'
]
]
]
],
'ExtendedData' => [
'FIO' => [
'enabled' => true,
'required' => true
],
'Phone' => [
'enabled' => true,
'required' => true
],
'Email' => [
'enabled' => true,
'required' => true
],
'TokenLifeTime' => 10,
'Custom' => [
'enabled' => true,
'required' => true,
'name' => 'string'
]
]
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Метод позволяет отменить ссылку на платежный виджет.
try {
$response = $apiClient->createPaylinkVoid([
'Id' => 'string'
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Получить статус ордера по OrderId.
try {
$response = $apiClient->getOrderStatus('a3a393d8-ac47-11ed-afa1-0242ac120002');
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Расширенный запрос используется для получения информации о текущем статусе по идентификатору заказа orderId.
try {
$response = $apiClient->getOrderStatusExt('a3a393d8-ac47-11ed-afa1-0242ac120002');
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Статус транзакции в документации
Получить статус по TransactionId.
try {
$response = $apiClient->getTransactionStatus('PS00000000000001');
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Статус транзакции в документации
Расширенный запрос используется для получения информации о текущем статусе по идентификатору транзакции TransactionId.
try {
$response = $apiClient->getTransactionStatusExt('PS00000000000001');
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Статус транзакции в документации
Расширенный запрос используется для получения статуса транзакций по выбранному диапазону дат.
try {
$response = $apiClient->getTransactionStatusByDates([
'StartCreationDate' => '2022-12-31T00:00:00',
'EndCreationDate' => '2023-12-31T00:00:00',
'PageNumber' => 1,
'TimeZone' => 'Africa/Abidjan',
'Statuses' => [
'success',
'voided',
'preauthorized',
'pending',
'declined',
'wait_for_3ds',
'redirect'
]
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Одностадийная операция оплаты – денежные средства списываются сразу после ее проведения.
try {
$response = $apiClient->createPayment([
'OrderId' => 'a3a393d8-ac47-11ed-afa1-0242ac120002',
'Amount' => '100.00',
'Currency' => 'RUB',
'Description' => 'Order description',
'RebillFlag' => false,
'CustomerInfo' => [
'IP' => '192.168.1.10'
],
'ExtraData' => [
'WebhookUrl' => 'https://webhook.site/38fb8867-a648-423e-9146-30576b2ad8e4'
],
'PaymentMethod' => 'Card',
'ReceiptData' => [
'timestamp' => '2023-01-11T13:38+0000',
'external_id' => '12345678',
'receipt' => [
'client' => [
'name' => 'Inan Ivanov',
'email' => '[email protected]',
],
'company' => [
'email' => '[email protected]',
'inn' => '12345',
'payment_address' => 'company address',
],
'items' => [
[
'name' => 'Product title 1',
'price' => 123.00,
'quantity' => 1,
'sum' => 123.00,
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'vat' => [
'type' => 'vat0'
]
],
[
'name' => 'Product title 2',
'price' => 10.00,
'quantity' => 2,
'sum' => 20.00,
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'vat' => [
'type' => 'vat0'
]
],
],
'payments' => [
[
'type' => 1,
'sum' => 143.00
]
],
'total' => 143.00
]
],
'PaymentDetails' => [
'CardNumber'=> '4111111111111111',
'ExpMonth'=> '02',
'ExpYear'=> '25',
'CardholderName'=> 'Card Holder',
'CVC'=> '789'
]
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Operation Block в документации
Двухстадийная операция оплаты – денежные средства блокируются на карте. Если авторизация прошла успешно, необходимо завершить транзакцию в течение 5 дней, если же вы не подтвердите транзакцию запросом на списание в течение 5 дней, снятие денежных средств будет автоматически отменено. Кроме того, есть возможность задать rebillFlag для включения рекуррентных платежей.
try {
$response = $apiClient->createBlock([
'OrderId' => 'a3a393d8-ac47-11ed-afa1-0242ac120002',
'Amount' => '100.00',
'Currency' => 'RUB',
'Description' => 'Order description',
'RebillFlag' => false,
'CustomerInfo' => [
'IP' => '192.168.1.10'
],
'ExtraData' => [
'WebhookUrl' => 'https://webhook.site/38fb8867-a648-423e-9146-30576b2ad8e4'
],
'PaymentMethod' => 'Card',
'ReceiptData' => [
'timestamp' => '2023-01-11T13:38+0000',
'external_id' => '12345678',
'receipt' => [
'client' => [
'name' => 'Inan Ivanov',
'email' => '[email protected]',
],
'company' => [
'email' => '[email protected]',
'inn' => '12345',
'payment_address' => 'company address',
],
'items' => [
[
'name' => 'Product title 1',
'price' => 123.00,
'quantity' => 1,
'sum' => 123.00,
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'vat' => [
'type' => 'vat0'
]
],
[
'name' => 'Product title 2',
'price' => 10.00,
'quantity' => 2,
'sum' => 20.00,
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'vat' => [
'type' => 'vat0'
]
],
],
'payments' => [
[
'type' => 1,
'sum' => 143.00
]
],
'total' => 143.00
]
],
'PaymentDetails' => [
'CardNumber'=> '4111111111111111',
'ExpMonth'=> '02',
'ExpYear'=> '25',
'CardholderName'=> 'Card Holder',
'CVC'=> '789'
]
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Operation Rebill в документации
Операция автоматического списания средств по привязанной ранее карте.
try {
$response = $apiClient->rebillPayment([
'OrderId' => 'a3a393d8-ac47-11ed-afa1-0242ac120002',
'Amount' => '1.00',
'Currency' => 'RUB',
'Description' => 'Order description',
'RebillFlag' => true,
'RebillId' => 'GE00000001173680',
'ReceiptData' => [
'timestamp' => '2023-01-11T13:38+0000',
'external_id' => '12345678',
'receipt' => [
'client' => [
'name' => 'Inan Ivanov',
'email' => '[email protected]',
],
'company' => [
'email' => '[email protected]',
'inn' => '12345',
'payment_address' => 'company address',
],
'items' => [
[
'name' => 'Product title 1',
'price' => 123.00,
'quantity' => 1,
'sum' => 123.00,
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'vat' => [
'type' => 'vat0'
]
],
[
'name' => 'Product title 2',
'price' => 10.00,
'quantity' => 2,
'sum' => 20.00,
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'vat' => [
'type' => 'vat0'
]
],
],
'payments' => [
[
'type' => 1,
'sum' => 143.00
]
],
'total' => 143.00
]
],
'WebhookUrl' => 'https://webhook.site/38fb8867-a648-423e-9146-30576b2ad8e4'
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Operation Confirm в документации
Используется для операций Pay или Block с 3DS после получения результатов аутентификации от банка для завершения одностадийной/двухстадийной операции оплаты.
try {
$response = $apiClient->confirmPayment([
'TransactionId' => 'PS00000000000001',
'OrderId' => 'a3a393d8-ac47-11ed-afa1-0242ac120002',
'PaRes' => '123',
'MD' => '456'
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Operation Refund в документации
Только успешная транзакция может быть возвращена
try {
$response = $apiClient->createRefund([
'TransactionId' => 'PS00000000000001',
'Amount' => '1.00',
'Currency' => 'RUB',
'ReceiptData' => [
'timestamp' => '2023-01-11T13:38+0000',
'external_id' => '12345678',
'receipt' => [
'client' => [
'name' => 'Inan Ivanov',
'email' => '[email protected]',
],
'company' => [
'email' => '[email protected]',
'inn' => '12345',
'payment_address' => 'company address',
],
'items' => [
[
'name' => 'Product title 1',
'price' => 123.00,
'quantity' => 1,
'sum' => 123.00,
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'vat' => [
'type' => 'vat0'
]
],
[
'name' => 'Product title 2',
'price' => 10.00,
'quantity' => 2,
'sum' => 20.00,
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'vat' => [
'type' => 'vat0'
]
],
],
'payments' => [
[
'type' => 1,
'sum' => 143.00
]
],
'total' => 143.00
]
],
'WebhookUrl' => 'https://webhook.site/38fb8867-a648-423e-9146-30576b2ad8e4'
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Operation Cancel в документации
Отмена блокировки средств на карте в рамках ранее проведенной двухстадийной операции оплаты.
try {
$response = $apiClient->cancelPayment([
'TransactionId' => 'PS00000000000001',
'Amount' => '100.00',
'Currency' => 'RUB',
'WebhookUrl' => 'https://webhook.site/38fb8867-a648-423e-9146-30576b2ad8e4'
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Operation Charge в документации
Списание средств с карты в рамках проведенной ранее двухстадийной операции оплаты.
try {
$response = $apiClient->chargePayment([
'TransactionId' => 'PS00000000000001',
'Amount' => '100.00',
'Currency' => 'RUB',
'WebhookUrl' => 'https://webhook.site/38fb8867-a648-423e-9146-30576b2ad8e4'
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Operation Unsubscribe в документации
Отмена рекуррентных платежей.При использовании данного метода произойдет отписка по всем зарегистрированным регулярным оплатам в рамках переданного RebillId
try {
$response = $apiClient->cancelSubscription([
'RebillId' => 'PS00000000000001'
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Operation Payout в документации
Одностадийная операция оплаты – денежные средства списываются сразу после ее проведения.
try {
$response = $apiClient->createPayout([
'OrderId' => 'a3a393d8-ac47-11ed-afa1-0242ac120002',
'Amount' => '100.00',
'Currency' => 'RUB',
'Description' => 'Order description',
'CustomerInfo' => [
'IP' => '192.168.1.10'
],
'ExtraData' => [
'WebhookUrl' => 'https://webhook.site/38fb8867-a648-423e-9146-30576b2ad8e4'
],
'PayoutMethod' => 'Card',
'ReceiptData' => [
'timestamp' => '2023-01-11T13:38+0000',
'external_id' => '12345678',
'receipt' => [
'client' => [
'name' => 'Inan Ivanov',
'email' => '[email protected]',
],
'company' => [
'email' => '[email protected]',
'inn' => '12345',
'payment_address' => 'company address',
],
'items' => [
[
'name' => 'Product title 1',
'price' => 123.00,
'quantity' => 1,
'sum' => 123.00,
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'vat' => [
'type' => 'vat0'
]
],
[
'name' => 'Product title 2',
'price' => 10.00,
'quantity' => 2,
'sum' => 20.00,
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'vat' => [
'type' => 'vat0'
]
],
],
'payments' => [
[
'type' => 1,
'sum' => 143.00
]
],
'total' => 143.00
]
],
'PayoutDetails' => [
'CardNumber'=> '4111111111111111',
'CardholderName'=> 'Card Holder',
]
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Operation Balance в документации
Операция проверки доступного баланса для Payout.
try {
$response = $apiClient->getBalance();
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Operation Recurring в документации
Регистрация регулярной оплаты по привязанной ранее карте.
try {
$response = $apiClient->registerRecurring([
'RebillId' => 'GE00000001173680',
'Amount' => '100.00',
'Currency' => 'RUB',
'Description' => 'Recurring description',
'WebhookUrl' => 'https://webhook.site/f2bea4b3-e85c-40e9-9587-b588cfda84d3',
'AccountId' => 'order63',
'Email' => '[email protected]',
'StartDate' => '2023-05-11T13:38+0000',
'Interval' => '5',
'Period' => 'day',
'MaxPeriods' => '3',
'ReceiptData' => [
'timestamp' => '2023-01-11T13:38+0000',
'external_id' => '12345678',
'receipt' => [
'client' => [
'name' => 'Inan Ivanov',
'email' => '[email protected]',
],
'company' => [
'email' => '[email protected]',
'inn' => '12345',
'payment_address' => 'company address',
],
'items' => [
[
'name' => 'Product title 1',
'price' => 123.00,
'quantity' => 1,
'sum' => 123.00,
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'vat' => [
'type' => 'vat0'
]
],
[
'name' => 'Product title 2',
'price' => 10.00,
'quantity' => 2,
'sum' => 20.00,
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'vat' => [
'type' => 'vat0'
]
],
],
'payments' => [
[
'type' => 1,
'sum' => 143.00
]
],
'total' => 143.00
]
]
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Operation Recurring Unsubscribe в документации
Отмена регулярной оплаты.
try {
$response = $apiClient->cancelRecurring([
'RecurringId' => '1173'
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Operation Recurring Search в документации
Поиск регулярной оплаты (подписки) по выбранному параметру.
try {
$response = $apiClient->searchRecurring([
'RebillId' => 'PS00000000000001',
'RecurringId' => '1173',
'AccountId' => 'order63',
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Operation Recurring Change в документации
Изменение параметров регулярной оплаты (подписки).
try {
$response = $apiClient->changeRecurring([
'RecurringId' => '1173',
'MaxPeriods' => '3',
'StartDate' => '2023-01-11T13:38+0000',
'Interval' => '5',
'Period' => 'day',
'Amount' => '123.45',
'ReceiptData' => [
'timestamp' => 'string',
'external_id' => 'string',
'receipt' => [
'client' => [
'name' => 'string',
'inn' => 'string',
'email' => 'string',
'phone' => 'string'
],
'company' => [
'email' => 'string',
'sno' => 'osn',
'inn' => 'string',
'payment_address' => 'string'
],
'agent_info' => [
'type' => 'bank_paying_agent',
'paying_agent' => [
'operation' => 'string',
'phones' => [
'string'
]
],
'receive_payments_operator' => [
'phones' => [
'string'
]
],
'money_transfer_operator' => [
'phones' => [
'string'
],
'name' => 'string',
'address' => 'string',
'inn' => 'string'
]
],
'supplier_info' => [
'phones' => [
'string'
]
],
'items' => [
[
'name' => 'string',
'price' => 42949673,
'quantity' => 99999.999,
'sum' => 42949672.95,
'measurement_unit' => 'string',
'payment_method' => 'full_prepayment',
'payment_object' => 'commodity',
'nomenclature_code' => 'string',
'vat' => [
'type' => 'none',
'sum' => 99999999.99
],
'agent_info' => [
'type' => 'bank_paying_agent',
'paying_agent' => [
'operation' => 'string',
'phones' => [
'string'
]
],
'receive_payments_operator' => [
'phones' => [
'string'
]
],
'money_transfer_operator' => [
'phones' => [
'string'
],
'name' => 'string',
'address' => 'string',
'inn' => 'string'
]
],
'supplier_info' => [
'phones' => [
'string'
],
'name' => 'string',
'inn' => 'string'
],
'user_data' => 'string',
'excise' => 0,
'country_code' => 'str',
'declaration_number' => 'string'
]
],
'payments' => [
[
'type' => 0,
'sum' => 99999999.99
]
],
'vats' => [
[
'type' => 'none',
'sum' => 99999999.99
]
],
'total' => 99999999.99,
'additional_check_props' => 'string',
'cashier' => 'string',
'additional_user_props' => [
'name' => 'string',
'value' => 'string'
]
]
]
]);
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($response);
Webhook в документации Webhook для подписок в документации
try {
$result = $apiClient->hookPay();
} catch (\Exception $e) {
$response = $e->getMessage();
}
var_dump($result);
Webhook для проверки платежа в документации
После ввода клиентом карточных данных вы можете получить webhook с данными из запроса для сопоставления их с данными заказа. Вебхук проверки платежа отличается от обычного вебхука, в котором ТСП получает результаты платежа, после его проведения. Вебхук проверки платежа активируется только технической поддержкой. Чтобы включить, настроить и выключить вебхук проверки платежа необходимо написать на почту [email protected].
В письме сообщите:
- URL-адрес возврата, куда будет передаваться вебхук. Также вы можете заранее самостоятельно настроить статичный URL возврата в личном кабинете, в разделе "Сайты". Укажите его для тех.поддержки.
- Параметры из запроса, которые вам необходимо проверить (это всё, что входит в payment request в методе create)
Возможные варианты параметров для проверки:
- сумма
- номер заказа
- валюта платежа
Проверочный вебхук отправляется с webpay после ввода карточных данных или выбора клиентом иного способа оплаты. Вебхук проверки платежа приходит в формате json и содержит только те параметры для проверки, которые вы указали в письме
Пример содержимого полученного вебхука: {"OrderId": "1299670125", "Amount": "4.50", "Description": "Description", "RebillFlag": false}
После подключения вебхука проверки платежа, когда вы направите запрос с необходимыми параметрами и URL возврата, Ваш сервис приема должен отдавать:
- 200 статус, если оплату можно продолжать
- 4хх и 5хх статусы в различных вариациях для прерывания оплаты.
try {
$result = $apiClient->verifyPaymentHook();
// Пример проверки суммы
if ($result->amount != 500) throw new Exception("Incorrect amount");
} catch (\PaySelection\Exceptions\PSException $e) {
print_r($e);
}
var_dump($result);
MIT