Skip to content

Instantly share code, notes, and snippets.

@sglazov
Last active January 11, 2023 19:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sglazov/a306abd4d09752b31d9550e22b987e2c to your computer and use it in GitHub Desktop.
Save sglazov/a306abd4d09752b31d9550e22b987e2c to your computer and use it in GitHub Desktop.
Как сделать автоматическую выгрузку транзакций из CloudPayments в CSV-файл

Что происходит

Есть прекрасный CloudPayments для приёма платежей. Он умеет в выгрузку списка транзакций из интерфейса. В разделе «Транзакции» (в меню слева) над списком есть кнопка «Экспорт транзакций», по клику вам отправят на почту *.csv-файл за месяц.

Это такой ручной вариант: надо авторизоваться в личном кабинете, запросить файл, забрать его из почты, куда-то там загрузить. Долго и сложно. И это нужно делать бухгалтерии, им итак несладко, а тут ещё это.

Хочется автоматического варианта. Чаще для автоматизации 1С (или любого интегратора) + CloudPayments.

Тезисно, идеальный вариант работы

  1. Есть csv-файл (он прост, с ним легко работать и его понимают все), надо его как-то создавать
  2. Файл создаётся по расписанию
  3. Кладётся куда-то на сервер
  4. Есть FTP-доступ на этот сервер
  5. Доступ указывается где-то в 1С
  6. Бухгалтерия получает актуальную информацию по транзакциям, всё происходит автоматически
  7. Все радуются, занимаются другими полезными делами (считают деньги?)

Как сделать автоматическую выгрузку транзакций из 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-файл. По пути можно чего-то там отфильтровать (например, собрать формат только сумма + название платежа, всё остельное не интересно). Так вот, собрать файл и его куда-то положить. Ещё настроить автозапуск скрипта, чтобы файл создавался каждый день.

Консультация или сделайте за меня за деньги

Пишите, если чё: yaglazov@gmail.com

@sglazov
Copy link
Author

sglazov commented Jan 11, 2023

Продублировал у себя в виде заметки: https://sglazov.ru/notes/cloudpayments-payments-list/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment