Como conectar um sistema de pagamento
O sistema de pagamento está integrado ao Telegram. Para aceitar pagamentos dentro do mensageiro, você precisa:
- Conectar um sistema de pagamento ao seu bot usando o BotFather.
- Ir para as configurações do bot desejado e selecionar "Pagamentos" no menu.


Siga as instruções para conectar um sistema de pagamento disponível e copie o token fornecido.



Como faturar um cliente
Para enviar uma fatura no Telegram, use o método e especifique os parâmetros necessários.
tg_send_invoice(provider_token, platform_id, title, description, currency, prices, photo_url, payload, protect_content, disable_notification, need_name, need_phone_number, need_email, reply_to_message_id, reply_markup, message_thread_id, provider_data)
| Parâmetros da função | Descrição do parâmetro |
|---|---|
| **!** provider_token | (parâmetro obrigatório) token obtido do BotFather após conectar o sistema de pagamento |
| **!** platform_id | (parâmetro obrigatório) ID do destinatário - identificador do usuário, grupo ou canal |
| **!** title | (parâmetro obrigatório) título do produto, 1–32 caracteres |
| **!** description | (parâmetro obrigatório) descrição do produto, 1–255 caracteres |
| **!** currency | (parâmetro obrigatório) moeda do pagamento (**EUR**, USD, UAH, etc.; para mais detalhes https://core.telegram.org/bots/payments#supported-currencies ) |
| prices |
Um array de arrays contendo detalhes de preços para o produto e serviços adicionais (entrega, embalagem, etc.). Exibido na página de pagamento. O valor pode ser especificado como um número inteiro (ex.: 125) ou um número decimal usando ponto (ex.: 120.25).
Por exemplo: [["produto", 2000], ["IVA", 20.75], ["embalagem", 100]] |
| photo_url | URL da imagem do produto |
| payload | A primeira parte do callback de pagamento, o padrão é tg_payment |
| protect_content | 1 - proteger contra cópia e capturas de tela, 0 - sem proteção |
| disable_notification | 1 - enviar com notificação, 0 - sem notificação |
| need_name | 1 - exigir nome completo do usuário para concluir o pedido, 0 - sem solicitação de nome |
| need_phone_number | 1 - exigir número de telefone do usuário para concluir o pedido, 0 - sem solicitação de telefone |
| need_email | 1 - exigir email do usuário para concluir o pedido, 0 - sem solicitação de email |
| reply_to_message_id | ID da mensagem para responder; se quiser enviar a fatura como uma mensagem separada, use duas aspas simples ('') |
| reply_markup | Teclado com o primeiro botão definido como tipo pay |
| message_thread_id | ID do tópico (disponível para supergrupos com funcionalidade de fórum ativada) |
| provider_data | Dados da fatura no formato JSON a serem enviados ao provedor de serviços de pagamento. O sistema de pagamento deve fornecer descrições detalhadas dos campos obrigatórios. |
IMPORTANTE! Todos os parâmetros devem ser passados na ordem especificada na função. Se precisar especificar um parâmetro específico e omitir outros, deixe valores vazios ou valores conforme especificado na documentação para os parâmetros que você não precisa.
Exemplo:

Se algum dos parâmetros need_name, need_phone_number ou need_email estiver ativado, o usuário será solicitado a fornecer essa informação antes de concluir o pagamento. Após o pagamento bem-sucedido, os dados são salvos nas variáveis de cliente correspondentes.
Exemplo:

Resultado: os dados são solicitados antes do pagamento.
Callback de pagamento
Se um pagamento for bem-sucedido, um callback com o seguinte conteúdo será enviado para o chat do usuário:
tg_payment 1372995196 120.75 USD 2ff747b9-000f-5000-b000-16d7e3517aa', onde
- course_pay - payload - o payload da solicitação original de criação da fatura;
- 1372995196 - o ID do chat onde a fatura foi originalmente enviada;
- 120.75 - o valor total do pagamento;
- USD - a moeda;
- 2ff747b9-000f-5000-b000-16d7e3517aa9 - o ID do pagamento no sistema do comerciante.

Além disso, se o nome, número de telefone e/ou email do usuário foram solicitados, as variáveis correspondentes serão atribuídas ao cliente:
tg_payment_name, tg_payment_phone e tg_payment_email

Um callback de sucesso de pagamento será enviado para as mensagens diretas do usuário com o bot.
O usuário deve ter um chat existente com o bot (ou seja, deve ter iniciado ou se inscrito no bot) antes do pagamento ser feito. Caso contrário, o bot não pode enviar a mensagem direta.
Uma vez recebido o webhook de pagamento, o pagamento será automaticamente confirmado através do método answerPreCheckoutQuery. https://core.telegram.org/bots/api#answerprecheckoutquery
Mensagem fixada com um botão de pagamento
Você precisa usar o recurso de fixar mensagem após conectar o sistema de pagamento.
tg_pin_chat_message(platform_id, message_id, disable_notification)
| Parâmetros da função | Descrição |
|---|---|
| **!** platform_id | ID do chat do Telegram * |
| message_id | ID da mensagem a ser fixada |
| disable_notification | Este parâmetro define se uma notificação deve ser enviada a todos os membros do chat sobre a mensagem recém-fixada. As notificações estão sempre desativadas em canais e chats privados.
Para desativar notificações, defina o parâmetro disable_notification como 1; caso contrário, use 0. |
Exemplo:
Passo 1:
prices = [["curso", 100], ["IVA", 20.75]]
result=tg_send_invoice('381764678:TEST:129736', platform_id, 'Curso sobre cursos', 'Criar cursos é fácil', 'USD', prices, 'https://salebot.pro/promo.png', 'course_pay','0', '0', '1', '1', '1', '', '{"inline_keyboard": [[{"text":"Pagar", "pay":"True"}]]}')
Passo 2:
Como resultado do primeiro passo, você receberá uma resposta da qual precisa extrair o valor message_id usando a função get().
res=get(result,'result')
m_id=get(res,'message_id')

Em seguida, fixe a mensagem: tg_pin_chat_message(#{platform_id}, #{m_id}, 1)
Exemplo: conjunto mínimo de parâmetros
prices = [["super curso", 100]]
result= tg_send_invoice('381764678:TEST:129736', platform_id, 'Curso sobre cursos', 'Criar cursos é super fácil', 'USD', prices)

Exemplo: teclado
prices = [["curso", 100], ["IVA", 20.75]]
tg_send_invoice('381764678:TEST:129736', platform_id, 'Curso sobre cursos', 'Criar cursos é fácil', 'USD', prices, 'https://mavibot.ai/promo.png', 'course_pay','0', '0', '1', '1', '1', '', '{"inline_keyboard": [[{"text":"Pagar", "pay":"True"}], [{"text":"Outro botão", "callback_data": "Outro botão"}]]}')
