Documentação: Checkout edunext

Guia para implementação do Checkout edunext em uma aplicação web.

Compra

A princípio montaremos o objeto composto pelos dados do formulário preenchidos pelo aluno/comprador, objeto esse que será o body da nossa request, contendo também as informações da distribuidora, montado da seguinte forma:

compra = {

produto_id: 02, //Id do produto no Edunext

forma_pagamento_id: 1, //Id da forma de pagamento

tabela_preco_id: 32, //Tabela de preço que compõe as variações de preço por tipos de pagamento disponíveis para o produto.

Os dados do comprador podem ser diferentes dos dados do aluno, para o caso do comprador ser apenas o responsável financeiro. Caso o aluno seja o responsável financeiro, os dados se repetem.

comprador: {

nome: 'xxxx',

cpf: 'xxx.xxx.xxx-xx',

telefone_pais: 'xx',

telefone_ddd: 'xx',

telefone: 'xxxxx-xxxx',

email: 'xxxx@xxxxx',

endereco: 'xxxxxxxxxxxxxx',

endereco_numero: 'xxx',

complemento: 'xxxx',

bairro: 'xxxxx',

cidade: 'xxx xxxx',

estado: 'xx',

pais: 'xxxxxx',

cep: 'xxxxx-xxx'

},

aluno: {

nome: 'xxxx',

cpf: 'xxx.xxx.xxx-xx',

telefone_pais: 'xx',

telefone_ddd: 'xx',

telefone: 'xxxxx-xxxx',

email: 'xxxxx@xxxxx',

endereco: 'xxxxxxxxxx',

endereco_numero: 'xxx',

complemento: 'xxxx',

bairro: 'xxxxxx',

cidade: 'xxxxxx',

estado: 'xx',

pais: 'xxxxxx',

cep: 'xxxxx-xxxx'

},

    //As informações do cartão enviadas para a API edunext são criptografadas e preenchidas após a obtenção do token.

    cartao: {

        nome: "", 

        numero: ””, 

        bandeira: "",

        token: "" 

    }

}


 

Formas de Pagamento

As formas de pagamento possuem os seguintes IDs:

Cartão de Crédito

1

Boleto

2

PIX

3

 


Pagamento

Para realizar o pagamento, chamamos a seguinte função:

async function efetuarPagamento() {

  if (forma_pagamento_id == 1) {

    try {

     const data = {

            account_id: ACCOUNT_ID, //ID da Distribuidora

            method: 'credit_card',

            test: true, //Indica se ambiente teste ou produção

            data: {

               number: 'xxxxxxxxxxxxxxxx', //Número do Cartão

               verification_value: 'xxx', //Cód de Segurança - CVV

               first_name: 'xxxx', // Nome escrito no Cartão

               last_name: 'xxxxxxx', // Sobrenome escrito no Cartão

               month: 'xx', //Mês de Validade

               year: 'xxxx' //Ano de Validade

         }

      let token = await axios.post(

         'https://apisrvl.edunext.technology/tokenCartao', data)

      compra.cartao.bandeira = token.data.extra_info.brand;

      compra.cartao.token = token.data.id;

      compra.cartao.numero = token.data.extra_info.display_number;

      compra.cartao.nome = token.data.extra_info.holder_name

    } catch (e) {

      if (e.errors) {

        let erros = "";

        for (let index in e.errors) {

          if (index === "expiration")

            erros += (erros === "" ? "" : ", ") + "Validade do cartão inválida";

          else if (index === "first_name")

            erros +=

              (erros === "" ? "" : ", ") + "Primeiro nome do cartão inválido";

          else if (index === "last_name")

            erros +=

              (erros === "" ? "" : ", ") + "Sobrenome do cartão inválido";

          else if (index === "number")

            erros += (erros === "" ? "" : ", ") + "Número do cartão inválido";

          else if (index === "verification_value")

            erros +=

              (erros === "" ? "" : ", ") +

              "Código de segurança do cartão inválido";

        }

        console.log(erros);

      } else {

        console.log(e.toString());

        return;

      }

    }

    let response;

    try {

      response = await axios({

        url: "https://beta.api2.edunext.technology/api/Compras/checkout",

        method: "post",

        data: compra,

      });

    } catch (e) {

      console.log(e.response);

    }

    if (response.status === 200) {

      console.log(response.data);

    }

  }

}


Respostas

No objeto response.data.resposta.secure_url obtido com a resposta da requisição, é possível ter acesso a fatura completa gerada.

No objeto response.data.resposta.pix.qrcode, se obtém o QRCode do PIX, e no response.data.resposta.pix.text, o texto com o código para pagamento com PIX usando a opção de copiar e colar.

No objeto response.data.resposta.bank_slip.barcode, se obtém o código de barras do boleto e no response.data.resposta.bank_slip.digitable_line, o texto com o código para pagamento utilizando o copiar e colar.

 


Cartões de Crédito para Testes

Os seguintes dados de cartão de crédito podem ser utilizados para a verificação dos retornos:

Nome e Sobrenome: Qualquer nome e sobrenome aleatório. Ex. José Ferreira, Martin da Silva, Maria de Lurdes.

Código de Segurança: Qualquer combinação de 3 dígitos, ou 4 dígitos caso o cartão tenha 4 dígitos.

Validade: Qualquer data futura.

Visa

Número

Retorno

4111111111111111

SUCESSO

4242424242424242

SUCESSO

4012888888881881

FALHA

MasterCard

Número

Retorno

5555555555554444

SUCESSO

American Express*

Número

Retorno

376411112222331

Cartão inválido

378282246310005

SUCESSO

371449635398431

FALHA

* CVV com 4 dígitos.

Diners

Número

Retorno

30569309025904

SUCESSO

38520000023237

FALHA