Histórico de mensagens

EXIBINDO CONVERSAS RECENTES:

# dúvidas
Avatar discord do usuario joao_efi

joao_efi

Ver Respostas

Bom dia @franciscothiago. tudo certo?
Você se refere a seus clientes terem contas vinculadas a sua?

# assinaturas
Avatar discord do usuario dilanln_

dilanln_

Bom dia, alguém poderia me informar que status a EFI envia pra caso uma assinatura não tenha sido paga no mês, por exemplo meu cliente teve 3 descontos com sucesso porém o 4 falhou, que status vou receber no webhook ?

# assinaturas
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

O plano que você criar pode ser reutilizado, mas será necessário criar uma assinatura para cada cliente.

# assinaturas
Avatar discord do usuario .antony

.antony

Ver Respostas

@guilherme_efi Tenho uma última que não ficou muito claro para mim. Para cada pagador novo eu preciso criar uma assinatura? E para cada assinatura, também deve ser criado um novo plano? Ou tanto o plano quanto a assinatura podem ser reutilizados?

# dúvidas
Avatar discord do usuario franciscothiago.

franciscothiago.

bom dia, é possivel com a efi ter varios clientes sob minha custodia?

# assinaturas
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Isso ai, @.antony!
Se tiver qualquer outra dúvida, pode contar com a gente!

# assinaturas
Avatar discord do usuario .antony

.antony

Perdão, minha pergunta já está respondida, o payment não precisa dos dados do cartão do pagador, está implicito com paymentToken.

# assinaturas
Avatar discord do usuario .antony

.antony

Ver Respostas

Entendi, então remove a necessidade de criptografar os dados antes de enviar para o backend. Que bom!
Então quer dizer que na req de criar um pagamento não é necessário enviar os dados de pagamento payment por já ter o paymentToken que representa os dados do pagador?

# assinaturas
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

@.antony, a biblioteca do payment token foi criada para gerar um token único que representa os dados do cartão de crédito de forma segura. Assim as informações do cartão não precisam ser enviadas diretamente para o backend, evitando o risco de interceptação. Além disso, evita que o backend armazene dados sensíveis, como os números dos cartões.

Então o processo acontece no frontend, onde os dados do cartão são criptografados e transformados nesse token. E esse token é o que será enviado para o backend para processar o pagamento.

# assinaturas
Avatar discord do usuario .antony

.antony

Ver Respostas

Beleza Gui, obrigado! Pode só me explicar o que faz essa lib do payment token e qual é a necessidade dela?
Achei interessante que o token é criado no frontend e não no back, tirando de certa forma a responsabilidade de quem implementou o sistema de cuidar de alguma etapa do processo de envio dos dados.

# assinaturas
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia, @.antony! Tudo bem?
Pode ignorar esse comentário. Ele seria do exemplo de como consultar uma cobrança. Dá uma olhada aqui: Exemplo de consulta de cobrança.

Vamos remover esse comentário do arquivo createOneStepCard.go, pois ele não é necessário.

# pix
Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

Vou iniciar um atendimento privado para pegar mais informações com você.

# pix
Avatar discord do usuario gabdarkness

gabdarkness

Ver Respostas

bash

[PaymentAPI] Gerando pagamento PIX: {
valor: '0.01',
descricao: 'Compra de 100 Robux - Ruby Verse',
correlationId: 'TICKET_1354463581768519831'
}
[PaymentAPI] Erro ao gerar pagamento PIX: Verifique o atributo sandbox e certificate, e garanta que eles estejam corretamente atribuidos para o ambiente desejado
[PIX] Erro: Error: Falha ao gerar pagamento PIX: undefined
at PaymentAPI.generatePixPayment (C:\Users\gabri\Desktop\Projects\Learning\rubyVerseOficial\src\utils\PaymentAPI.js:138:19)
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
at async PixHandler.handlePixGeneration (C:\Users\gabri\Desktop\Projects\Learning\rubyVerseOficial\src\services\ticket\pixHandler.js:32:33)
at async PixHandler.handleTermsAcceptance (C:\Users\gabri\Desktop\Projects\Learning\rubyVerseOficial\src\services\ticket\pixHandler.js:173:13)
at async accept-terms (C:\Users\gabri\Desktop\Projects\Learning\rubyVerseOficial\src\Events\ticket\ticketPurchaseHandler.js:66:9)
at async module.exports.run (C:\Users\gabri\Desktop\Projects\Learning\rubyVerseOficial\src\Events\ticket\ticketPurchaseHandler.js:96:9)

# pix
Avatar discord do usuario gabdarkness

gabdarkness

Ver Respostas

Sim, forcei o sandbox como true
imagem enviada na mensagem pelo usuario gabdarkness

# assinaturas
Avatar discord do usuario .antony

.antony

Ver Respostas

E outra coisa, o que é esse paymentToken? É arbitrário ou é obtido de algum lugar?

# assinaturas
Avatar discord do usuario .antony

.antony

Ver Respostas

Bom dia devs! Pergunta para o pessoal técnico:

No código de exemplo de vocês da assinatura one step, tem um comentário que me deixou confuso que diz no lugar do 1 coloque o charge_id certo.

Podem me explicar o que isso quer dizer?

https://github.com/efipay/sdk-go-apis-efi/blob/main/examples/charges/card/createOneStepCard.go

go
package main

import (
"fmt"
"github.com/efipay/sdk-go-apis-efi/src/efipay"
"github.com/efipay/sdk-go-apis-efi/examples/configs"
)

func main(){

credentials := configs.Credentials
efi := efipay.NewEfiPay(credentials)

paymentToken := "428d7f3b2dc49117552ace464078557832c4ae4f";

customer := map[string]interface{}{
"name": "Gorbadoc Oldbuck",
"cpf": "04267484171",
"phone_number": "51944916523",
"email": "[email protected]",
"birth": "1977-01-15",
}

billingAddress := map[string]interface{} {
"street": "Av JK",
"number": 909,
"neighborhood": "Bauxita",
"zipcode": "35400000",
"city": "Ouro Preto",
"state": "MG",
}

body := map[string]interface{} {
"payment": map[string]interface{} {
"credit_card": map[string]interface{} {
"installments": 1,
"billing_address": billingAddress,
"payment_token": paymentToken,
"customer": customer,
},
},
"items": []map[string]interface{}{
{
"name": "Product 1",
"value": 1000,
"amount": 2,
},
},
"shippings": []map[string]interface{} {
{
"name": "Default Shipping Cost",
"value": 100,
},
},
}

res, err := efi.CreateOneStepCharge(body) // no lugar do 1 coloque o charge_id certo

if err != nil {
fmt.Println(err)
} else {
fmt.Println(res)
}
}

# pix
Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

A variável sandbox está como true?

# pix
Avatar discord do usuario gabdarkness

gabdarkness

Ver Respostas

Estou em sandbox mesmo

# pix
Avatar discord do usuario palloma_efi

palloma_efi

Ver Respostas

Bom dia @gabdarkness ! Você está tentando gerar em produção ou homologação?