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

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

Configuración de conexión
Luego vaya a Mavibot — Payment systems — INXY y presione el botón Connect. Ingrese las claves API y Secret recibidas en los campos.
скрин на подключение из Mavibot
Generación de enlace de pago
Para generar el enlace de pago, ingrese el valor de la variable payment_sum (ej.: 1), después aparecerá la variable inxy_pay_url. Puede agregar esta variable en la pantalla como un enlace o colocarla en el botón Pay.
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 elegido 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 elegidas. 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 pueden ingresarse 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 Total amount muestra el valor en USD, que equivale al payment_sum. El Total crypto amount debajo muestra el valor en la criptomoneda elegida. 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 mismos 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', ej.: uc8zsjNN1x_success

Tal callback se envía si el cliente pagó el monto completo y no han ocurrido problemas durante el pago. Junto con este callback, se agregarán dos variables al proyecto: inxy_payment_completed 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 Full match. Ej.: puede hacer el procesamiento del pago exitoso como 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 toman una tarifa extra por las operaciones, de modo 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, tendrá que enviar un mensaje al cliente con una solicitud para cubrir el monto faltante. Ej.: puede establecer una condición para el inicio de su callback y al recibirlo enviar al cliente una url pre-generada 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 puede abrirse. Como INXY en esta etapa procesará el primer pago parcial, el dinero no volverá al cliente. Para devolverlo, necesitará ir a su cuenta 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 (por defecto es mes)
inxy_subscription_period — agregue una variable igual de 1 a 30, para establecer el período. Ej.: 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 es basado en suscripción con el período mostrado, segundo, el formulario sugerirá al cliente agregar un depósito para varios pagos por adelantado.
Especificidades de INXY: Si el cliente paga х2 o х3 del monto, Mavibot recibirá un mensaje sobre un solo monto. 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 siguientes pagos, 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 puede pagarse 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 relevante.
