Registro
Después de registrarse en el servicio https://auth.inxy.io/, vaya a Payment Gateway API en el menú lateral izquierdo y complete los siguientes datos: nombre y descripción de la billetera e ícono. El enlace a su sitio es opcional. Seleccione todas las criptomonedas que desea aceptar con una casilla de verificación y haga clic en Guardar cambios.

Después de guardar, se abrirá la ventana con los datos de conexión. A continuación, genere una clave API presionando el botón Generar (1) e ingrese el código enviado a su correo electrónico. Guarde la variable resultante en un lugar seguro. Copie la clave secreta generada en el mismo lugar. Las claves, en caso de pérdida, se pueden regenerar (en este caso, recuerde cambiar los datos en el proyecto). Ingrese la URL para webhooks https://chatter.salebot.pro/inxy\_callback/result en el campo Postback URL (2).

Configuración de conexión
Luego vaya a Mavibot — Sistemas de pago — INXY y presione el botón Conectar. Ingrese las claves API y secreta recibidas en los campos.
скрин на подключение из Mavibot
Generación de enlace de pago
Para generar un enlace de pago, ingrese el valor de la variable payment_sum (por ejemplo: 1), después de lo cual aparecerá la variable inxy_pay_url. Puede agregar esta variable en la pantalla como un enlace o colocarla en el botón Pagar.
¡NOTA! ¡El sistema trabaja con USD! El monto en la variable payment_sum se considera USD en el sistema de pago INXY.
El enlace se ve así: https://pay.inxy.io/sessions/umLf9cJWBRiaNwowGCE1
Además, antes de ingresar el monto para la variable payment_sum, puede ingresar las siguientes variables opcionales para la configuración del pago
inxy_currency — criptomoneda que se utilizará para el pago. Puede ingresar una de las criptomonedas disponibles que haya seleccionado con una casilla de verificación durante la generación de la clave API. Si se deja vacío, los jugadores eligen la criptomoneda ellos mismos de la lista de las seleccionadas. Valores disponibles: ‘BTC’,‘ETH’,‘LTC’,‘DOGE’,‘USDT’,‘USDC’,‘DAI’

inxy_description – descripción del pago.

¡NOTA! Primero ingrese las variables opcionales para la configuración, y luego el payment_sum.
Las variables se pueden ingresar antes en la cadena, y no en un solo bloque. Mientras que la variable inxy_pay_url, que incluye el enlace, debe mostrarse en el lugar correcto. Este enlace abre el formulario de pago.

¡NOTA! La línea Monto total muestra el valor en USD, que equivale al payment_sum. El monto total en cripto a continuación muestra el valor en la criptomoneda seleccionada. Varía según la tasa de cambio actual. Este es el monto que su cliente debe pagarle desde su billetera.

¡NOTA! La dirección de la billetera para el pago durante una sola sesión se reserva para el cliente solo por 2 horas. Recomiende al cliente asegurarse de que el tiempo no haya expirado y que la dirección de la billetera siga siendo válida cuando se realice el pago. Si el tiempo de la sesión ha expirado, todo el proceso de pago debe reiniciarse.
Callback de pago
Después del pago exitoso, el bot recibirá un callback que le indicará que el pago se realizó correctamente. Verá este callback en el sistema como un mensaje del usuario, de modo que el usuario no pueda enviarlo. Los usuarios NO PUEDEN VER el callback, solo el operador puede verlo. INXY tiene varios tipos de callbacks:
- Los callbacks de éxito consisten en los primeros 10 símbolos del token seguidos de 'success', por ejemplo: uc8zsjNN1x_success

Dicho callback se envía si el cliente pagó el monto completo y no ocurrieron problemas durante el pago. Junto con este callback, se agregarán dos variables al proyecto: inxy_payment_completed es igual a True; y inxy_payment_status con el valor paid.
Durante el proceso, la variable inxy_payment_status cambia su valor. Después de que el usuario abre el formulario, cambiará a waiting_payment, durante el procesamiento del pago cambiará a waiting_confirmation, y después del procesamiento exitoso tendrá el valor de paid o partially_paid.
Durante el procesamiento del callback, el tipo de comparación debe ser Coincidencia exacta. Por ejemplo: puede hacer que el procesamiento exitoso del pago sea un bloque con condición y mostrar un mensaje relevante al usuario:

2. A veces, las tasas de cambio de criptomonedas cambian o las billeteras cobran una tarifa adicional por las operaciones, por lo que el monto resultante que ha recibido no es completo. En tales casos, la variable inxy_payment_status tendrá el valor partially_paid y el sistema recibirá un callback que se ve así:
En este caso, deberá enviar un mensaje al cliente solicitando que cubra el monto faltante. Por ejemplo: puede establecer una condición para el inicio de su callback y, al recibirlo, enviar al cliente una URL pregenerada con un enlace de pago, o puede establecer una condición para que el bloque se active cuando el valor de la variable inxy_payment_status sea partially_paid.

¡Recuerde que el enlace de pago es válido solo por 2 horas! Si el cliente no realiza el pago del monto faltante a tiempo, no se puede abrir. Como INXY en esta etapa procesará el primer pago parcial, el dinero no regresará al cliente. Para devolverlo, deberá ir a su cuenta de INXY y realizar la operación de devolución.
Creación de suscripción
El sistema INXY permite a los usuarios crear suscripciones. Para hacer esto, agregue cualquier valor a la variable inxy_subscription_payment, y se creará una suscripción mensual. Si desea establecer un período diferente, use las siguientes variables:
inxy_subscription_interval igual a 'day' — creará un intervalo de suscripción igual a días (el valor predeterminado es mes)
inxy_subscription_period — agregue una variable igual de 1 a 30, para establecer el período. Por ejemplo, para crear un pago de suscripción una vez cada 15 días, establezca inxy_subscription_interval ='day' e inxy_subscription_period=15, y para que el pago se realice dos veces al año, establezca inxy_subscription_period=6 (ya que inxy_subscription_interval es igual a mes por defecto)

El enlace también abrirá el formulario de pago, pero será diferente: primero, en el lateral se mostrará que el pago se basa en suscripción con el período mostrado; segundo, el formulario sugerirá al cliente agregar un depósito para varios pagos por adelantado.
Particularidades de INXY: Si el cliente paga х2 o х3 del monto, Mavibot recibirá un mensaje sobre un monto único. El resto se depositará en el saldo del cliente y se utilizará para los próximos pagos. Como la tasa de cambio de criptomonedas varía, al final este monto puede ser insuficiente para uno de los pagos siguientes, resultando en una suscripción impaga. En tal caso, recibirá un callback que indica 'fail' y puede configurar un recordatorio para su cliente.
La suscripción no se puede pagar parcialmente. El saldo del cliente se verifica antes del pago. Si no hay fondos suficientes, el pago no se realiza en absoluto.

Después de la suscripción exitosa, las variables del cliente incluirán inxy_subscribtion_id (número de referencia) e inxy_subscription_status.

Cancelación de suscripción
Para cancelar una suscripción, use la siguiente función inxy_remove_subscription(inxy_subscription_id). Ingrese el número de ID de la suscripción como inxy_subscribtion_id en la función y la suscripción se cancelará.

En caso de éxito, recibirá un callback 'Subscription status inxy_subscription_id - deleted' y la variable inxy_subscription_status cambiará al valor correspondiente.
