Paypal
Como configurar o Paypal link How to set up Paypal
Como criar um link de pagamento link How to create a payment link
Como criar um pagamento recorrente link How to create a recurring payment
Как обработать результат link How to process the result
How to set up Paypal
Para trabalhar com o Paypal, você precisa obter duas chaves: client_id e secret
Vá para a página https://developer.paypal.com/developer/applications/
E escolha da lista ou crie uma nova aplicação:
Na parte superior, mude para o modo Live e selecione a aplicação desejada. A página de configurações será aberta, onde estão os dados de que precisamos:
Copie os dados e cole-os nos campos correspondentes nas configurações do Mavibot: vá para a seção "Acquiring" e encontre o serviço Paypal:

Em seguida, clique em "Connect" e preencha os campos com a chave secreta e o Client ID recebidos anteriormente:

Em seguida, clique em "Save settings". Isso conclui a conexão.
Como criar um link de pagamento
Usando a variável payment_sum
Para gerar um link de pagamento, você precisa definir o valor da payment_sum variável e imediatamente depois disso a paypal_pay_url variável aparecerá.
payment_title
(variável opcional) isso é o nome do produto.
Se não for especificado, ele é preenchido com o texto: “Invoice payment order_id" (order_id é o identificador do pedido no mavibot)
payment_description
descrição do produto, campo opcional
company_name
o nome da sua empresa é exibido no topo da página de pagamento (o exemplo está abaixo, company)
Além disso, antes de especificar o payment_sum, você pode indicar em qual idioma a página de pagamento estará.
Para isso, defina a variável locale. O idioma padrão é Russo (ru-RU). Opções possíveis: da-DK, he-IL, id-ID, ja-JP, no-NO, pt-BR, ru-RU, sv-SE, th-TH, zh-CN, zh-HK, zh-TW, etc. (o conjunto de idiomas disponíveis varia, baseie-se na fonte original) сысылка fonte original)
Você também pode especificar a moeda na qual o pagamento é aceito. Para isso, especifique a currency variável, o rublo (RUB) é definido por padrão; para o dólar, defina seu valor como USD (currency = USD). As opções de moeda possíveis podem ser encontradas no link. ссылка link.
E o terceiro parâmetro adicional é company_name - o nome da sua empresa, exibido no topo da página de pagamento (o exemplo está abaixo, company)
O paypal_pay_url variável pode ser exibida com um link ou colocada em um botão com o texto "Pay".
O link se parece com: https://www.paypal.com/checkoutnow?token=07N53571YM296381N
Um exemplo da implementação.
Definindo o valor do pagamento e o nome da empresa

Observe: o payment_sum variável recebe o valor por último, depois das variáveis opcionais payment_title, company_name, etc.
Em seguida, especifique a variável #{paypal_pay_url} no segundo bloco "Status":
A variável pode ser especificada no campo de mensagem:

A variável pode ser especificada no campo url nas configurações do anexo:

A variável pode ser especificada no campo url nas configurações do botão:

Ao abrir o link de pagamento
Usando a função de calculadora paypal_payment_url
Crie um bloco do construtor de funil e use a paypal_payment_url função na calculadora, passando os parâmetros necessários para ela:
! payment_sum
o parâmetro obrigatório é o valor do pagamento.
currency
A moeda de pagamento padrão é ‘USD'. A lista completa está disponível no link https://developer.paypal.com/docs/api/reference/currency-codes/
payment_title
o cabeçalho do pagamento (até 127 caracteres). (Se omitido, ele é preenchido com o texto: “Invoice payment payment_id”, onde payment_id é o ID do pedido no Mavibot)
payment_description
descrição curta do pagamento (até 127 caracteres)
company_name
parâmetro opcional, nome da organização/empresa, etc.
locale
O idioma da página de pagamento é especificado como en-US, fr-XC, etc. Por padrão, é ‘ru-Ru’. A lista completa está disponível no link https://developer.paypal.com/api/rest/reference/locale-codes/
Quando a condição do bloco é atendida, o cliente receberá um link de pagamento, e a paypal_payment_completed variável do cliente será criada com o valor False.

url = paypal_payment_url(2500, 'RUB', 'Invoice payment payment_id','payment description', 'organization name', 'ru-Ru')
Como criar um pagamento recorrente
Para criar e receber um link para pagar com pagamentos recorrentes, você precisa criar um plano de assinatura na sua conta pessoal.


Selecionando uma oferta já criada:

Como alternativa, digite o nome da oferta na barra de pesquisa e clique em "Create".


Selecione o tipo de débito automático Fixed:

Criar assinatura

Escolhendo a moeda da assinatura e os termos de débito:
Atenção!!
No Mavibot, a moeda padrão é em euros; se o débito for em dólares ou em outra moeda, então ao criar uma assinatura, especifique a moeda de que você precisa e, no Mavibot, a mesma moeda da assinatura do Paypal.

Em seguida, ative a assinatura:


Após a criação, o ID dela estará disponível, que usaremos no futuro para criar uma assinatura e receber um link de pagamento.

O link de pagamento é gerado e retornado pela função: paypal_subscription_url(plan_id, shipping_currency, shipping_payment_sum, start_time)
! plan_id
ID do plano de assinatura
! shipping_currency
se o pagamento para o plano especificado for em dólares, você não precisa transferir nada; caso contrário, transferimos o código da moeda que você especificou no plano. A moeda na qual a entrega é paga é transmitida aqui (mesmo para custo zero). Por padrão, USD
shipping_payment_sum
Este é um parâmetro opcional que especifica o custo de entrega. Por padrão, o valor é definido como zero.
start_time
parâmetro opcional, data e hora do início da assinatura. Se você não transferir nada, então a data de início da assinatura = a data do pagamento. Formatos: %d.%m.%Y ou %d.%m.%Y %H:%M.

Ao criar o link, a paypal_subscription_id variável também aparecerá, que conterá o ID da assinatura.
Durante o pagamento, você receberá um callback, que é semelhante ao pagamento de um pagamento comum.
paypal_subscription_data(paypal_subscription_id) - obtenção de informações sobre a assinatura
paypal_subscription_id
o ID da assinatura.
O resultado da execução da função - é um array que contém todas as informações sobre a assinatura, incluindo o número de pagamentos, o número de tentativas de cobrança malsucedidas, o status e muito mais.
Como cancelar a assinatura
A função paypal_remove_subscription(paypal_subscription_id) ajudará os clientes a cancelar suas assinaturas dos seus serviços.
Parâmetros:
paypal_subscription_id
o ID da assinatura que é salvo na variável do cliente ao se inscrever.

Como processar o resultado
Após um pagamento bem-sucedido, callbacks serão enviados ao bot, o que informará que o pagamento foi bem-sucedido.
No sistema, você vê callbacks como mensagens do usuário, mas o próprio usuário NÃO AS VÊ: elas são exibidas apenas para o operador.
Para processar o callback no bloco e enviar mensagens ao usuário sobre o status do pagamento, use o tipo de comparação "Correspondência exata".
Os callbacks podem atrasar, então depois de exibir o link de pagamento ao usuário, é recomendável enviar uma mensagem como: “Depois de realizar o pagamento, aguarde uma mensagem de confirmação indicando que o pagamento foi bem-sucedido.”
Para pagamento direto
O callback de pagamento bem-sucedido consiste nos primeiros 10 caracteres do secret e na assinatura com o status. Por exemplo: EHsWHYOoWV_success
Exemplo 1: reação a um pagamento bem-sucedido usando o bloco "Start condition":

Exemplo 2: reação a um pagamento bem-sucedido usando o bloco "Start condition":

Se você não quiser tirar o usuário do fluxo principal do chatbot, use o bloco “No-state with condition” — os usuários não podem ser redirecionados diretamente para esse bloco, então, após um pagamento bem-sucedido, eles ainda permanecerão no funil principal, ao mesmo tempo em que receberão uma notificação sobre o pagamento bem-sucedido.
Mas se você quiser continuar o funil com base no evento de pagamento bem-sucedido, use o bloco “Start condition”. Nesse caso, após concluir o bloco de pagamento, o usuário será redirecionado para o bloco “Start condition”, a partir do qual você pode continuar construindo seu funil.
Mais informações sobre blocos condicionais são fornecidas no artigo de mesmo nome. blocks with condition told ссылка
Após o pagamento bem-sucedido, a variável paypal_payment_completed é definida como True.
Após a conclusão do pagamento, a variável paypal_callback_data é adicionada ao cliente, contendo dados atualizados do sistema de pagamento sobre o status da transação. Você pode extrair os dados necessários do dicionário recebido usando o método get.
Para fazer um pagamento повторизado, você precisa redefinir a variável payment_sum, a variável com o link gerado anteriormente, e então reatribuir a variável payment_sum ou chamar a função para obter um novo link.
Para pagamentos de assinatura
A função de configuração de callback para operações relacionadas a assinatura foi adicionada em 09/01/2024. Para que os callbacks desta categoria funcionem corretamente, você precisa desativar e conectar a integração do sistema de pagamento Paypal no seu projeto.
Ao realizar um pagamento de assinatura, o bot receberá uma das seguintes mensagens:
sobre ativação da assinatura. Por exemplo, subscription_I-PTV5H4MRC1H3_activated;
Notificação de um pagamento recorrente de assinatura bem-sucedido. Por exemplo, subscription_I-PTV5H4MRC1H3_paid;
ou sobre um erro no pagamento da assinatura. Por exemplo, subscription_I-PTV5H4MRC1H3_not_paid;
Nos exemplos acima, “I-PTV5H4MRC1H3” é o ID da assinatura do cliente, que pode ser acessado usando a variável paypal_subscription_id.
O callback adicionará a variável paypal_subscription_callback_data ao cliente, que contém dados atuais do sistema de pagamento sobre o status da transação. Você pode extrair os dados necessários do dicionário recebido usando o método get.
Exemplo 1: reação à ativação da assinatura usando o bloco "Start condition":

Exemplo 1: Reação à ativação da assinatura usando o bloco "Not state with condition":

Atualizado