Como conectar o sistema de pagamento

O sistema de pagamento está integrado ao Telegram.

Para realizar pagamentos dentro do mensageiro, você precisa:

  • conectar o sistema de pagamento ao bot no BotFather

  • acessar as configurações do bot desejado e selecionar Pagamentos no menu

  • seguir as instruções para conectar um sistema de pagamento acessível e copiar o token emitido

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

Como faturar um cliente

Para enviar uma fatura no Telegram, use o 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) - os parâmetros obrigatórios estão destacados em negrito

provider_token - token recebido no BotFather, após conectar o sistema de pagamento

platform_id - destinatário - identificador do usuário, grupo ou canal

title - título do item, 1-32 caracteres

description - descrição do produto, 1-255 caracteres

currency - moeda de pagamento (RUB, USD, UAH e outras https://core.telegram.org/bots/payments#supported-currencies)

payload - a primeira parte do dado sobre pagamento, por padrão tg_payment

prices - detalhamento de preços (descrição abaixo)

photo_url - link para a imagem do produto

disable_notification - 1 - enviar com notificação, 0 - sem notificação

protect_content - 1 proteção contra cópia e captura de tela, 0 - sem proteção

need_name - 1 se precisar do nome completo do usuário para concluir o pedido, 0 - sem solicitar nome

need_phone_number - 1 se precisar do número de telefone do usuário para concluir o pedido, 0 - sem solicitar número

need_email - 1 se precisar do endereço de e-mail do usuário para concluir o pedido, 0 - sem solicitar e-mail

reply_to_message_id - o id da mensagem à qual estamos respondendo, '' não é a resposta

reply_markup - teclado, o primeiro botão deve ser um botão do tipo pagamento

Se um dos parâmetros need_name, need_phone_number ou need_email for especificado, o usuário solicitará os dados antes de pagar e os salvará nas variáveis do cliente se o pagamento for bem-sucedido. Na captura de tela abaixo, a solicitação para inserir todos os dados:

prices - um array de arrays com dados sobre o custo dos produtos e serviços adicionais (entrega, embalagem, etc.). Exibido na página de pagamento. O valor deve ser indicado como um inteiro 125 ou como uma fração com ponto 120.25. Por exemplo: [["produto", 2000], ["IVA", 20.75], ["embalagem", 100]

Callback de pagamento

Após o pagamento bem-sucedido, no chat com o usuário, chegará um callback da seguinte forma:

phone_best 4737685 2120.75 UAH 1955518436

onde phone_best - payload - da solicitação de criação da fatura 473737685 - chat id, para o qual a fatura foi originalmente enviada 2120.75 - valor total do pagamento UAH - moeda 1955518436 - id do pagamento no sistema do comerciante

Além disso, se você solicitou nome, telefone e/ou e-mail, o cliente registrará as variáveis:

tg_payment_name, tg_payment_phone e tg_payment_email

Em caso de sucesso, o callback será enviado para as mensagens pessoais do usuário. Para isso, o cliente e o bot devem cooperar antes do pagamento (o cliente deve estar inscrito no bot)!

Após receber o hook sobre o pagamento, o pagamento será confirmado automaticamente, via answerPreCheckoutQuery https://core.telegram.org/bots/api#answerprecheckoutquery.

Exemplos

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

Exemplo com conjunto mínimo de parâmetros

prices = [["um produto incrível", 20000]] result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'O melhor bot de todos!',`` 'Um curso incrível! Seja o melhor!', 'UAH', prices)

Exemplo com um teclado

prices = [["produto", 2000], ["IVA", 20.75], ["pacote", 100]] result = tg_send_invoice('632593626:TEST:sandbox_i38014109763', platform_id, 'Phone W-200', 'Melhor Modelo do 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":"Mais um botão", "callback_data": "Mais um botão"}]]}')