Мы уже давно работаем с компаниями представляющими малый бизнес на рынке микрофинансирования. И многим компаниям нравится наше недорогое, но вполне эффективное решение "Готовый сайт для МФО/МКК", которое они очень быстро могут запустить и использовать как площадку для старта на своем пути развития. И вот на днях, одного из наших клиентов этот самый путь привел к учетной программе "Моя МФО", созданной на базе 1С-8. Он обратился к нам с задачей настроить синхронизацию созданного ранее сайта и этой новой для него программы, которую он сам выбрал среди нескольких кандидатов.
В целом, задача по связи сайта и какой-нибудь учетной программы, достаточна популярна и является частью процесса автоматизации на рынке микрозаймов. Скорее всего мы скоро сделаем публикацию с более подробным описанием полной схемы этого процесса, а сейчас хотели бы остановиться на конкретном примере и покажем примеры с комментариями по ключевым операциям в интеграции сайта. То чего нам так не хватало в документации разработчика "Моя МФО", из-за чего пришлось обращаться в техподдержку.
Базовая функция для обмена сайта с программой Моя МФО (1С)
Когда со стороны 1С включены все необходимые для обмена запросы, нам необходимо со стороны сайта написать некоторую общую функцию, к которой мы будем обращаться каждый раз при обмене данными. Она будет основываться на curl и готовый вариант может выглядеть вот так:
Обратите внимание, что мы указываем тип запроса в функции $reqType – так как в некоторых методах надо использовать GET, а в некоторых POST. При неверном указании вам сервер вернет ошибку HTTP 405.0 — Method not allowed.
Заявки с сайта (Request)
При оформлении новой заявки на сайте нам надо передать ее в 1С. Используем ранее созданную функцию. Кроме обязательных переменных (логин, пароль и путь запроса) нам надо передать массив с данными заявки и указать тип запроса (в данном случае это POST). В массиве данных, мы указываем все заполненные потенциальным клиентом поля по заданным в 1С переменным, которые можно найти в настройках сервиса Моя МФО. В документации есть подсказка где искать.
В результате нам отдается ответ об успешно созданной заявке в формате json.
На этом этапе у нас возникала одна ошибка – «В 1С не найден элемент настроек по переданному ID. Переданный ID должен совпадать с заполненным в 1С». С помощью техподдержки, мы узнали, что в массиве с данными надо передавать или пустое значение ID (ID => “”) или (если это не помогло) надо указать идентификатор источника. Для этого, сначала надо зайти в 1С в настройки модуля «Моя МФО».
В разделе «Общие» открываем вкладку «Онлайн настройки (сайт, платежные сервисы и пр.)» и там строку Заявка с сайта.
В поле ID прописываем 123 и сохраняем.
Теперь в массиве передаваемых данных заявки, надо указывать всегда ID=>123, чтобы система определял источник поступления заявки.
Так же, стоит отметить, что при создании заявки, автоматически создается клиент и возвращается его код, который мы далее будем использовать для синхронизации. При этом данный код, не является числом и содержит в начале много нолей. Поэтому мы в коде отмечаем, что это строка $IDClient = (string)$res->IDClient;
Чтобы найти эти созданные заявки в 1С, надо перейти в раздел контрагентов. В открывшемся списке находим нужное физ лицо и открываем его карточку, где во вкладке История увидим то что искали.
Получение PDF договора из 1С (dealinpdf)
В данной операции мы указываем ID нужного нам займа, как это написано в документации. А полученный результат, сохраняем в файл вот такой простой операцией:
При сохранении указываем нужное название файла и далее уже работаем с ним на сайте, чтобы не запрашивать его каждый раз.
На этой операции у нас возникала ошибка с формулировкой «Преобразование значения к типу Число не может быть выполнено».
Посмотрев в самой 1С, мы увидели, что ошибка не в интеграции, потому что в учетной программе тоже не создавался договор. Проблема оказалась в некорректном кредитном продукте, который был указан в сделке. Из-за чего не формировались данные по ставке кредита и сроку, а так же не создавался график платежей. Исправление продукта в заявке исправляло данную ошибку.
Получение данных о выданном займе с графиком платежей (PS/deal)
Чтобы получить все данные по займу мы запрашиваем по его коду и паспортным данным заемщика. Важно, чтобы займ был выдан в системе, только в этом случае данные будут возвращены как описано в документации. В противном случае вам вернется ошибка «По паспортным данным серия: и номер: контрагент не найден»
Разобравшись с этими ключевыми операциями, у нас уже не оставалось сложностей с пониманием логики остальных и документация разработчика уже читалась намного проще. И подпись документов через АСП, мы уже сделали без каких либо ошибок.
Надеемся данный материал будет полезен тем, кто делает интеграцию с этой учетной системой. А если вам требуется разработчик, кто сделает такую интеграцию, мы будем рады вам помочь - просто свяжитесь с нами любым удобным для вас способом.