Skip to content

Payselection/Payselection-PayApp-SDK-PHP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Payselection api Library

Оглавление

Установка

Установить библиотеку можно с помощью composer:

composer require payselection/payselection-php-client

Начало работы

  1. Создайте экземпляр объекта клиента.
$apiClient = new \PaySelection\Library();
$apiClient->setConfiguration([
    'webpay_url' => 'https://webform.payselection.com',
    'api_url' => 'https://gw.payselection.com',
    'site_id' => '123',
    'secret_key' => '###########',
    'webhook_url' => 'https://webhook.site/notification/'
]);

Значение webhook_url должно совпадать со значением WebhookUrl из запросов

  1. Вызовите нужный метод API.

Методы API

Create Webpay

Create Webpay в документации

Создайте платёж, чтобы Покупатель смог оплатить его

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);

Paylink Create

Paylink Create в документации

Метод позволяет создать ссылку для перехода на платежный виджет.

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);

Paylink Void

Paylink Void в документации

Метод позволяет отменить ссылку на платежный виджет.

try {
    $response = $apiClient->createPaylinkVoid([
        'Id' => 'string'
    ]);
} catch (\Exception $e) {
    $response = $e->getMessage();
}

var_dump($response);

Get Order Status

Статус ордера в документации

Получить статус ордера по OrderId.

try {
    $response = $apiClient->getOrderStatus('a3a393d8-ac47-11ed-afa1-0242ac120002');
} catch (\Exception $e) {
    $response = $e->getMessage();
}

var_dump($response);

Get Order Status (extended)

Статус ордера в документации

Расширенный запрос используется для получения информации о текущем статусе по идентификатору заказа orderId.

try {
    $response = $apiClient->getOrderStatusExt('a3a393d8-ac47-11ed-afa1-0242ac120002');
} catch (\Exception $e) {
    $response = $e->getMessage();
}

var_dump($response);

Get transaction Status

Статус транзакции в документации

Получить статус по TransactionId.

try {
    $response = $apiClient->getTransactionStatus('PS00000000000001');
} catch (\Exception $e) {
    $response = $e->getMessage();
}

var_dump($response);

Get transaction Status (extended)

Статус транзакции в документации

Расширенный запрос используется для получения информации о текущем статусе по идентификатору транзакции TransactionId.

try {
    $response = $apiClient->getTransactionStatusExt('PS00000000000001');
} catch (\Exception $e) {
    $response = $e->getMessage();
}

var_dump($response);

Get transaction Status (by-dates)

Статус транзакции в документации

Расширенный запрос используется для получения статуса транзакций по выбранному диапазону дат.

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);

Create Payment

Operation Pay в документации

Одностадийная операция оплаты – денежные средства списываются сразу после ее проведения.

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);

Create Block

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);

Rebill Payment

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);

Confirm Payment

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);

Create Refund

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);

Cancel Payment

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);

Charge Payment

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);

Cancel Subscription

Operation Unsubscribe в документации

Отмена рекуррентных платежей.При использовании данного метода произойдет отписка по всем зарегистрированным регулярным оплатам в рамках переданного RebillId

try {
    $response = $apiClient->cancelSubscription([
        'RebillId' => 'PS00000000000001'
    ]);
} catch (\Exception $e) {
    $response = $e->getMessage();
}

var_dump($response);

Create Payout

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);

Get Balance

Operation Balance в документации

Операция проверки доступного баланса для Payout.

try {
    $response = $apiClient->getBalance();
} catch (\Exception $e) {
    $response = $e->getMessage();
}

var_dump($response);

Register Recurring

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);

Cancel Recurring

Operation Recurring Unsubscribe в документации

Отмена регулярной оплаты.

try {
    $response = $apiClient->cancelRecurring([
        'RecurringId' => '1173'
    ]);
} catch (\Exception $e) {
    $response = $e->getMessage();
}

var_dump($response);

Search Recurring

Operation Recurring Search в документации

Поиск регулярной оплаты (подписки) по выбранному параметру.

try {
    $response = $apiClient->searchRecurring([
        'RebillId' => 'PS00000000000001',
        'RecurringId' => '1173',
        'AccountId' => 'order63',
    ]);
} catch (\Exception $e) {
    $response = $e->getMessage();
}

var_dump($response);

Change Recurring

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);

Работа с webhooks

Webhook в документации Webhook для подписок в документации

try {
    $result = $apiClient->hookPay();
} catch (\Exception $e) {
    $response = $e->getMessage();
}

var_dump($result);

License

MIT