Cómo conectar Prodamus
Para conectar Prodamus, necesitarás la URL del formulario de pago y una clave secreta.
La URL del formulario de pago se proporciona después del registro, su ejemplo: demo.payform.ru.
La clave secreta se puede obtener en el panel de control, donde también debes especificar la URL para enviar notificaciones.

Instrucciones detalladas sobre cómo hacerlo
Dirección para notificaciones:
https://chatter.mavibot.ai/prodamus\_callback/result
Esta dirección debe especificarse en dos lugares de la configuración.
En la página principal de configuración, puedes seleccionar el modo de funcionamiento del formulario de pago: modo demo sin pagos o modo de recepción de pagos.

La dirección para notificaciones debe especificarse en dos lugares de la configuración del sistema de pago: en la pestaña «Configurar formulario» — para pagos únicos (regulares) y en la pestaña «Suscripciones» — para pagos por suscripción.

Dirección para notificaciones:
https://chatter.mavibot.ai/prodamus\_callback/result
Para configurar el trabajo con pagos por suscripción, ve a la pestaña «Suscripciones» e indica la dirección para notificaciones:
https://chatter.mavibot.ai/prodamus\_callback/result

¡Atención! Después de ingresar la URL, asegúrate de hacer clic en el botón «Guardar».
Para conectar Prodamus, debes ir a la sección «Adquirencia».

Luego, simplemente ingresa los datos mencionados anteriormente en el formulario:

¡Importante! Al especificar la URL del formulario de pago, no agregues https://.
La conexión está completa. Ahora veamos cómo usar esta funcionalidad.
Cómo crear un enlace de pago
Botón con la función «Pagar»
Se puede crear un enlace de pago en un botón con la función «Pagar».
Ahora veamos todos los parámetros posibles de este botón.
Parámetros obligatorios del botón «Pagar» para Prodamus
Para crear un enlace de pago, en la configuración del botón debes especificar los parámetros obligatorios:
«Monto», «Nombre del producto», así como el parámetro «Contenido pagado» — si no tienes tu propia caja registradora en línea y deseas recibir un recibo de Prodamus.
Al ir a la página de pedido, la información sobre el producto y su precio se mostrará previamente, y el cliente solo ingresará sus datos de contacto.
Si en la configuración del botón se especifican el Email y/o el teléfono del usuario, en la página de pedido se mostrarán los datos de contacto del pagador y la información sobre el producto y su precio.

Campo «Texto» – este texto se mostrará en el mensaje en el botón con el enlace de pago.
Campo «Función» – para crear un botón que enlace al pago, seleccionamos la función «Pagar».
Campo «Sistema de pago» – en la lista se muestran los sistemas de pago conectados al proyecto.
Si no hay ningún sistema de pago conectado al proyecto, este tipo de botón no estará disponible.
Campo «Nombre del producto» (obligatorio) – debes especificar el nombre exacto del producto. Por ejemplo: no «Teléfono», sino «Smartphone Xiaomi, modelo …».
Nota: no se pueden usar comillas dobles en el nombre del producto; elimínalas o sustitúyelas por comillas simples.
Campo «Monto» (obligatorio) – indicamos el precio del producto.
Menú «Información adicional» – al hacer clic en este botón, se abren campos adicionales para crear el enlace:
- Descripción del pedido
- Descuento en rublos
- Variable de Email del comprador
- Variable de número de teléfono del comprador
- Tiempo de validez del enlace
- ID del producto para suscripción (para realizar pagos automáticos)
- Contenido pagado
Casilla de verificación «Notificar al hacer clic» – se puede marcar para controlar el acceso al enlace de pago. En este caso, al hacer clic en el botón, llegará un mensaje al diálogo del cliente en Salebot, indicando que se ha accedido al enlace.

Según este mensaje, se puede configurar la lógica de trabajo posterior del bot.
Muchos sistemas de pago admiten cajas registradoras en línea en la nube, que son necesarias según los requisitos de la Ley Federal 54-FZ.
Lee las características del procesamiento de recibos en el sitio web del sistema de pago seleccionado para evitar situaciones problemáticas con la inspección fiscal.
Así es como se ve la página de pago que se abre al seguir el enlace en el botón «Pagar»:

Configuración adicional para crear un enlace de pago

Campo «Descripción del pedido» – la información ingresada en este campo se mostrará en la página de pago en el campo Datos adicionales.
Campo «Descuento» – aquí puedes indicar el monto del descuento en rublos o en rublos y kopeks. Para indicar kopeks, usa el punto como separador: 50.99
En la página de pago, en el campo Monto a pagar, se mostrará el descuento aplicado, y el precio base del producto estará tachado.
Campo «Variable de Email del comprador» (opcional, si se proporciona el número de teléfono) – aquí se indica el Email del usuario (cliente). También puedes usar una variable donde se almacena el Email, por ejemplo: #{email}
Campo «Variable de número de teléfono del comprador» (opcional, si se proporciona el Email) – aquí puedes usar una variable que contenga el número de teléfono del comprador, formato: 79000000000, por ejemplo: #{phone}
Es obligatorio tener Email y/o teléfono.
Campo «Tiempo de validez del enlace» – puedes especificar la fecha en formato dd.mm.aaaa hh:mm (por ejemplo, 25.01.2021 11:00) o establecer la fecha de caducidad del enlace mediante una variable. Por ejemplo: #{link_expired}
Campo «ID del producto para suscripción» – proporciona el valor del ID del producto para realizar pagos automáticos. Para crear una suscripción, es necesario crear un producto de suscripción.
Instrucciones completas: Crear y configurar suscripciones en Prodamus
Si se proporciona un ID de producto para suscripción, el monto del pago no se tendrá en cuenta. La información sobre el producto se toma de la tarjeta del producto en el panel de Prodamus.
El número de teléfono indicado en el pago será necesario para gestionar la suscripción.
Si se proporciona un ID de producto para suscripción, en el callback de pago exitoso se proporcionará el ID de este producto.
Campo «Contenido pagado» (condicionalmente obligatorio) – estos datos son necesarios para la fiscalización del pago a través de Prodamus, si no tienes tu propia caja registradora en línea. En este campo se indica la descripción de la compra, el precio y un enlace al contenido.
Por ejemplo: Curso ‘Trenzado de trenzas’, precio 3000 rublos, enlace a la página del curso: https://nbu.su/krasota/master-po-pleteniyu-kos/?yclid=13602995275739430911
Botón con la función «Pagar»
Si especificas el tiempo de validez del enlace, ocurrirá lo siguiente:
Si el usuario solicita el enlace de pago dentro de su período de validez (es decir, el tiempo del enlace aún no ha expirado) y está en el diálogo, no será posible realizar el pago, y se le mostrará el siguiente mensaje:

El período de validez del enlace debe ser posterior a la fecha actual, de lo contrario el cliente no podrá pagar con este enlace.
2. Cuando el usuario solicita el enlace, si actualmente no está activo
En este caso, el botón simplemente no se muestra. En las variables del cliente aparecerá la variable "error_payment_button", cuyo valor será el siguiente:
&#xNAN;"Error: El período de validez del enlace debe ser posterior a la fecha actual".
Para que el usuario pueda realizar el pago correctamente, se recomienda procesar adicionalmente esta situación.
Crea un bloque condicional como este:
Si llega el siguiente mensaje:
error_payment_button == "Error: El período de validez del enlace debe ser posterior a la fecha actual"
Entonces muestra el siguiente texto:
&#xNAN;"Lo sentimos, no pudiste pagar a tiempo, el enlace de pago ha caducado".


Variables de cliente creadas automáticamente al usar el botón con la función «Pagar»
En el momento en que el usuario recibe un bloque con el botón «Pagar», se crean automáticamente variables para el cliente:
Variable de servicio del cliente __payments – esta variable almacena el monto y el identificador del enlace creado, y es necesaria para identificar el hook que llega desde el sistema de pago.
¡La variable de servicio del cliente
__paymentsno se puede eliminar ni modificar!
La variable de cliente error_payment_button se crea automáticamente si ocurre un error al crear el botón.
En esta variable se escribe el texto del error o la respuesta de error del sistema de pago.
Los valores de las variables se actualizan al pasar al siguiente bloque.
Cómo procesar el resultado
Pago exitoso
Después de un pago exitoso, el bot recibe AUTOMÁTICAMENTE UN CALLBACK, que consta de los primeros 10 caracteres de la clave secreta del sistema de pago, la palabra _success y el monto del pago.
Para usarlo en la configuración del esquema, simplemente cópialo.
Por ejemplo: ovg58keefc_success 44, donde:
-
ovg58keefc– primeros 10 caracteres de la clave secreta del sistema de pago -
_success– resultado del procesamiento de la solicitud (pago exitoso) -
44– monto del pago
El usuario NO VE los callbacks (mensajes) que llegan del sistema de pago. Solo se muestran en la pestaña «Clientes» y son visibles para el operador.
Ejemplo de uso:
Paso 1. En el bloque «Con botón de pago», agregamos botones con la función «Pagar».
Paso 2. En el campo Condición de enlace que va desde este bloque al bloque «Pago exitoso», indicamos el callback.
Del mismo modo, si en la condición del bloque «Condición inicial» se indica el callback de pago exitoso, el trabajo se realiza de manera análoga.
Importante: Selecciona la opción «Coincidencia exacta» o «Por presencia de palabras clave».
❗️Si decides verificar el pago exactamente en la flecha indicada por la condición, piensa cuidadosamente en la lógica de tu esquema. Si el cliente abandona el bloque que pasa por la condición con el callback, no se producirá la transición al bloque. Es mejor usar este método de verificación solo si el cliente no cambia su posición en el embudo.
En esquemas donde el cliente se mueve entre bloques, es más efectivo usar la opción de indicar el callback en el bloque «Condición inicial».

Pago exitoso para productos con suscripción automática
Después de un pago exitoso, el bot recibe AUTOMÁTICAMENTE UN CALLBACK, que consta de los primeros 10 caracteres de la clave secreta del sistema de pago, la palabra _success y el ID del producto de suscripción.
Por ejemplo: 214009eefc_success 618117, donde:
-
009eefc– primeros 10 caracteres de la clave secreta del sistema de pago -
_success– resultado del procesamiento de la solicitud (pago exitoso) -
618117– ID del producto de suscripción

Pago fallido
En caso de error al realizar el pago, el bot recibe AUTOMÁTICAMENTE UN CALLBACK, que consta de los primeros 10 caracteres de la clave secreta del sistema de pago, la palabra _fail y el monto del pago.
Por ejemplo: ovg58keefc_fail 44, donde:
-
ovg58keefc– primeros 10 caracteres de la clave secreta del sistema de pago -
_fail– resultado del procesamiento de la solicitud (pago no realizado o error) -
44– monto del pago
Esto depende del sistema de pago. No todos los sistemas de pago envían un callback sobre el error de pago.
Si el monto especificado en la configuración del botón difiere del monto pagado por el cliente, el bot recibe AUTOMÁTICAMENTE UN CALLBACK. Este consta de los primeros 10 caracteres de la clave secreta del sistema de pago, la palabra _different_amounts y el ID único del pago.
Мысалы: ovg58keefc_different_amounts 123456, мұндағы:
-
ovg58keefc– төлем жүйесінің құпия кілтінің алғашқы 10 символы -
_different_amounts– сұраныстың өңделу нәтижесі (төлем сомасы сілтемедегі сомадан өзгеше) -
123456– төлемнің бірегей ID-сі
Калькулятордағы get_prodamus_payment_url функциясы
Төлемге сілтеме жасау үшін Калькулятор блокындағы get_prodamus_payment_url функциясын пайдалануға болады.
Калькулятор өрісінде айнымалыға осы функцияның мәнін тағайындаймыз: get_prodamus_payment_url.
Айнымалының атын өзіңіз таңдайсыз. Скриншоттарда айнымалылардың атын беру мысалдары көрсетілген.
Осы айнымалыға төлемге арналған сілтеме жазылады. Айнымалыны хабарламада сілтеме ретінде көрсетуге немесе «Төлеу» мәтіні бар батырмаға орналастыруға болады.
Төлемге сілтеме мысалы: https://payform.kz/7p3JR8/
Калькулятор
Мысал 1:

Параметрлердің сипаттамасы
your_variable =`` get_prodamus_payment_url(amount, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Функция параметрлері:
| Параметр | Параметр мәні |
|---|---|
amount |
Төлем сомасы – бүтін сан немесе нүктемен бөлінген сан ретінде берілуі мүмкін. Мысалы: 25 немесе 52.5. (міндетті параметр) |
product_name |
Тауар атауы (міндетті параметр) |
expired |
Төлем сілтемесінің жарамдылық уақыты – Нақты уақытты көрсету де мүмкін: Стандартты айнымалыларды да қолдануға болады, мысалы, сілтеменің жарамдылығын 30 минутқа орнату:
Егер бұл параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша, қос тырнақша немесе |
customer_phone |
Сатып алушының телефон нөмірі – міндетті емес, егер customer_email параметрі берілсе.Осы параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады. |
customer_email |
Сатып алушының Email мекенжайы – міндетті емес, егер customer_phone параметрі берілсе.Осы параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады. |
discount |
Жеңілдік мөлшері – параметрді бүтін сан немесе нүктесі бар сан ретінде беруге болады: 25 немесе 63.5.Бұл параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады. |
description |
Тауар сипаттамасы (егер көрсетілмесе, автоматты түрде 'Оплата счета order_id' толтырылады).Осы параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша немесе қос тырнақша беруге болады. |
extra_params |
Қосымша параметрлер, осы функцияда жоқ параметрлер. Мысалы:
Бұл параметрді өткізіп жібергіңіз келсе, орнына бір тырнақша/қос тырнақша немесе |
products_for_receipt |
50-тен 4000 символға дейінгі жол форматында Бұл параметр міндетті, егер сізде өзіңіздің онлайн кассаңыз болмаса, Prodamus арқылы төлемді фискализациялау үшін қажет. |
Мысал
extra_params = {"payments_limit": "3"}
products_for_receipt = "Курс ‘Лещ аулау’, бағасы 4999 теңге, курс бетіне сілтеме: https://www.lovilescha.ru/courses/poimai\_kilogram/" 
link_prodamus_url = get_prodamus_payment_url( 4999, 'Курс ‘Лещ аулау’', '27.03.2023 17:00', '79167777771', '[email protected]', 20, 'Нарықтағы ең үздік курс', extra_params, products_for_receipt
Бұл мысалда:
-
extra_params– қосымша параметрлер (мысалы, төлем шегі). -
products_for_receipt– чекте көрсетілетін тауар туралы ақпарат. -
get_prodamus_payment_urlфункциясы арқылы төлемге сілтеме жасалады.
Егер блокта бірнеше сілтеме алу функциялары болса және қате жіберілсе, қате мәні
error_payment_funcайнымалысына жазылады.Қате соңғы функция бойынша Калькуляторда жазылады.
payment_sum айнымалысы және қосымша параметрлер арқылы сілтемені жасау
Назар аударыңыз:
payment_sumайнымалысына мән соңғы айнымалыдан беріледі, яғни міндетті емес айнымалылардан кейін:payment_description,product_nameжәне т.б.
Төлемге сілтеме жасау үшін Калькулятор өрісінде payment_sum айнымалысының мәнін орнату жеткілікті.
Осыдан кейін автоматты түрде prodamus_pay_url айнымалысы пайда болады.
Төлемге сілтеме мысалы: https://payform.ru/7p3JR8/
Осы айнымалыны хабарламада сілтеме ретінде көрсетуге немесе «Төлеу» мәтіні бар батырмаға орналастыруға болады.
payment_sum айнымалысын жарияламас бұрын мына міндетті емес айнымалыларды көрсетуге болады:
| Параметры функции | Описание параметра |
|---|---|
| product_name | Тауардың атауы (егер көрсетілмесе, автоматты түрде "Шотты төлеу order_id' толтырылады) – төмендегі скриншотта қай жерде көрсетілетіні көрсетілген. |
| payment_description |
Тауар сипаттамасы (егер көрсетілмесе, автоматты түрде 'Оплата счета order_id' толтырылады) – төмендегі скриншотта қай жерде көрсетілетіні көрсетілген. |
| discount_value |
Жеңілдік мөлшері (мысалы, discount_value = 25 немесе discount_value = 50.25) |
| customer_phone | Сатып алушының телефон нөмірі – міндетті емес, егер басқа параметр берілсе. |
| customer_email | Сатып алушының Email мекенжайы |
| link_expired | Төлем сілтемесінің жарамдылық уақыты – |
| link_expired | Сонымен қатар, нақты уақытты көрсетуге болады, формат: |
| currency |
Төлем валютасы, әдепкі бойынша
Бұл параметр кіші әріптермен берілуі керек. |
| payment_title | Төлем тақырыбы (127 символға дейін). Егер көрсетілмесе, автоматты түрде келесі мәтінмен толтырылады: |
| payment_description | Төлемнің қысқаша сипаттамасы (127 символға дейін) |
| locale | Төлем бетінің тілі – |
| products_for_receipt |
50-тен 4000 символға дейінгі жол форматында Бұл міндетті параметр, егер сізде өзіңіздің онлайн кассаңыз болмаса, Prodamus арқылы төлемді фискализациялау үшін қажет. |
| payment_sum | (міндетті) төлем сомасы |
Las variables
discount_value,customer_phone,customer_emailylink_expiredtambién son relevantes para las suscripciones.

Ejemplo de implementación.
En el primer bloque establecemos el monto del pago:

En el siguiente paso, mostramos el enlace prodamus_pay_url donde sea necesario:

La variable prodamus_available_payment_methods se define antes de declarar payment_sum.
Valores posibles:
| AC | Pago con tarjeta emitida en la Federación Rusa |
| ACkz | Pago con tarjeta de Kazajistán |
| ACf | Pago con tarjetas de países de la CEI, excepto la Federación Rusa |
| ACEURNMBX | Pago con tarjeta EUR de todos los países, excepto Rusia y Bielorrusia |
| SBP | Pago rápido, sin ingresar datos de la tarjeta. Para tarjetas rusas |
| QW | Qiwi wallet |
| PC | YooMoney |
| GP | Terminal de pago |
| sbol | Sberbank Online |
| invoice | Pago por factura |
| installment | Pago a plazos a través de Prodamus |
| installment_5_21 | Pago a plazos a 3 meses a través de Prodamus |
| installment_6_28 | Pago a plazos a 6 meses a través de Prodamus |
| installment_10_28 | Pago a plazos a 10 meses a través de Prodamus |
| installment_12_28 | Pago a plazos a 12 meses a través de Prodamus |
| installment_0_0_3 | Pago a plazos a 3 meses a través de Tinkoff |
| installment_0_0_4 | Pago a plazos a 4 meses a través de Tinkoff |
| installment_0_0_6 | Pago a plazos a 6 meses a través de Tinkoff |
| installment_0_0_10 | Pago a plazos a 10 meses a través de Tinkoff |
| installment_0_0_12 | Pago a plazos a 12 meses a través de Tinkoff |
| installment_0_0_24 | Pago a plazos a 24 meses a través de Tinkoff |
| installment_0_0_36 | Pago a plazos a 36 meses a través de Tinkoff |
| credit | Crédito a través de Tinkoff |
| vsegdada_installment_0_0_4 | Pago a plazos a 4 meses a través de “VsegdaDa” (no funciona con available_payment_methods) |
| vsegdada_installment_0_0_6 | Pago a plazos a 6 meses a través de “VsegdaDa” |
| vsegdada_installment_0_0_10 | Pago a plazos a 10 meses a través de “VsegdaDa” |
| vsegdada_installment_0_0_12 | Pago a plazos a 12 meses a través de “VsegdaDa” |
| vsegdada_installment_0_0_24 | Pago a plazos a 24 meses a través de “VsegdaDa” |
| vsegdada_installment_0_0_36 | Pago a plazos a 36 meses a través de “VsegdaDa” |
| sbrf_installment_0_0_6 | Pago a plazos a 6 meses a través de Sberbank |
| sbrf_installment_0_0_10 | Pago a plazos a 10 meses a través de Sberbank |
| sbrf_installment_0_0_12 | Pago a plazos a 12 meses a través de Sberbank |
| sbrf_installment_0_0_24 | Pago a plazos a 24 meses a través de Sberbank |
| sbrf_installment_0_0_36 | Pago a plazos a 36 meses a través de Sberbank |
| otp_installment_0_0_6 | Pago a plazos a 6 meses a través de “OTP Bank” |
| otp_installment_0_0_10 | Pago a plazos a 10 meses a través de “OTP Bank” |
| otp_installment_0_0_12 | Pago a plazos a 12 meses a través de “OTP Bank” |
| otp_installment_0_0_24 | Pago a plazos a 24 meses a través de “OTP Bank” |
| otp_installment_0_0_36 | Pago a plazos a 36 meses a través de “OTP Bank” |
| mts_installment_0_0_6 | Pago a plazos a 6 meses a través de “MTS Bank” |
| mts_installment_0_0_10 | Pago a plazos a 10 meses a través de “MTS Bank” |
| mts_installment_0_0_12 | Pago a plazos a 12 meses a través de “MTS Bank” |
| mts_installment_0_0_24 | Pago a plazos a 24 meses a través de “MTS Bank” |
| mts_installment_0_0_36 | Pago a plazos a 36 meses a través de “MTS Bank” |
| monetaworld | Tarjetas de bancos mundiales, excepto Rusia |
| sbrf_bnpl | Pago a plazos a través de Sber |
Se permite separar varios valores mediante una barra vertical.
Por ejemplo:
prodamus_available_payment_methods = "AC|PC|QW"
prodamus_currency – este es otro parámetro adicional que permite mostrar el monto en una moneda específica.
Monedas posibles:
-
kzt– para tenge -
eur– para euro -
usd– para dólar
De esta manera, el monto indicado en el enlace estará en la moneda seleccionada.
Al recibir el callback payment_callback se debe prestar atención a los parámetros currency y currency_sum, que indican la moneda y el monto.
Si no se especifica, se redirige a una página sin métodos de pago.
Los métodos de pago se pueden agregar mediante la asistencia. Los métodos agregados se pueden ver en la configuración de la página o probar creando un enlace de pago.


Cómo procesar el resultado
Pago exitoso
Importante: después de un pago exitoso o fallido, llegan callbacks al bot, con los cuales puede determinar si el pago se realizó con éxito.
Los callbacks se ven como mensajes del usuario en el sistema, pero el usuario no puede enviarlos. Tienen la forma de una combinación de clave secreta y estado. Por ejemplo:
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_success
o
453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66_fail
Después de un pago exitoso, la variable prodamus_payment_completed toma automáticamente el valor True.
Nota: Los callbacks llegan con un ligero retraso, por lo que es mejor enviar un mensaje al usuario después de enviar el enlace:
“Después de realizar el pago, espere la confirmación de que el pago se ha completado con éxito.”
Estructura del callback
Para los enlaces creados mediante el botón de Pago o la función en la Calculadora, después del pago llega automáticamente un callback al bot. Su contenido:
<clave_secreta>_success <monto_del_pago>
Por ejemplo:
ovg58keefc_success
-
ovg58keefc– clave secreta completa del sistema de pago -
_success– resultado del procesamiento de la solicitud (pago exitoso)
Uso práctico
Se puede procesar un pago exitoso mediante un bloque condicional y mostrar el mensaje correspondiente al usuario.

El tipo de comparación debe ser "Full match" / "Coincidencia completa"
Para realizar un nuevo pago, es obligatorio restablecer la variable payment_sum a cero y eliminar el enlace creado anteriormente. Solo entonces se puede asignar un nuevo valor a la variable payment_sum y obtener el enlace actualizado.
Desactivación/Reactivación de la suscripción
Además, en el sistema Prodamus hay notificaciones sobre si la suscripción se ha activado o cancelado:

«El suscriptor desactivó la suscripción» – si la suscripción se canceló manualmente (por ejemplo, en caso de darse de baja).
Este mensaje puede llegar antes de que finalice el período pagado actual. La acción depende de su decisión: ignorar, tomar bajo control o intentar recuperar al usuario.
«El suscriptor reactivó la suscripción» – la suscripción se ha restaurado.
Este mensaje puede llegar si el usuario restaura la suscripción antes de que finalice el período pagado actual. La acción depende de su decisión: ignorar o eliminar de la lista de monitoreo.
«Desactivación de la suscripción» – cuando la suscripción se cancela después de varios pagos fallidos.
Guardar valores del callback
Después de que llegue el mensaje sobre un pago exitoso, en la variable payment_callback se escribe el callback de Prodamus, que contiene todos los datos del pago. Puede guardar estos datos y utilizarlos como desee.
Ejemplo de callback:
{
"date": "2021-03-30T11:44:43+03:00",
"order_id": "757679",
"order_num": "",
"domain": "demo.payform.ru",
"sum": "14.50",
"customer_phone": "+77777777777",
"customer_extra": "Товар",
"payment_type": "Пластиковая карта Visa, MasterCard, МИР",
"commission": "3.5",
"commission_sum": "0.51",
"attempt": "1",
"discount_value": "10.5",
"products[0][name]": "Доступ к обучающим материалам",
"products[0][price]": "14.50",
"products[0][quantity]": "1",
"products[0][sum]": "14.50",
"payment_status": "success",
"payment_status_description": "Успешная оплата",
"payment_init": "manual"
}
Al crear el enlace, se pueden especificar las variables product_name y payment_description. Entonces, cuando llegue el callback, se pueden obtener de la siguiente manera:
product = get(payment_callback,'products[0][name]')
description = get(payment_callback,'customer_extra')

Tenga en cuenta: a la variable payment_sum se le asigna el último valor, que se encuentra después de las variables opcionales: payment_description, product_name.
El monto se puede obtener de la siguiente manera:
summa = get(payment_callback, 'sum')
Callbacks disponibles
Además de los callbacks principales de pago exitoso, en el chat llegan mensajes que el usuario no ve, de la siguiente manera:
callbacks
- El suscriptor desactivó la suscripción (más detalles aquí)
- El suscriptor reactivó la suscripción (más detalles aquí)
- Suscripción finalizada
- Pago no exitoso - nota con explicación (en la captura de pantalla anterior)
- Notificación de próximo cobro - fecha y hora del próximo cobro
- Solicitud de pago a plazos con estado
Ejemplos de callbacks en el diálogo con el cliente
- El suscriptor desactivó la suscripción
- El suscriptor reactivó la suscripción
- Suscripción finalizada
- Pago no exitoso - Fondos insuficientes.
- Pago no exitoso - La tarjeta ha caducado.
- Pago no exitoso - Límite de la tarjeta excedido.
- Pago no exitoso - Tarjeta perdida
- Pago no exitoso - Error del sistema
- Pago no exitoso - Operación rechazada. Contacte al banco emisor de la tarjeta.
- Pago no exitoso - Rechazo de la operación por parte del banco emisor.
- Pago no exitoso - Rechazo de la operación por parte del banco.
- Notificación de próximo cobro - dd.mm.aaaa hh:mm
- Solicitud de pago a plazos aprobada
- Solicitud de pago a plazos cancelada
- Solicitud de pago a plazos rechazada
A su criterio, puede configurar el envío de cualquier mensaje al usuario. Por ejemplo, enviar un mensaje en caso de que falle un pago automático.
Los bloques de respuesta para un mensaje sobre un pago fallido por una razón específica se pueden configurar de la siguiente manera:

Puedes configurar el envío de un mensaje para todos los pagos fallidos, independientemente del motivo, de la siguiente manera:

En todos los callbacks, si el texto contiene la frase «Pago fallido», se enviará al usuario un mensaje con el texto que hayas especificado.
Cómo realizar un pago por suscripción
Cómo crear una suscripción
Para crear una suscripción, primero debes crear un producto de suscripción.
Guía completa: Cómo crear y configurar una suscripción
Luego, copiamos el ID del producto de suscripción. Por ejemplo, a continuación se muestra dónde obtenerlo:
Para crear un enlace de pago de suscripción, es necesario asignar el ID del producto de suscripción a la variable prodamus_subscription. Después de esto, aparecerá automáticamente la variable prodamus_pay_url.
La variable prodamus_pay_url se puede mostrar en pantalla como un enlace o colocarla en un botón con el texto «Pagar». Ejemplo de enlace: https://payform.kz/7p3JR8/
El procesamiento del resultado se realiza de la misma manera que con un pago único (como se leyó anteriormente).
Después de una suscripción exitosa, al usuario se le asigna la variable customer_phone ingresada durante el pago. El número de teléfono es necesario para gestionar la suscripción.
Si no se proporciona customer_email, customer_phone es obligatorio para gestionar la suscripción.
Cómo crear un enlace de suscripción con la función get_prodamus_subscription_url
Consideremos otro método para crear un enlace de pago de suscripción para un producto.
- Se crea un producto de suscripción en el panel de Prodamus.
Puedes consultar la guía completa en el siguiente enlace:
Cómo crear y configurar una suscripción - Luego, copiamos el ID del producto de suscripción. Por ejemplo, a continuación se muestra dónde obtenerlo:
Para obtener un enlace de pago de un producto por suscripción en la Calculadora, especificamos la función
get_prodamus_subscription_url(subscription_id, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Calculadora
Ejemplo 1: Enlace de pago de un producto por suscripción

Descripción de parámetros
link = get_prodamus_subscription_url(subscription_id, product_name, expired, customer_phone, customer_email, discount, description, extra_params, products_for_receipt)
Parámetros de la función:
| Parámetro | Valor del parámetro |
|---|---|
subscription_id |
ID del producto de suscripción – se puede copiar desde el panel de Prodamus (parámetro obligatorio). |
product_name |
Nombre del producto (parámetro obligatorio). |
expired |
Período de validez del enlace de pago – en formato dd.mm.aaaa (por ejemplo, 25.01.2021). También se puede especificar en el campo «Calculadora»:
El parámetro También se pueden usar variables estándar, por ejemplo, para establecer la validez del enlace en 30 minutos:
Si deseas omitir este parámetro, puedes pasar comillas simples o dobles, o el valor |
customer_phone |
Número de teléfono del pagador – opcional, si se proporciona el parámetro Si deseas omitir este parámetro, introduce comillas simples o dobles. |
customer_email |
Correo electrónico del pagador – opcional, si se proporciona el parámetro Si deseas omitir este parámetro, introduce comillas simples o dobles. |
discount |
Monto del descuento – el parámetro se puede pasar como un número entero o decimal: 25 o 63.5. Si deseas omitir este parámetro, introduce comillas simples o dobles. |
description |
Descripción del producto – si no se especifica, por defecto se completa con Si deseas omitir este parámetro, introduce comillas simples o dobles. |
extra_params |
Parámetros adicionales que no están en esta función. Ejemplo:
Si deseas omitir este parámetro, puedes pasar comillas simples/dobles o el valor |
products_for_receipt |
Cadena de 50 a 4000 caracteres, formato: Ejemplo: Este parámetro es obligatorio si no tienes tu propia caja registradora en línea y necesitas fiscalizar los pagos a través de Prodamus. |
Ejemplo de código para copiar
extra_params = {"payments_limit": "3"} \
products_for_receipt = "Curso ‘Curso de pesca de besugo’, suscripción mensual precio 2000 tenge, enlace a la página del curso: https://www.lovilescha.ru/courses/poimai\_kilogram/" \
link_prodamus_sub = get_prodamus_subscription_url(618988, 'Curso ‘Curso de pesca de besugo’', '27.03.2023 17:02', '79167777771', '[email protected]', 20, 'El mejor curso del mercado', extra_params, products_for_receipt)
Si se produce un error al obtener el enlace a través de varias funciones en un bloque, el valor del error se escribe en la variable
error_payment_func.El error se registra en la Calculadora según la última función.
Cómo gestionar el estado de la suscripción
Este método es solo para suscripciones reales, no hay vinculación de tarjeta en modo demo.
Para gestionar la suscripción, es obligatorio proporcionar el parámetro customer_phone o customer_email.
Para dar de baja a un usuario de la suscripción, es necesario crear un bloque y llamar a la siguiente función:
delete_subscription_prodamus
Ejemplo de parámetros:
{
"customer_phone": "#{customer_phone}",
"id_subscription":"#{prodamus_subscription}",
"url":"https://demo.payform.ru/",
"secret_key":"453e8fba8b7cef9ce58dc6e18e25b39ad5a05748175a3f205f2b084acbfc3b66",
"switcher":"0",
"profile_id":"12345"
}
-
url– URL del formulario de pago, obtenido de la configuración en el constructor -
secret_key– clave secreta obtenida de la configuración -
id_subscription– ID del producto de suscripción -
customer_phone– teléfono del titular de la suscripción -
switcher– gestión de la suscripción:0– cancelar suscripción,1– reactivar suscripción -
profile_id– ID del perfil en el sistema Prodamus
Nota:
Si llega un ID de perfil, se guarda en la variable profile_id.
Se puede pasar profile_id a la función en lugar de customer_phone o customer_email para cancelar la suscripción.
Ejemplo: configuración de bloques de suscripción

Ten en cuenta que la función devuelve status, que puedes guardar y procesar según tu criterio. Al cancelar o reactivar la suscripción con éxito, status = ok.
Función para gestionar la suscripción
prodamus_subscription_switch_status(subscription_id, switcher, customer_phone, customer_email, profile_id) Parámetros:
subscription_id – ID del producto de suscripción
switcher – gestión de la suscripción: 0 – cancelar suscripción, 1 – reactivar suscripción
customer_phone – teléfono del titular de la suscripción; opcional, si se especifica customer_email
customer_email – dirección de correo electrónico del titular de la suscripción; opcional, si se especifica customer_phone
profile_id – ID del perfil en el sistema Prodamus

Ejemplo 1: se proporciona el parámetro customer_phone, se omite customer_email:
stat = prodamus_subscription_switch_status('618117', '0', '75431312321')
Ejemplo 2: se proporciona el parámetro customer_email, se omite customer_phone:
stat = prodamus_subscription_switch_status('618117', '0', '', '[email protected]')
La función devuelve
oksi todas las operaciones se completan con éxito o devuelve una descripción del error si ocurre algún error.
Gestión de descuentos en la suscripción
Esta función establece el monto del descuento para los pagos siguientes de la suscripción. El descuento puede aplicarse a un número limitado o ilimitado de pagos.
prodamus_subscription_discount(subscription_id, discount, customer_phone, num, profile_id)
Parámetros:
-
subscription_id– ID de la suscripción -
discount– número decimal con dos dígitos después del punto; el valor debe ser mayor que cero y no exceder el costo base de la suscripción -
customer_phone– número de teléfono del cliente, formato:+79999999999(opcional, si existe la variablecustomer_email; aparece después del primer pago) -
num– número de pagos a los que se aplica el descuento (opcional; si no se especifica, el descuento se aplica a todos los pagos) -
profile_id– ID del perfil en el sistema Prodamus
Si la solicitud se ejecuta con éxito, la función devuelve 'ok'; si ocurre un error, la función devuelve una descripción del error.
¡El monto del descuento y el intervalo solo se sobrescriben si se vuelve a llamar a la función con nuevos valores!
Ejemplos:
1. Aplicar un descuento de 1₽ a todos los pagos automáticos siguientes (no se especifica el número de teléfono, ya que se toma automáticamente de la variable customer_phone; el monto del descuento se aplica por defecto a toda la duración de la suscripción):
r = prodamus_subscription_discount('624034', '1')
2. Ejemplo de aplicación de un descuento de 2₽ a los siguientes 3 pagos (el número de teléfono se pasa con comillas vacías, ya que se toma automáticamente de la variable customer_phone):
r = prodamus_subscription_discount('624034', '2', '', '3')
3. Ejemplo de especificación de un descuento con decimales (el separador es el punto, los valores se especifican sin comillas), el número de teléfono se puede pasar a través de una variable.

r = prodamus_subscription_discount(#{prodamus_subscription}, 10.25, #{customer_phone}, 3)
Cómo establecer la fecha del próximo pago de una suscripción
Este método permite posponer la fecha del próximo pago de una suscripción. La fecha solo se puede mover hacia adelante en el tiempo respecto a la fecha de pago actualmente establecida, lo que permite aumentar el período de membresía en el club.
Por ejemplo, esto se puede utilizar como un bono para los suscriptores.
Para ello, es necesario utilizar la siguiente función:
prodamus_subscription_payment_date(subscription_id, date, customer_phone, profile_id)
Parámetros:
-
subscription_id– identificador de la suscripción -
date– fecha en formato dd.mm.aaaa hh:mm o dd.mm.aaaa; si solo se proporciona dd.mm.aaaa, la hora será 00:00 -
customer_phone– opcional; si no se especifica, se toma de la variablecustomer_phone; si no se encuentra, la función no funcionará -
profile_id– ID del perfil en el sistema Prodamus
Cómo enviar parámetros a Prodamus
Para enviar los parámetros necesarios (por ejemplo, la fecha de inicio de la suscripción, desactivar el pago a plazos, etc.) al sistema Prodamus, agregue el prefijo prodamus_ al nombre de la variable.
Luego, al crear el enlace de pago, los parámetros de esta variable se enviarán automáticamente al sistema de pago.
Cómo probar el pago
¡Solo probamos el pago!
Al configurar la integración y los embudos de pago, puede usar tarjetas de prueba para que no se debite dinero de su cuenta.
Primero, cambie su página de pago al modo DEMO ⤵
No olvide presionar el botón "Guardar".

Puede usar cuentas de prueba para realizar un pago de prueba.
Tarjetas de prueba de Sberbank:
MIR
Número de tarjeta: 2202 2050 0001 2424
Fecha de vencimiento: 05/35
Código de verificación en el reverso (CVV): 669
MasterCard
Número de tarjeta: 5469 9801 0004 8525
Fecha de vencimiento: 05/26
Código de verificación en el reverso (CVV): 041
Código de verificación 3‑D Secure: 111111
Visa
Número de tarjeta: 4006 8009 0096 2514
Fecha de vencimiento: 05/26
Código de verificación en el reverso (CVV): 941
Código de verificación 3‑D Secure: 111111
❗️Al realizar un pago con cuentas de prueba, todos los embudos e integraciones configurados funcionan como en un pago normal❗️
Formulario verificado
Para aceptar pagos reales, el formulario debe cambiarse al modo de trabajo. Es decir, el interruptor del modo demo debe colocarse en la posición rojo abierto.