Cómo Configurar Robokassa
Veamos cómo aceptar pagos en un bot a través del servicio Robokassa.
- Crea una tienda en línea en tu cuenta de Robokassa y especifica la siguiente configuración técnica:
- Algoritmo de cálculo de hash:
MD5 - URL de resultado: https://chatter.mavibot.ai/robokassa_callback/result
- Método de envío de datos para la URL de resultado:
GET - URL de éxito: https://chatter.mavibot.ai/robokassa_callback/success
- Método de envío de datos para la URL de éxito:
GET - URL de fallo: https://chatter.mavibot.ai/robokassa_callback/fail
- Método de envío de datos para la URL de fallo:
GET

Crea contraseñas de prueba y realiza la configuración inicial en modo de prueba.
Cómo Conectar Robokassa a MaviBot
Ve a la sección Adquirencia y haz clic en Conectar en la tarjeta de Robokassa:

Completa el formulario en la ventana que se abre:
- ID de tienda — el ID de la tienda, que puedes encontrar en la configuración de la tienda en tu cuenta de Robokassa.
- Contraseña #1 y Contraseña #2 — secuencias únicas generadas de letras y números.
- Tasa de IVA — especifica el código apropiado para transferir el valor del IVA. Este campo establece la tasa impositiva en la caja registradora. Se determina por separado para cada tipo de producto, pero se aplica a todas las unidades de ese producto en conjunto.
Valores disponibles:
- Sin IVA.
- IVA al 0%.
- IVA al 5%.
- IVA calculado al 12%.
- IVA calculado al 16%.
Cómo Generar un Enlace de Pago
Puedes generar un enlace de pago en un bloque usando UNO DE los métodos disponibles:
- Un botón con la función Pago, o
- La función
get_robokassa_payment_urlen la Calculadora, o- Generar un enlace usando la variable
payment_sumy parámetros adicionales — un método obsoleto pero aún funcional.
Botón de Pago
Puedes generar un enlace de pago usando un botón con la función Pago.
Aprende cómo crear un botón con la función Pago aquí.
Revisemos todos los parámetros disponibles del botón.
Parámetros Requeridos del Botón de Pago
Para generar un enlace de pago, especifica los siguientes parámetros requeridos en la configuración del botón:
- Monto
- Nombre del producto

Monto — especifica el precio del producto en rublos.
Nombre del producto — este campo puede contener solo letras inglesas o rusas, números y signos de puntuación. La longitud máxima es de 100 caracteres. Esta información se muestra en la interfaz de Robokassa y en el recibo electrónico que recibe el cliente después de un pago exitoso.
NO uses comillas dobles en el nombre del producto. Quítalas o reemplázalas con comillas simples.
Casilla de verificación de pago automático — habilita pagos recurrentes.
Casilla de verificación de notificación de clic — habilita el seguimiento de clics en el enlace de pago. Si está habilitada, aparecerá una notificación sobre el clic en la conversación del cliente en MaviBot.
Puedes configurar la lógica adicional del bot basada en esta notificación.
Muchos sistemas de pago admiten cajas registradoras en línea en la nube requeridas por la Ley Federal No. 54-FZ.
Revisa los requisitos del recibo en el sitio web de tu proveedor de pago seleccionado para evitar problemas con las autoridades fiscales.
Datos del Recibo
Abre el menú Datos del recibo para mostrar los parámetros del recibo:

Nombre del producto — requerido para generar un recibo.
NO uses comillas dobles en el nombre del producto. Quítalas o reemplázalas con comillas simples.
Monto total en rublos — especifica el monto total del pago basado en la cantidad del producto. Si la cantidad es 1, el monto total en rublos es igual al valor ingresado en el campo Monto requerido.
Cantidad — la cantidad o peso del producto. Puedes pasar un número entero o un número decimal usando un punto, por ejemplo:
5
o
10.3
Variables de Cliente Creadas Automáticamente al Usar un Botón de Pago
Tan pronto como el usuario recibe un bloque que contiene un botón Pago, se crean automáticamente las siguientes variables de cliente:

La variable de servicio del cliente:
__payments
almacena el monto del pago y el identificador del enlace de pago generado. Es necesario para identificar el webhook recibido del proveedor de pago.
La variable de servicio
__paymentsNO DEBE ser eliminada ni modificada.
La variable de cliente:
error_payment_button
se crea si ocurre un error al generar el botón de pago.
El valor de error_payment_button contendrá el texto del error o la respuesta de error devuelta por el proveedor de pago.
Los valores de las variables se vuelven actuales después de que el usuario se mueve al siguiente bloque.
Cómo Procesar el Resultado
Ten en cuenta
Robokassa envía notificaciones solo para transacciones exitosas a través de la URL de resultado.
Robokassa no proporciona callbacks para pagos fallidos.
La URL de fallo es solo la página de pago fallido a la que se redirige al pagador si ocurre un error en la página de pago.
Pago Exitoso
Después de configurar el pago correctamente y generar el enlace de pago, prueba la configuración.
Si el pago es exitoso, se enviará un callback AUTOMÁTICAMENTE a la conversación del cliente en la sección Clientes.
El callback consiste en:
- 10 caracteres de la clave secreta del proveedor de pago;
- la palabra
_success; - el monto del pago después de un espacio.
El callback se genera automáticamente. No necesitas crearlo tú mismo ni solicitarlo al equipo de soporte del proveedor de pago.


Ejemplo:
ovg58keefc_success 2999
Donde:
-
ovg58keefc— 10 caracteres de la clave secreta del proveedor de pago; -
_success— el resultado del procesamiento de la solicitud que indica un pago exitoso; -
2999— el monto del pago.
Ejecución del bloque:

Callback:

Los callbacks del proveedor de pago NO SON VISIBLES para el usuario.
Se muestran solo en la sección Clientes y son visibles para el operador o administrador.
Ejemplo de Configuración de una Respuesta de Callback
En un bloque condicional, como un bloque Condición de inicio o un bloque No estado con condición, especifica el callback recibido después del pago.
Selecciona Coincidencia exacta o Contiene palabras clave como tipo de coincidencia.

Después del pago, el cliente recibirá el mensaje del bloque configurado para responder al callback:

Error de Monto de Pago
Si el monto especificado en la configuración del botón difiere del monto pagado por el cliente, el bot recibirá automáticamente un callback que consiste en:
- 10 caracteres de la clave secreta del proveedor de pago;
-
_different_amounts; - el ID de pago único después de un espacio.
Ejemplo:
ovg58keefc_different_amounts 123456
Donde:
-
ovg58keefc— 10 caracteres de la clave secreta del proveedor de pago; -
_different_amounts— indica que el monto pagado difiere del monto en el enlace de pago; -
123456— el ID de pago único.
Función get_robokassa_payment_url en la Calculadora
Puedes generar un enlace de pago usando la función get_robokassa_payment_url en el bloque Calculadora.
En el campo Calculadora, asigna el resultado de la función get_robokassa_payment_url a una variable.
Puedes elegir el nombre de la variable tú mismo. Las capturas de pantalla muestran nombres de variables de ejemplo.
El enlace de pago se guardará en esta variable.
Puedes mostrar la variable como un enlace en un mensaje o colocarla en un botón con texto como Pagar.
Ejemplo de enlace de pago:
https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=test_salebot&OutSum=800&InvId=1412&IsTest=1&SignatureValue=0427369c3bd068bae30935f896060dda
Muchos sistemas de pago admiten cajas registradoras en línea en la nube requeridas por la Ley Federal No. 54-FZ.
Revisa los requisitos del recibo en el sitio web de tu proveedor de pago seleccionado para evitar problemas con las autoridades fiscales.
Calculadora
Ejemplo 1:

Descripción de Parámetros
get_robokassa_payment_url(amount, description, products_for_receipt, recurrent, currency)
Parámetros de la Función
| Parámetro | Descripción |
|---|---|
amount |
Monto del pago. Especifica el precio del producto en rublos. Parámetro requerido. |
description |
Nombre del producto. Este campo puede contener solo letras inglesas o rusas, números y signos de puntuación. La longitud máxima es de 100 caracteres. Esta información se muestra en la interfaz de Robokassa y en el recibo electrónico que recibe el cliente después de un pago exitoso. Parámetro requerido. |
products_for_receipt |
Parámetros de generación del recibo. Lee más aquí. |
recurrent |
Habilita pagos recurrentes. Pasa 1 si los pagos recurrentes están habilitados, o None si están deshabilitados. |
currency |
Código de moneda de tres letras. El valor debe coincidir estrictamente con los parámetros aceptados por Robokassa.USD — dólar estadounidense;EUR — euro;KZT — tenge. |
Ejemplos de Código
Ejemplo 1: Enlace de Pago Sin Recibo
res = get_robokassa_payment_url(100, 'Cómprame')
Ejemplo 2: Enlace de Pago Con Recibo
receipt = [{"name":"DDDDDDDD","amount":"44","quantity":"1","vat_code":"5","method":"full_payment","object":"commodity"}]
res = get_robokassa_payment_url(100, 'Cómprame', receipt, '3', 1, 1)
Puedes mostrar la variable como un enlace en un mensaje o colocarla en un botón con texto como Comprar.
Si el bloque contiene varias funciones de enlace de pago y ocurre un error, el valor del error se guardará en la variable:
error_payment_funcSe guardará el error de la última función en la Calculadora.
Después de configurar el pago correctamente y generar el enlace de pago, prueba la configuración.
Cómo Agregar una Descripción de Pago
Puedes agregar una descripción de pago configurando la variable:
payment_description

La descripción se mostrará en el formulario de pago y en el recibo.
Cómo Procesar el Resultado
Si el pago es exitoso, se enviará un callback AUTOMÁTICAMENTE a la conversación del cliente en la sección Clientes.
El callback consiste en:
- 10 caracteres de la clave secreta del proveedor de pago;
-
_success; - el monto del pago después de un espacio.
El callback se genera automáticamente. No necesitas crearlo tú mismo ni solicitarlo al equipo de soporte del proveedor de pago.
Ejemplo:
ovg58keefc_success 1500
Donde:
-
ovg58keefc— 10 caracteres de la clave secreta del proveedor de pago; -
_success— el resultado del procesamiento de la solicitud que indica un pago exitoso; -
1500— el monto del pago.
Ten en cuenta
El callback es visible solo para ti en la conversación del cliente.
El callback no es visible para el cliente, pero puedes configurar una respuesta a un pago exitoso.
Ejemplo
Configuración de un bloque que usa la función get_robokassa_payment_url:
1. Mostrar el Enlace en el Texto del Mensaje

Importante
El enlace de pago es único. No debes copiarlo y enviarlo a otros clientes.
Envía el enlace de pago a través de una variable en el bot.
Callback después de un pago exitoso:

2. Mostrar el Enlace en un Botón

Ejecución del bloque:

Callback después de un pago exitoso:
