Документация для самостоятельной интеграции сервисов
В данный раздел поможет интегрировать Продамус с системами, для которых нет официальной интеграции. А так же поможет разработчикам, прописать дополнительные параметры для уже существующих интеграций
Формируем запрос
Для формирования платежной ссылки вам необходимо отправить GET или POST запрос себе на платежную страницу
Где прописать URL-адрес и скопировать секретный ключ подробно в разделе "Где найти url для уведомлений и секретный ключ"
В зависимости от сервиса, с которым вы интегрируетесь, вы можете прописывать параметры платежной страницы отдельно, передавая их программным кодом или использую стандартные команды вашего сервиса (например Автопилот или SmartSender) либо в самой ссылке Get-запроса.
Для формирования GET или POST запроса вам потребуется:
ссылка должна быть вида http://название_поддомена.payform.ru/
Например https://demo.payform.ru/
Параметры, которые вы можете передать в запросе
Обязательные параметры при формировании ссылки
Параметр | Тип | Описание |
do | строка | |
products | массив | |
sys | строка | код системы интернет-магазина (необходимо согласовать с поддержкой Продамуса) |
Возможные значения параметра do
do
"link" - возвращает ссылку, которую отправляем пользователю для самостоятельного перехода на страницу оплаты
"pay" - отправляет покупателя сразу на оплату. Используется для интернет-магазинов действие "Оплата"
Параметры массива products
products
Параметр | Тип | Описание | Обязательный |
name | строка | наименование товара | ДА |
price | число | цена товара | ДА |
quantity | целое число | количество товара | ДА |
sku | строка | id товара в системе интернет-магазин | НЕТ |
Чтобы прописать параметры массива: наименование, цена и количество товара, необходимо обратиться в глубь массива
products Например
products[0]name
для php
Параметры продукта, являются НЕобязательными
Параметр | Тип | Описание |
order_sum | число | сумма заказа |
discount_value | число | размер скидки в рублях |
Параметры для рекуррентных платежей
Параметр | Тип | Описание | Обязательный |
subscription | целое число | id подписки | ДА |
subscription_date_start | строка | дата начала подписки в формате "гггг-мм-дд чч:мм" P.S. Если указать дату в прошлом, то старт подписки будет сдвинут на интервал этой подписки. | нет |
subscription_demo_period | целое число | количество дней демо-периода подписки | нет |
subscription_limit_autopayments | целое число | максимальное количество авто-платежей по подписке если не указано или меньше единицы, значение будет взято из настроек подписного товара | нет |
Параметры для пользователей Вк, являются НЕобязательными
Параметр | Тип | Описание |
vk_user_id | целое число | id пользователя в системе Вк |
vk_user_name | строка | ФИО пользователя в системе Вк |
Параметры передающие данные о юр.статусе плательщика
Параметр | Тип | Описание |
npd_income_type | строка | тип плательщика, с возможными значениями: FROM_INDIVIDUAL - физическое лицо FROM_LEGAL_ENTITY - юридическое лицо FROM_FOREIGN_AGENCY - иностранная организация значение по умолчанию: FROM_INDIVIDUAL |
npd_income_inn | целое число | инн плательщика обязательно, если форма работает в режиме самозанятого и тип плательщика FROM_LEGAL_ENTITY |
npd_income_company | строка | название компании плательщика обязательно, если форма в режиме самозанятого и тип плательщика FROM_LEGAL_ENTITY или FROM_FOREIGN_AGENCY |
Общие Необязательные параметры
Параметр | Тип | Описание |
order_id | строка | номер заказа в Вашей системе |
customer_phone | строка | |
customer_email | строка | e-mail адрес клиента |
customer_extra | строка | описание заказа (Поле дополнительные данные) |
ref | строка | идентификатор партнера (ПРОМОКОД) |
paid_content | строка | платный контент |
link_expired | строка | срок действия ссылки в формате "гггг-мм-дд чч:мм" |
payment_method | строка | метод оплаты, выбранный клиентом, если есть возможность выбора на стороне интернет-магазина, иначе клиент выбирает метод оплаты на стороне платежной формы доступные значения: AC - оплата картой, выпущенной в РФ ACkz - оплата картой Казахстана ACkztjp - оплата картой всех стран мира, кроме РФ ACf - оплата картами стран СНГ, кроме РФ ACUSDGTL - Оплата в USD картой всех стран, кроме РФ ACEURGTL - Оплата в EUR картой всех стран, кроме РФ ACBYNGTL - Оплата в BYN оплата картой Беларуси SBP - Быстрый платёж, без ввода данных карты. Для карт РФ QW - Qiwi wallet PC - Юmoney GP - платежный терминал sbol - Сбербанк онлайн invoice - Оплата по счету installment - Частями от Продамус installment_5_21 - Частями от Продамус на 3 месяца installment_6_28 - Частями от Продамус на 6 месяцев installment_10_28 - Частями от Продамус на 10 месяцев installment_12_28 - Частями от Продамус на 12 месяцев installment_5_21:v3.0 - Частями 3.0 от Продамус на 3 месяца installment_6_28:v3.0 - Частями 3.0 от Продамус на 6 месяцев installment_10_28:v3.0 - Частями 3.0 от Продамус на 10 месяцев installment_12_28:v3.0 - Частями 3.0 от Продамус на 12 месяцев installment_0_0_3 - Рассрочка от Тинькофф на 3 месяца installment_0_0_4 - Рассрочка от Тинькофф на 4 месяца installment_0_0_6 - Рассрочка от Тинькофф на 6 месяцев installment_0_0_10 - Рассрочка от Тинькофф на 10 месяцев installment_0_0_12 - Рассрочка от Тинькофф на 12 месяцев installment_0_0_18 - Рассрочка от Тинькофф на 18 месяцев installment_0_0_24 - Рассрочка от Тинькофф на 24 месяца installment_0_0_36 - Рассрочка от Тинькофф на 36 месяцев credit - Кредит от Тинькофф vsegdada_installment_0_0_3 - Рассрочка ВсегдаДа на 3 месяца без переплаты! vsegdada_installment_0_0_4 - Рассрочка ВсегдаДа на 4 месяца без переплаты! (не работает с available_payment_methods) vsegdada_installment_0_0_6 - Рассрочка от ВсегдаДа на 6 месяцев без переплаты! vsegdada_installment_0_0_10 - Рассрочка от ВсегдаДа на 10 месяцев без переплаты vsegdada_installment_0_0_12 - Рассрочка от ВсегдаДа на 12 месяцев без переплаты vsegdada_installment_0_0_18 - Рассрочка от ВсегдаДа на 18 месяцев без переплаты vsegdada_installment_0_0_24 - Рассрочка от ВсегдаДа на 24 месяца без переплаты! vsegdada_installment_0_0_36 - Рассрочка от ВсегдаДа на 36 месяцев без переплаты! sbrf_installment_0_0_6 - Рассрочка от СберБанка на 6 месяцев sbrf_installment_0_0_10 - Рассрочка от СберБанка на 10 месяцев sbrf_installment_0_0_12 - Рассрочка от СберБанка на 12 месяцев sbrf_installment_0_0_18 - Рассрочка от СберБанка на 18 месяца otp_installment_0_0_3 - Рассрочка «ОТП Банка» на 3 месяца otp_installment_0_0_6 - Рассрочка «ОТП Банка» на 6 месяцев otp_installment_0_0_10 - Рассрочка «ОТП Банка» на 10 месяцев otp_installment_0_0_12 - Рассрочка «ОТП Банка» на 12 месяцев otp_installment_0_0_18 - Рассрочка «ОТП Банка» на 18 месяцев mts_installment_0_0_6 - Рассрочка «МТС Банка» на 6 месяцев mts_installment_0_0_10 - Рассрочка «МТС Банка» на 10 месяцев mts_installment_0_0_12 - Рассрочка «МТС Банка» на 12 месяцев mts_installment_0_0_18 - Рассрочка «МТС Банка» на 18 месяцев freedomfinance_installment_0_0_3 - Рассрочка для граждан Казахстана на 3 месяца freedomfinance_installment_0_0_6 - Рассрочка для граждан Казахстана на 6 месяцев freedomfinance_installment_0_0_12 - Рассрочка для граждан Казахстана на 12 месяцев freedomfinance_installment_0_0_24 - Рассрочка для граждан Казахстана на 24 месяца monetaworld - Карты банков мира, кроме РФ sbrf_bnpl - Частями от Сбер |
available_payment_methods | строка | Список доступных методов оплаты. Список возможных значений аналогичен параметру payment_method. Допускается передача нескольких значений, разделяя их вертикальной чертой. Если available_payment_methods передан, то список доступных методов оплаты будет ограничен переданными кодами. Если в результате фильтрации не остается ни одного метода оплаты, данный параметр будет проигнорирован и выведется полный список доступных методов. |
urlReturn | строка | URL-адрес для возврата пользователя без оплаты |
urlSuccess | строка | URL-адрес для возврата пользователя при успешной оплате |
urlNotification | строка | служебный URL-адрес для уведомления интернет-магазина о поступлении оплаты по заказу в случае успешной обработки запроса, должен вернуть ответ с кодом 200 P.S. Для того, чтобы система учла этот параметр, также должен быть передан параметр sys |
_param_хххх | строка | произвольный сквозной параметр, где хххх - имя вашего произвольного параметра |
utm_хххх | строка | сквозной параметр в виде utm-метки, где хххх - имя вашей метки Например: utm_source |
installments_disabled | целое число | отключение рассрочки если передан и не 0, методы оплаты связанные с рассрочкой будут недоступны для выбора при оплате |
demoFlow | строка | Параметр для проверки негативного сценария с отказом по рассрочке. ❗Работает только в демо-режиме❗ Доступное значение: reject |
demo_mode | целое число | Если передано значение 1, то платеж пройдет в демо-режиме |
type | строка | Если передано значение json, то ответ от Продамуса придет в формате json |
callbackType | строка | Если передано значение json, то веб-хуки от Продамуса будут приходить в формате json |
currency | строка | Валюта платежа. Возможные значения: rub usd eur kzt P.S. Параметр должен быть в нижнем регистре. |
payments_limit | целое число | Лимит оплат по сформированной ссылке |
acquiring | строка | Эквайринг. Возможные значения: sbrf moneta qiwi xpay xpaykz |
Параметр customer_phone
customer_phone
Данный параметр является обязательным при оплате покупателем товара на вашей платежной странице, но не является обязательным при формировании ссылки.
То есть вы можете сформировать ссылку на оплату не указывая номер телефона покупателя, он заполнит это поле самостоятельно. В этом случае покупателю откроется ссылка в предварительном окне оплаты, где система попросит заполнить поле номер телефона (рис. 1⬇️) и после его заполнения и нажатия кнопки "Оплатить" ваш плательщик уже перейдет на страницу с выбором метода оплаты и сможет оплатить товар (рис.2⬇️)
Если вы хотите исключить дополнительный шаг при покупке, то можете прописать параметр customer_phone
уже при формировании ссылки на оплату, тогда ваш покупатель будет переходить сразу на шаг выбора удобного ему метода оплаты (рис.2⬇️)
Параметры urlReturn и urlSuccess актуальны, например, в тех случаях, когда оплата была инициирована на стороне Вашего интернет-магазина и необходимо чтобы пользователь вернулся обратно. В случае отсутствия данных параметров в запросе, сообщение об успехе или ошибке, после оплаты, будет показано показано на платежной странице системы Продамус.
Если передан параметр subscription, параметр products игнорируется.
Ссылка на оплату
При значении параметра do
=link ссылка возвращается в текстовом формате вида https://payform.ru/u8zDE/
Именно ее вам необходимо передать клиенту по средствам возможности вашего бота при помощи сообщения в мессенджере или через сторонние сервисы-рассыльщики
Так же есть возможность прописать развернутую ссылку с прописанными необходимыми в ней параметрами
Пример ссылки с запросом и прописанными в ней параметрами:
https://demo.payform.ru/?order_id=test&customer_phone=79998887755&products[0][price]=2000&products[0][quantity]=1&products[0][name]=Обучающие материалы&customer_extra=Полная оплата курса&do=pay
При настройке самостоятельной интеграции
Чтобы сформировать Webhook на стороне вашего сервиса для передачи данных об плате, вам необходимо добавить программный код на вашем сайте
Пример программного кода формирования ссылки для демо-формы:
В данном примере используется платежная страница демо-формы: https://demo.payform.ru
Секретный ключ демо-формы: 2y2aw4oknnke80bp1a8fniwuuq7tdkwmmuq7vwi4nzbr8z1182ftbn6p8mhw3bhz
Массив data
содержит данные для формирования платежной ссылки. Параметр signature
- подпись запроса. Формируется на основе данных формы и секретного ключа. Для формирования подписи запроса можно воспользоваться готовой библиотекой Hmac ⤵️
Как принять Уведомление об успешной оплате
При настройке принятия веб-хука с уведомлением об успешной оплате на вашем сервисе (пример уведомления об оплате здесь), вам необходимо проверить подпись пришедшего запроса. Так скажем, убедиться, что Веб-Хук пришел именно от Продамуса.
Проверка подписи необходима в целях безопасности, иначе, технически, веб-хук может отправить кто угодно. Подпись формируется на основе данных запроса и секретного ключа вашей платежной страницы.
Для проверки подписи, необходимо вызвать метод verify класса Hmac, в качестве аргументов передайте данные входящего POST запроса, секретный ключ платежной страницы и подпись из заголовков запроса. Метод сформирует подпись на основе данных запроса и секретного ключа (аргументы 1 и 2) и сравнит его с подписью, которая была передана в запросе (аргумент 3). Если метод вернул false (подписи не совпадают), необходимо вернуть http-код отличный от 200 и прекратить дальнейшую обработку. В случае, если метод вернул true (подписи совпадают), необходимо вернуть http-код 200 и отработать дальнейшие команды на стороне вашего сервиса.
Пример проверки подписи запроса:
Проверка успешной интеграции
Для тестирования используйте свою платежную странницу, в исключительном случае вы можете воспользоваться данными нашей демо-страницы, для этого необходимо запросить доступ у менеджеров
по телефону: 8 (495) 150-08-71
в личные сообщения группы в VK: https://vk.com/im?sel=-11636316
на электронную почту: sales@prodamus.ru
в Телеграм-канале: https://t.me/prodamus_bot
После всех настроек обязательно проверьте формирование ссылки. Пройдите по ней, проверьте все ли параметры прописаны корректно
После завершения тестирования интеграции с Вашей стороны, просим написать в поддержку Продамуса. Мы осуществим проверку со своей стороны.
А так же разместим соответствующую информацию на своих сайтах и группах в соцсетях
Информация носит исключительно справочный характер и не является офертой. С актуальной редакцией оферты и тарифами Вы можете ознакомиться в разделе "Документы".
Last updated