Giter Club home page Giter Club logo

cielo's People

Contributors

banzeh avatar carloshc avatar dependabot[bot] avatar depfu[bot] avatar glauberalmeida avatar rzorzal avatar snyk-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cielo's Issues

Consulta de Vendas

Acredito que o URL para consulta de transações esteja errado (apisandbox.cieloecommerce.cielo.com.br).
Pela documentação deveria buscar de "https://apiquerysandbox.cieloecommerce.cielo.com.br".

Usei as URL's de sandbox para ilustrar o problema.
Acredito que basta alterar o URL para que a consulta funcione.
Vou submeter uma PR assim que terminar de editar localmente.

Tratamento de Dados pagamento Cartão.

Gostaria que fosse implementado a utilização de casas decimais na API. Estou com meu cadastro fechado na Cielo e eu não faço ideia do motivo pelos quais eles fecharam o meu cadastro. O que eu posso imaginar é que seja pela utilização de casas decimais na hora de tentar efetuar o pagamento.
Não faço ideia do motivo do bloqueio e acredito também que falta alertar à equipe de segurança que existem programadores que utilizam a API e por um simples valor TRUE/FALSE ou até mesmo casas decimais podem resultar em problemas e que os tais não podem ser considerados como tentativa de fraude.
Eu passei horas implementando a API de vocês e infelizmente eu agora estou com o meu cadastro bloqueado e estão pedindo um prazo de 180 dias para "estudar o caso".

Peço por gentileza que seja feita algo em relação à isso. Estou com meu aplicativo parado por conta disso.
Atenciosamente,
Marcos Porto

Sem retorno no ambiente de testes

Ola banzeh,

Quando seto o sandbox: true, eu não recebo nada de retorno. Sem erro, sem Json.
Se coloco true no sandbox, eu recebo autorização negada por conta de usar um numero de cartão inválido.

Estou usando o
node v10.0.0
npm v5.6.0

Problem to initialize it.

Describe the bug
Can't initialize the cielo instance using the keyword new.

To Reproduce
Steps to reproduce the behavior:

  1. Go to install its package: https://github.com/banzeh/cielo#-installation
  2. Go to initialize its instance https://github.com/banzeh/cielo#iniciando
  3. See error:

TypeError: cielo_1.Cielo is not a constructor at Object.<anonymous> (/Users/anzileiro/projects/azdata/history-market-cron/src/cielo.ts:13:21) at Module._compile (internal/modules/cjs/loader.js:959:30) at Module.m._compile (/Users/anzileiro/.nvm/versions/node/v12.14.0/lib/node_modules/ts-node/src/index.ts:814:23) at Module._extensions..js (internal/modules/cjs/loader.js:995:10) at Object.require.extensions.<computed> [as .ts] (/Users/anzileiro/.nvm/versions/node/v12.14.0/lib/node_modules/ts-node/src/index.ts:817:12) at Module.load (internal/modules/cjs/loader.js:815:32) at Function.Module._load (internal/modules/cjs/loader.js:727:14) at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10) at main (/Users/anzileiro/.nvm/versions/node/v12.14.0/lib/node_modules/ts-node/src/bin.ts:226:14) at Object.<anonymous> (/Users/anzileiro/.nvm/versions/node/v12.14.0/lib/node_modules/ts-node/src/bin.ts:485:3)

Expected behavior
To get the instance.

Screenshots
Screen Shot 2020-05-18 at 14 13 11

Desktop (please complete the following information):

  • OS: [MacOS Catalina 10.15.4]

Error: getaddrinfo ENOTFOUND

Ola,
Primeiro, obrigado pelo pacote! :)

Estou tentando usar, com base nos exemplos que passou e estou recebendo o seguinte erro:

ERRO { Error: getaddrinfo ENOTFOUND apisandbox.cieloecommerce.cielo.com.br apisandbox.cieloecommerce.cielo.com.br:443
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)
code: 'ENOTFOUND',
errno: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'apisandbox.cieloecommerce.cielo.com.br',
host: 'apisandbox.cieloecommerce.cielo.com.br',
port: 443 }

Algo que eu possa estar fazendo errado?

Compra Mastercard

Quando tento realizar uma compra usando o Brand: 'Mastercard', ele me retorna o seguinte erro:

[{"Code": "999", "Message": "Error converting value \"Mastercard\" to type 'Braspag.CommonTYpes.Enums.BrandEnum'. Path 'DebitCard.Brand', line 1, position 388"}]

Alguém sabe o que o que esotu fazendo de errado. Meu cartão está sendo passado como:

número do cartão: 5111111111111111
cvc: 999
data: 12/2020
Holder: "Teste"

OBS: Usando pelo sandbox.

Busca dos cartões registrados

Olá,

Fiz algumas modificações locais apenas para fazer o GET com o cartão tokenizado e gostaria de saber se você poderia fazer estas alterações também para futuros projetos que possam utilizar e para nós também.

O método no cielo.js ficou assim:

controller.consultaTokenizedCard = (data) => {
  const o = {
    hostname: URL_CONSULTA,
    path: `/1/card/${data.token}`,
    method: 'GET'
  }
  
  return get(Object.assign(requestOptions, o), data)
}

No index.js em 'cards'

cards: {
     createTokenizedCard: cielo.createTokenizedCard,
     consultaTokenizedCard: cielo.consultaTokenizedCard
   },

E para a documentação

const cartao= {
    "token": '66b2c162-efbf-4692-aee5-e536c0f81037'
}

const card = await cielo.cards.consultaTokenizedCard(cartao)

console.log('Consulta token', card)

ou

cielo.cards.consultaTokenizedCard(cartao)
.then((data) => {
    console.log(data)
})
.catch((err) => {
    console.log(err);
})

Obrigado.

Erro ao tentar usar com AWS Lambda

Estou tentando rodar no Lambda da AWS mas estou com um erro que não consegui resolver.

O código que estou testando:

exports.handler = (event, context, callback) => {
   
   const paramsCielo = {
        'MerchantId': 'e60c1e21cf8743d1bc1fbd760fe0aba4',
        'MerchantKey': 'LVYLUTLJYYIXXRUQMXLIMYEDLRVCRWHNGYQFIVIG',
        'sandbox': true,
        'debug': false
	};
	
	var cielo = require('cielo')(paramsCielo);
   
    callback(null, paramsCielo);
};

O erro:

Function Logs
2018-04-26 19:05:04.910 /var/task/node_modules/cielo/cielo.js:183
			let optionsCopy = {...options};
			                   ^^^
SyntaxError: Unexpected token ...
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:542:28)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at exports.handler (/var/task/cielo/index.js:10:30)

Esse erro é por conta de usar o AWS Lambda ou algo que tenho que alterar no pacote?

Abcs

Code 101

Olá, recebo o codigo 101 - MerchantId is required.
Passo os parâmetros usando como referencia sua descrição e com MerchantId cadastrado na Cielo.
Pode me ajudar com esse erro?
Obrigado

A API não envia o `Customer Address Country is Required`

Describe the bug
Quando adicionamos o endereó do cliente a SandBox Cielo retorna Customer Address Country is Required, contudo na request estou enviando os dados completos com o campo country.

**** DADOS FICTÍCIOS ****

REQUEST:

const dadosTransacao = {
customer: {
Name: pedido.comprador.nome,
Email: pedido.comprador.email,
Identity: pedido.comprador.cpf_cnpj,
IdentityType: pedido.comprador.cpf_cnpj.length === 11 ? 'CPF' : 'CNPJ',
//status: 'NEW',
Address: {
street: pedido.comprador.endereco,
number: pedido.comprador.numero,
complement: pedido.comprador.complemento,
zipCode: pedido.comprador.cep,
city: pedido.comprador.cidade,
state: pedido.comprador.estado,
country: (pedido.comprador.pais === 'Brasil') ? 'BRA' : pedido.comprador.pais,
},
deliveryAddress: {
street: pedido.comprador.endereco,
number: pedido.comprador.numero,
complement: pedido.comprador.complemento,
zipCode: pedido.comprador.cep,
city: pedido.comprador.cidade,
state: pedido.comprador.estado,
country: (pedido.comprador.pais === 'Brasil') ? 'BRA' : pedido.comprador.pais,
},
},
merchantOrderId: pedido.id_pedido_externo,
payment: {
currency: 'BRL',
country: 'BRA',
amount: pagPedido.valor * 100, // o sistema converte decimal para Inteiro pois CIELO recebe valor inteiro,
installments: pedido.pagamento[0].parcelas,
softDescriptor: softDescriptor,
type: EnumCardType.CREDIT,
capture: false,
authenticate: false,
creditCard: {
brand: BandeiraCartao[pagPedido.dados_cartao.bandeira],
cardNumber: numCartao,
securityCode: ("0000" + pagPedido.dados_cartao.cvv.toString()).slice(tamCVV),
holder: pagPedido.dados_cartao.holder_name,
expirationDate: mesExp + '/' + anoExp,
},
},
};

Conteúdo da Response:
{
statusCode: 400,
request: '{"customer":{"Name":"Maurico Reis","Email":"[email protected]","Identity":"43221134606","IdentityType":"CPF","Address":{"street":"Alameda Suzana Viela","number":"135","complement":"","zipCode":"91574-952","city":"Barros de Nossa Senhora","state":"RO"},"deliveryAddress":{"street":"Alameda Suzana Viela","number":"135","complement":"","zipCode":"91574-952","city":"Barros de Nossa Senhora","state":"RO"}},"merchantOrderId":"27320213","payment":{"currency":"BRL","country":"BRA","amount":59688,"installments":3,"softDescriptor":"27320213","type":"CreditCard","capture":false,"authenticate":false,"creditCard":{"brand":"JCB","cardNumber":"3557606997328732","securityCode":"064","holder":"Jordão Nogueira","expirationDate":"10/2025"}}}'

Nenhuma resposta

Bom dia.
Poderia me ajudar? Estou tentando usar a integração com o Express. Porém, não recebo nenhuma resposta...parece que fica fazendo a requisição eternamente.

var express = require('express');
var app = express();

var paramsCielo = {
  'MerchantId': '1efce832-e60d-435d-b8c1-dd3121ec4248',
  'MerchantKey': '80T5wEBXuyhBF99ANLlii5WwIlOijvHqafcQNDcD',
  'RequestId': 'xxxxxxx', // Opcional - Identificação do Servidor na Cielo
  'sandbox': true, // Opcional - Ambiente de Testes
  'debug': false // Opcional - Exibe os dados enviados na requisição para a Cielo
}

var cielo = require('cielo')(paramsCielo);



app.get('/', function (req, res) {
  res.send('Hello World!');
});

app.get('/cielo', function(req, res) {
  var dadosSale = {  
    "MerchantOrderId":"2014111703",
    "Customer":{  
       "Name":"Comprador crédito simples"
    },
    "Payment":{  
      "Type":"CreditCard",
      "Amount":15700,
      "Installments":1,
      "SoftDescriptor":"123456789ABCD",
      "CreditCard":{  
          "CardNumber":"0000000000000001",
          "Holder":"Teste Holder",
          "ExpirationDate":"12/2030",
          "SecurityCode":"123",
          "Brand":"Visa"
      }
    }
 }
 
 cielo.creditCard.simpleTransaction(dadosSale)
     .then((data) => {
         console.log(data);
         res.send('Cielo funcionou!')
     })
})

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

Muito obrigado!

Props 'phone' in model CustomerModel

Describe the bug
In some cases the user can put only phone and not a mail, in this case on Type CustomerModel don't have this possibility.

To Reproduce
Steps to reproduce the behavior:

  1. Now type model is 'https://github.com/banzeh/cielo/blob/master/src/models/customer.model.ts'
  2. On this doc has the value Phone, on this response have a phone, but in response of payment consult has too.
    https://developercielo.github.io/manual/cielo-ecommerce#resposta117
  3. See error

Expected behavior
You can check this think please?

Erro no request

Caro Banzeh.

Estou tentando fazer um teste simples, mas recebo sempre o mesmo erro:

2018-07-27T21:08:18.832Z

 [Arguments] {
  '0': 'erro no request ',
  '1':
   { Error: read ECONNRESET
       at TLSWrap.onread (net.js:656:25) errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' } }

------------ END DEBUG ------------

CEIELO ERRO { Error: read ECONNRESET
    at TLSWrap.onread (net.js:656:25) errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' }

O código que estou usando no teste é esse:

const paramsCielo = {
	// SANDBOX
	MerchantId: "xxxxxxxx",
	MerchantKey: "xxxxxxxxxx",

	sandbox: true, // Opcional - Ambiente de Testes
	debug: true // Opcional - Exibe os dados enviados na requisição para a Cielo
};

const cielo = require("cielo")(paramsCielo);

const dadosSale = {
	MerchantOrderId: "2014111703",
	Customer: {
		Name: "Comprador crédito simples"
	},
	Payment: {
		Type: "CreditCard",
		Amount: 15700,
		Installments: 1,
		SoftDescriptor: "123456789ABCD",
		CreditCard: {
			CardNumber: "0000000000000001",
			Holder: "Teste Holder",
			ExpirationDate: "12/2030",
			SecurityCode: "123",
			Brand: "Visa"
		}
	}
};

cielo.creditCard
	.completeTransaction(dadosSale)
	.then(data => {
		console.log("CEIELO SUCESSO ", data);
		//response.send(data);
	})
	.catch(err => {
		console.error("CEIELO ERRO", err);
		//response.send(err);
	});

Abcs

André

Merchant Key

Realizei várias formas de cadastro no site da Cielo, porém em nenhum lugar consigo encontrar a Merchant Key necessária para a API.
Como faço para obter a chave e começar a testar?

Aplicação quebra e não exibe corretamente o erro

Estou tentando desenvolver uma API com Node JS utilizando seu client. Funciona normalmente, se tudo correr bem, ou seja se faltar um parâmetro por exemplo, a aplicação finaliza e não exibe de maneira amigável o retorno do erro (API Cielo). Gostaria de uma ajuda.
Segue o erro abaixo. Observação: node v8.9.0 e estou utilizando async/away.

/home/max/Agendamento/1972-master/node_modules/cielo/lib/library.js:29
        if ([200, 201].indexOf(statusCode) === -1) throw new Error(`Ocorre um erro ao fazer a requisição. StatusCode: ${statusCode}`)
                                                   ^

Error: Ocorre um erro ao fazer a requisição. StatusCode: 400
    at IncomingMessage.<anonymous> (/home/max/Agendamento/1972-master/node_modules/cielo/lib/library.js:29:58)
    at emitNone (events.js:111:20)
    at IncomingMessage.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1056:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)

Segue parte do service (com CardNumber = "", propositalmente)

exports.creditoSimples = async() => {
    var dadosSale = {  
        "MerchantOrderId":"CONSULTA2019000001",
        "Customer":{  
           "Name":"Comprador crédito simples"
        },
        "Payment":{  
          "Type":"CreditCard",
          "Amount":15700,
          "Installments":1,
          "SoftDescriptor":"123456789ABCD",
          "CreditCard":{  
              "CardNumber":"",
              "Holder":"Teste Holder",
              "ExpirationDate":"12/2030",
              "SecurityCode":"123",
              "Brand":"Visa"
          }
        }
     }
     const transaction = await cielo.creditCard.simpleTransaction(dadosSale);
     return transaction;
}

Segue parte do controller

// Transação Simples
exports.post = async(req, res, next) => {
    
    try {
        var data = await svCielo.creditoSimples();
        console.log('Crédito Simples ->', data)
        res.status(201).send({
            message: 'Transação realizada com sucesso!'
        });
    } catch (e) {
        console.log(e);
        res.status(500).send({
            message: 'Falha ao processar sua requisição'
        });
    }
};

Rota utilizada

router.post('/simples', controller.post);

Adicionando opção para cancelar recorrencia agenda.

Is your feature request related to a problem? Please describe.

curl
curl --request PUT "https://apisandbox.cieloecommerce.cielo.com.br/1/RecurrentPayment/{RecurrentPaymentId}/Deactivate"
--header "Content-Type: application/json"
--header "MerchantId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
--header "MerchantKey: 0123456789012345678901234567890123456789"
--header "RequestId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
--data-binary
--verbose

URL CIELO

Describe the solution you'd like
Desabilitar um pedido recorrente

Additional context
Seria muito importante ter a parte de cancelamento do pagamento recorrente junto a cielo.

Super Link

A criação da Opção de pagamento por links achei super interessante. Contudo, gostaria de saber se é possível utilizar está API para realizar a geração de novos links para pagamento. Porque procurei opção de inserir o clientID e o Token e não encontrei. Será que a geração de novos pagamento por links só pode ser efetuado via POST?

Tratamento dos dados para boleto

Olá,

É mais uma dúvida do que feature.... mas senão tiver isso seria legal implementar... os dados que envio para geração de boleto, como um endereço com acentuação, a lib "banzeh/cielo" já faz todo o tratamento desses dados?

Enum Discovery

Estou utilizando seu package para integração com a cielo via node, e em testes de crédito (creio que débito também), estou com problemas para obter o retorno com cartão do tipo discover.

Vi que no enum EnumBrands, o discover está como DISCOVERY, programo há pouco tempo e não tenho certeza se é isso, mas utilizando o postman batendo direto na api da cielo consegui obter o retorno enviando o brand como DISCOVER.

erro:
image

retorno correto:
image (1)

Abraço,
Vinicius Colasanto.

Consulta bin

Gostaria de saber se para reconhecer a bandeira do cartão vc utiliza uma API diferente da ConsultaBin para mandar o Request de uma compra.
Pois estou testando aqui, o ConsultaBin funciona apenas com cartões Visa e Master, fora isso, não está reconhecendo certo de acordo com os 6 números que passo como parâmetro.

Split de pagamento

Ola,

Existe a intenção de implementar o split de pagamento nesse pacote? Estou buscando algo e não encontro, e este pacote uso há algum tempo e gosto muito.

Abraços

Ocorre um erro ao fazer a requisição. StatusCode: 400.

Por muito tempo funcionava tudo corretamente. Mas recentemente comecei a receber esse erro da Cielo:

Ocorre um erro ao fazer a requisição. StatusCode: 400.

Estou usando chaves de acesso ao sandbox recém geradas. Alguma ideia do que pode ser?

Recorrência retornando sem código ou erro

Describe the bug
Ao criar uma recorrência, o retorno na trás nenhum dado, nem mesmo, código de erro

To Reproduce
Steps to reproduce the behavior:

  • Utilizei do método cielo.recurrent.create();
  • Contendo os parâmetros: merchantOrderId, customer, payment;
  • No objeto Payment tenho recurrentPayment e creditCard;
  • O curioso é que se eu retirar o atributo recurrentPayment do objeto payment ele funciona como uma venda normal (pelo mesmo método citado acima).

Expected behavior
Realizar uma recorrência e retornar os dados da recorrência, caso erro, retornar a mensagem de erro consistente. No caso, é retornado esse erro:

{
  statusCode: '',
  request: '{"merchantOrderId":"12345678","customer":{"name":"Fulano de Tal"},"payment":{"type":"CreditCard","amount":50,"installments":1,"returnUrl":"https://google.com.br","recurrentPayment":{"authorizeNow":true,"endDate":"2020-12-12","interval":"MONTHLY"},"creditCard":{"cardNumber":"5223 4049 1585 0591","holder":"Fulano de Tal","expirationDate":"05/2022","securityCode":"111","saveCard":false,"brand":"MASTER"}}}',
  response: ''
}

Desktop (please complete the following information):

  • OS: macOS Catalina
  • Browser: Utilizei o Insomnia
  • Version: 2020.2.1

Additional context
Cartão gerado por um gerador web com o final 1 para validar a bandeira. (utilizando sandbox: true e debug: true)

Uso com TS

Estou tentando utilizar junto com o firebase cloud functions utilizando typescript (v3.2.2) e cielo (^1.1.2) mas não consigo importar o módulo. Diz que não existe, já alterei tsconfig.json para aceitar JS e nada.

Alguém sabe como posso importar o módulo e usar perfeitamente no ts ou devo portar o código do módulo pra typescript para conseguir a importação?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.