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
<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"}]]}')