Cómo conectar el sistema de pago

El sistema de pago está integrado en Telegram.

Para realizar pagos dentro del mensajero, necesitas:

  • conectar el sistema de pago al bot en BotFather

  • ir a la configuración del bot deseado y en el menú seleccionar Pagos

  • seguir las instrucciones para conectar un sistema de pago accesible y copiar el token emitido

                                         ![](https://docs.mavibot.ai/files/1PhZiQDP4PjOrrnX1v6g)<br>
    

Cómo facturar a un cliente

Para enviar una factura a Telegram, usa el método

tg_send_invoice(provider_token, platform_id, title, description, currency, prices, photo_url, payload, protect_content, disable_notification, need_name, phone_number, need_email, reply_to_message_id, reply_markup, reply_id) - los parámetros requeridos están resaltados en negrita

provider_token - token recibido en BotFather, después de conectar el sistema de pago

platform_id - destinatario - identificador de usuario, grupo o canal

title - título del artículo, 1-32 caracteres

description - descripción del producto, 1-255 caracteres

currency - moneda de pago (RUB, USD, UAH, etc. https://core.telegram.org/bots/payments#supported-currencies)

payload - la primera parte del dato sobre el pago, por defecto tg_payment

prices - desglose de precios (descripción a continuación)

photo_url - enlace a la imagen del producto

disable_notification - 1 - enviar con notificación, 0 - sin notificación

protect_content - 1 protección contra copia y captura de pantalla, 0 - sin protección

need_name - 1 si necesitas el nombre completo del usuario para completar el pedido, 0 - sin solicitar nombre

need_phone_number - 1 si requieres el número de teléfono del usuario para completar el pedido, 0 - sin solicitar número

need_email - 1 si requieres la dirección de correo electrónico del usuario para completar el pedido, 0 - sin solicitar correo

reply_to_message_id - el id del mensaje al que respondemos, '' no es la respuesta

reply_markup - teclado, el primer botón debe ser un botón de tipo pago

Si se especifica uno de los parámetros need_name, need_phone_number o need_email, el usuario solicitará los datos antes de pagar y los guardará en las variables del cliente si el pago es exitoso. En la captura de pantalla a continuación, la solicitud de todos los datos de entrada:

prices - un array de arrays con datos sobre el costo de los productos y servicios adicionales (entrega, empaque, etc.). Se muestra en la página de pago. El monto debe indicarse como un entero 125 o como una fracción con punto 120.25. Por ejemplo: [["producto", 2000], ["IVA", 20.75], ["empaque", 100]

Callback de pago

Después de un pago exitoso, en el chat con el usuario llegará un callback de la siguiente manera:

phone_best 4737685 2120.75 UAH 1955518436

donde phone_best - payload - de la solicitud de creación de factura 473737685 - un chat id, al que originalmente se envió la factura 2120.75 - el monto total del pago UAH - moneda 1955518436 - id de pago en el sistema del comerciante

Además, si solicitaste nombre, teléfono y/o correo electrónico, el cliente registrará las variables:

tg_payment_name, tg_payment_phone y tg_payment_email

En caso de éxito, el callback se enviará a los mensajes personales del usuario. ¡Para ello, el cliente y el bot deben cooperar antes del pago (el cliente debe estar suscrito al bot)!

Después de recibir el hook sobre el pago, el pago se confirmará automáticamente, mediante answerPreCheckoutQuery https://core.telegram.org/bots/api#answerprecheckoutquery.

Ejemplos

prices = [["producto", 2000], ["IVA", 20.75], ["paquete", 100]]
result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'phoneW-200', 'Mejor Modelo del Mercado', 'UAH', prices, 'https://images11.popmeh.ru/cropped.jpg', 'phone_best', 0, 0, 1, 0, 1)

Ejemplo con conjunto mínimo de parámetros

prices = [["un producto increíble", 20000]] result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, '¡El mejor bot de todos!',`` '¡Un curso increíble! ¡Sé el mejor!', 'UAH', prices)

Ejemplo con un teclado

prices = [["producto", 2000], ["IVA", 20.75], ["paquete", 100]] result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'Phone W-200', 'Mejor Modelo del Mercado', 'UAH', prices, 'https://helpix.ru/news/200405/181746/gf200_2.jpg', 'phone_best', 0, 0, 1, 1, 1, '', '{"inline_keyboard": [[{"text":"Pagar", "pay":"True"}], [{"text":"Un botón más", "callback_data": "Un botón más"}]]}')