Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Venda com cartão de crédito com mais de uma parcela #12

Open
flavioro opened this issue Sep 23, 2020 · 0 comments
Open

Venda com cartão de crédito com mais de uma parcela #12

flavioro opened this issue Sep 23, 2020 · 0 comments

Comments

@flavioro
Copy link

flavioro commented Sep 23, 2020

Quero deixar minha gratidão pelo projeto @wchagas.

RESUMO: Venda com cartão de crédito
Requisitos:
1 - Get Session (tests/session.test.js);
2 - Get Token (Atualização que está pendente - Adicionado endpoint para gerar o token do cartão #8);
3 - Get Installment (Parcelas - tests/installment.test.js);
4 - Venda com cartão de crédito (ex: test/sellCardCredit.test.js - sugestão para nome do teste);

DETALHES DOS ITENS:
Como mencionado precisa desses quatro itens para a venda acontecer;

1 - Get Session (tests/session.test.js);
Nos testes do projeto esse teste mostra como você obtem o (session);

2 - Get Token (Atualização que está pendente - Adicionado endpoint para gerar o token do cartão #8);
Pull request do @rafaneri que se encontra pendente, caso queira implementar no seu projeto, aqui estão os arquivos https://github.com/wchagas/pagseguro-node/pull/8/files;

3 - Get Installment (Parcelas - tests/installment.test.js);
Nesse teste você obtem o parcelamento;

4 - Venda com cartão de crédito (codigo a seguir, pode ser aplicado como um test para venda com cartão de credito);
const config = require('./config');
const pagseguro = require('../src');

describe('Transaction', () => {
const client = pagseguro.connect(config.pagseguro);

it('creditCard', async () => {
const session = await client.session.get();

const token = await client.token.get(
  Object.assign(config.card, { sessionId: session.content }),
);

const installment = await client.installment.get({
  amount: 2370,
  cardBrand: 'visa',
  maxInstallmentNoInterest: 2,
});

const {
  cardBrand,
  quantity,
  amount,
  totalAmount,
  interestFree,
} = installment.content[0]; //Venda somente com uma parcela, array retornado do pagseguro, caso queira mais de uma mude o indice

const request = {
  method: 'CREDITCARD',

  reference: `Tipo CREDITCARD, 23/09/2020 10:35, valorTotal ${amount}`,

  sender: {
    name: 'Willy Chagas',
    email: '[email protected]', // https://sandbox.pagseguro.uol.com.br/comprador-de-testes.html

    phone: {
      areaCode: 48,
      number: 91510980,
    },

    document: {
      type: 'CPF',
      value: 18974411008,
    },
  },

  billing: {
    street: 'Av João Lima',
    number: 55,
    complement: 'Casa',
    district: 'Campeche',
    city: 'Florianopolis',
    state: 'SC',
    country: 'BRA',
    postalCode: '88063333',
  },

  items: [
    {
      id: 1,
      description: 'Casa Flórida 109',
      quantity: 1,
      amount: 1680,
    },
    {
      id: 2,
      description: 'Projeto de Interiores',
      quantity: 1,
      amount: 690.0,
    },
  ],

  creditCard: {
    token: token.content.token,

    holder: {
      name: 'Jose Comprador',
      document: {
        type: 'CPF',
        value: 22111944785,
      },
    },
    installment: {
      quantity,
      amount,
      totalAmount,
      installmentAmount: totalAmount,
    },
  },
};

const sellCredtiCard = await client.transaction.creditCard(request);

console.log(sellCredtiCard);

await expect(typeof sellCredtiCard).toEqual('object');
await expect(sellCredtiCard).toHaveProperty('content');
await expect(sellCredtiCard).toHaveProperty('statusCode');
await expect(sellCredtiCard.statusCode).toBe(200);
await expect(sellCredtiCard).toHaveProperty('status');
await expect(sellCredtiCard.status).toBe('success');

});
});

DÚVIDA:

Meu objetivo é ajudar e pedir ajuda, minha dúvida estou tendo erros quando faço a venda com cartão de crédito com mais de uma parcela, ou seja, quando faço com apenas uma parcela funciona (installment.content[0]), agora quando tento com mais de uma parcela (installment.content[2]), recebo o seguinte erro do PagSeguro:

Failed: PagseguroError {
  "content": Array [
    Object {
      "code": 53041,
      "message": "valor da parcela inválida",
    },
  ],
  "name": "PagseguroError",
  "status": "error",
  "statusCode": 400,
}

Caso você possa me ajudar com essa questão do parcelamento no cartão de crédito, ficarei grato.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant