Как сделать автоматическую выгрузку транзакций из CloudPayments в CSV-файл
Что происходит ¶
Есть прекрасный CloudPayments для приёма платежей. Он умеет в выгрузку списка транзакций из интерфейса. В разделе «Транзакции» (в меню слева) над списком есть кнопка «Экспорт транзакций», по клику вам отправят на почту *.csv
-файл за месяц.
Это такой ручной вариант: надо авторизоваться в личном кабинете, запросить файл, забрать его из почты, куда-то там загрузить. Долго и сложно. И это нужно делать бухгалтерии, им итак несладко, а тут ещё это.
Хочется автоматического варианта. Чаще для автоматизации 1С (или любого интегратора) + CloudPayments.
Тезисно, идеальный вариант работы ¶
- Есть
csv
-файл (он прост, с ним легко работать и его понимают все), надо его как-то создавать - Файл создаётся по расписанию
- Кладётся куда-то на сервер
- Есть FTP-доступ на этот сервер
- Доступ указывается где-то в 1С
- Бухгалтерия получает актуальную информацию по транзакциям, всё происходит автоматически
- Все радуются, занимаются другими полезными делами (считают деньги?)
Как сделать автоматическую выгрузку транзакций из CloudPayments ¶
Через API от CloudPayments, конечно. Документация прекрасна. То, что нам нужно описано тут: https://developers.cloudpayments.ru/#vygruzka-spiska-tranzaktsiy
/** * Выгрузка списка транзакций * * https://developers.cloudpayments.ru/#vygruzka-spiska-tranzaktsiy * * API Lib: https://github.com/flowwow/cloudpayments-php-client */ $today = date('Y-m-d'); $publicId = ''; $pass = ''; $apiClient = new \Flowwow\Cloudpayments\Library($publicId, $pass); $response = $apiClient->getListPayment( new \Flowwow\Cloudpayments\Request\PaymentsList( '2021-06-05', 'MSK' ) ); $list = $response->model;
$publicId
и $pass
— ваши «секреты» из настроек сайта в личном кабинете.
В общем-то, это всё. Спасибо за лёгкость библиотеке для работы с API. Люблю прям опенсорс за такое.
Вы получите json
со списком транзакций за сутки.
Дальше нужно из этого ответа собрать csv
-файл. По пути можно чего-то там отфильтровать (например, собрать формат только сумма + название платежа, всё остальное неинтересно). Так вот, собрать файл и его куда-то положить. Ещё настроить автозапуск скрипта, чтобы файл создавался каждый день.