Wayforpay
Registro rápido e confirmação do comerciante
Cadastro de comerciante para pessoas físicas sem site
Percentual unificado para pessoas físicas e jurídicas – 2,5%
Disponibilidade do Google Play e Apple Pay
Como conectar
Para conectar o sistema de pagamento wayforpay, você precisará de 3 valores:
login do comerciante
chave secreta do comerciante
o nome de domínio do site do comerciante.
Vá para sua conta pessoal -> configurações da loja https://m.wayforpay.com/mportal/merchant/list

Copie os dados e vá para as configurações no Mavibot.
Abra a seção "Cobrança", selecione wayforpay.

Você precisa inserir os dados recebidos no formulário que abrir:

Para gerar um link de pagamento, você precisa definir o valor da payment_sum variável (por exemplo, 150 ou 100,55; se o valor for fracionário, então o valor é separado por um ponto):

Imediatamente depois disso, a wayforpay_pay_url variável aparecerá. Essa variável pode ser exibida na mensagem com um link ou colocada no botão com o texto "Pagar":
Opção 1. O link de pagamento no botão:

Opção 2. O link de pagamento está no campo url do anexo:

O link se parece com:
https://secure.wayforpay.com/invoice/id1bbb2ad0375
Por padrão, USD (dólares) está definido; se você precisar de outra moeda, é necessário definir o valor da variável de moeda.
Além disso, antes de definir o valor da payment_sum variável, você pode definir as seguintes variáveis opcionais para configurar o pagamento.
currency - é a moeda padrão do pedido, UAH (os valores possíveis são USD, EUR, RUB)
session_timeout - duração do link em segundos, o padrão é 3600 (1 hora)
product_name - nome do produto
language - idioma da página de pagamento, o padrão é UA (os valores possíveis são RU, EN) buyer_name - nome do cliente
buyer_email - e-mail do cliente
buyer_first_name - nome do cliente
buyer_last_name - sobrenome do cliente
Assim é que a página de pagamento tem um link.
Vamos criar um link para pagamento no valor de 1 USD e com duração de 2 horas:

Atenção: - Primeiro, especifique os parâmetros opcionais product_name etc. - E por último, atribua o valor de payment_sum variável.
Observe que primeiro definimos as variáveis para as configurações, depois payment_sum. As variáveis podem ser definidas antes na sequência, em vez de em um único bloco; este é um exemplo.
Em seguida, no próximo bloco, exibimos a wayforpay_pay_url variável, que contém um link (por exemplo, um link no texto):

O bot funcionará da seguinte forma:

Como processar o resultado
Após um pagamento bem-sucedido, callbacks serão enviados ao bot, que informarão que o pagamento foi realizado com sucesso. Você vê esses callbacks no sistema como mensagens do usuário, para que o usuário não possa enviá-los; eles consistem nos primeiros 10 caracteres da chave secreta e no sufixo _success, por exemplo: flk3409ref_success

Esses callbacks NÃO SÃO VISÍVEIS para o usuário, são exibidos apenas para o operador.
O tipo de comparação deve ser "Correspondência completa"
Além disso, após o pagamento bem-sucedido, a variável wayforpay_payment_completed é definida como True.
Por exemplo, você pode processar um pagamento bem-sucedido em um bloco condicional e exibir a mensagem correspondente ao usuário:


Se você não quiser tirar o cliente do fluxo principal do chatbot, use o bloco "Não state com condição". Você não pode ir para esse bloco, então o cliente não será removido do funil principal após o pagamento e receberá uma notificação de pagamento bem-sucedido.
E se você precisar continuar o funil com uma reação a um pagamento bem-sucedido, então use o bloco "Start condition"; assim, o cliente passará do bloco de pagamento para o bloco "Start condition", a partir do qual você pode continuar o funil.
Mais informações sobre blocos condicionais são fornecidas no artigo de mesmo nome
Após a conclusão do pagamento, a variável wayforpay_callback_data variável será adicionada ao cliente, contendo os dados da resposta do sistema de pagamento para a transação concluída. Você pode extrair os dados necessários do dicionário resultante usando o get .
Funções para trabalhar com a calculadora
Para pagamentos recorrentes
wayforpay_recurrent_payment(amount, currency, session_timeout, product_name, language, buyer_name, buyer_email, regular_date_next, regular_date_end, regular_count, regular_mode) - gera um link para um pagamento recorrente.
amount
valor do pagamento
currency
moeda. Padrão: UAH (valores possíveis: USD, EUR, RUB). Parâmetro opcional.
session_timeout
duração do link em segundos. Padrão: 3600 (1 hora). Parâmetro opcional.
product_name
nome do produto. Parâmetro opcional.
language
idioma da página de pagamento. Padrão: UA (valores possíveis: RU, EN). Parâmetro opcional.
buyer_name
nome do cliente. Nome opcional.
buyer_email
E-mail do cliente. Parâmetro opcional.
regular_date_next
data da próxima transação automatizada. Padrão: um mês após a criação do link. Parâmetro opcional.
regular_date_end
data de término da transação automatizada. Padrão: um ano após a criação do link. Pode ser omitido se o parâmetro regular_count estiver especificado. Parâmetro opcional.
regular_count
número de transações automatizadas. Se especificado, o parâmetro regular_date_end será ignorado. Parâmetro opcional.
regular_mode
intervalo de pagamento recorrente. Parâmetro opcional. Valores possíveis: - once - pagamento único - daily - diário - weekly - semanal - quarterly - a cada 3 meses após a data do primeiro pagamento - monthly - uma vez por mês - bimonthly - uma vez a cada 2 meses - halfyearly - uma vez a cada 6 meses - yearly - uma vez por ano
Cancelamento de pagamento recorrente
wayforpay_delete_recurrent() - cancela os futuros pagamentos automáticos do cliente. Retorna "Ok" após a execução bem-sucedida.

Você também pode usar os blocos "Starting trigger" e "State" (o exemplo usa os blocos "Non-state with condition" e "Non-state").
Se você não quiser remover o cliente do fluxo principal do chatbot, use o bloco "Non-state with condition" — esse bloco não pode ser acessado manualmente, então o cliente permanecerá no funil principal após o pagamento, enquanto ainda receberá uma notificação de pagamento bem-sucedido.
Se você precisar continuar o funil com base no pagamento bem-sucedido, use o bloco "Starting trigger". Nesse caso, o cliente passará do bloco de pagamento para o bloco "Starting trigger condition", a partir do qual você pode continuar o funil.
Atualizado