iugu / iugu-node Goto Github PK
View Code? Open in Web Editor NEWiugu - Biblioteca para Node
iugu - Biblioteca para Node
Seguindo o modelo do README, ele diz que a chamada para criar o cliente deveria ser iugu.costumer.create()
, mas o objeto iugu
retorna costumers.
@lspecian você ainda tem interesse sobre a continuidade deste projeto? Se não me adicione como contributor para que possamos pelo menos efetuar correções pontuais e liberar novas versões. Meu usuário no NPM também é FelipePlets
The code below always fails because it should use PUT instead of POST:
updatePaymentMethod: iuguMethod({ method: 'POST', path: '/{customerId}/payment_methods/{paymentMethodId}', urlParams: ['customerId', 'paymentMethodId'] }),
Tentei o simples processo de importar a biblioteca e criar um customer como no exemplo, mas não está funcionando porque os resources estão todos undefined
Cannot read property 'create' of undefined
IuguMethod.basic.js
update: iuguMethod({
method: 'POST',
path: '{id}',
urlParams: ['id']
}),
it should be PUT, otherwise it only returns
{"errors":"Not Found"}
O código de tratamento de erros na resposta da API procura por um atributo error
, mas a documentação (e minha experiência com a API) diz que os erros virão em um atributo errors
:
if (response.error) {
var err;
if (res.statusCode === 401) {
err = new Error.IuguAuthenticationError(response.error);
} else {
err = Error.IuguError.generate(response.error);
}
return callback.call(self, err, null);
}
Fiz um teste básico com o seguinte código, verificando tanto por um error
quanto por um errors
, e funcionou corretamente:
if (response.error || response.errors) {
var err = response.error || response.errors;
if (res.statusCode === 401) {
err = new Error.IuguAuthenticationError(err);
} else {
err = Error.IuguError.generate(err);
}
return callback.call(self, err, null);
}
Não fiz um pull request pois não pude testar corretamente e extensivamente esse código, então achei melhor reportar aqui. Espero ter ajudado :)
what's the status of this lib?
is it still recommended to be used?
should it have a deprecation warning?
Quando faço a chamada para criar um novo boleto, serviço charge, recebo o seguinte erro:
{
[
Error: InvalidJSONreceivedfromtheIuguAPI
]type: 'IuguAPIError',
rawType: undefined,
code: undefined,
param: undefined,
message: 'InvalidJSONreceivedfromtheIuguAPI',
detail: undefined,
raw: {
message: 'InvalidJSONreceivedfromtheIuguAPI',
response: '....'
}
}
Meu request input é:
var request = {
method: 'bank_slip',
email: user.login
items:[{
description: 'Saco de batata',
quantity: '1',
price_cents: '100'
}]
};
Após fazer uns debugs, notei que o problema ocorre no encode do items.
No meu caso consegui solucionar o problema fazendo o atributo items não ser mais array:
var request = {
method: 'bank_slip',
email: user.login
items:{
description: 'Saco de batata',
quantity: '1',
price_cents: '100'
}
};
Ao tentar criar o customerPaymentMethods, passando os parametros que a documentação pede, retorna o erro 795, segue...
var params = {
customer_id: customerId,
description: "Cartão de Crédito Principal",
token: data.token,
set_as_default: true
};
iugu.customerPaymentMethods.create(params, function(err, customer) {
console.log(err);
console.log(customer);
});
Já fiz instanciando o resources...esse erro acontece depois de ter alterado o _request do url-encode conforme fork do @eduardonunesp que faz funcionar o Charge.
Os outros métodos estão funcionando até o momento, apenas o customerPaymentMethods que retorna isso...
"795: unexpected token at '{"customer_id":"123","description":"Cart��o de Cr��dito Principal","token":"321","set_as_default":"true'"
Alguém?
Att.
Opa
Há um bug no arquivo IuguMethod.basic.js, na linha 23 o update tá como método POST, e não PUT.
Toda requisição com update dá NotFound
Segundo a documentação é possível enviar custom_variables.
Eu conseguia enviar da seguinte forma:
iugu.customers.create({
email: '[email protected]',
name: 'Fulano de Tal',
'custom_variables[][nam]': 'variableName',
'custom_variables[][valu]': 'variableValue'
});
Porém não está funcionando mais. Não sei a partir de quando parou de funcionar, pois esse código ficou parado uns 6 meses.
Qual a forma correta de enviar custom variables nessa chamada?
Olá amigos, estou com o seguinte problema, quando executo o método charge.create e meu objecto é transformado no body post, a função stringifyRequestData
faz algo inesperado com o meu array de items. Por exemplo:
iugu.charge.create({
email: '[email protected]',
method: 'bank_slip',
items: [{
description: "Item Um",
quantity: "1",
price_cents: "1000"
}]
}, function(err, response) {})
A request enviada será:
email=user%40example.com&method=bank_slip&items%5B%5D=%5Bobject%20Object%5D
Perceba que houve um erro ao transformar os itens do array, no caso aparece ali object Object
, e o Iugu acaba por me retornar um error, invalidando o método charge
$ uname -ra
Darwin prometheus.local 15.3.0 Darwin Kernel Version 15.3.0: Thu Dec 10 18:40:58 PST 2015; root:xnu-3248.30.4~1/RELEASE_X86_64 x86_64
$ node -v
v4.2.4
Ola Pessoal,
Boa noite!
Gostaria de saber como faço para passar o AccountId no resource Accounts, método request_verification.
Alguém pode me passar um exemplo que funcione?
Muito obrigado.
Olá Pessoal, tudo bem?
Estou enfrentando alguns erros ao tentar criar uma fatura pela iugu-node, ao passar esses dados:
const data = { email: '[email protected]',
due_date: '09/11/2016',
customer_id: 'xxxxxxxxxxxxxxx',
subscription_id: 'xxxxxxxxxxxxxxx',
items: [ {
description: 'Compra de mais links',
quantity: '1',
price_cents: '2455' } ]
}
Com essa função
iugu.invoices.create(data, (err, r) => {
if(err) return res.send(err)
return res.send(r)
})
Me retorna:
{
"type": "IuguAPIError",
"message": "Invalid JSON received from the Iugu API",
....
Alguém já passou por esse problema ou sabe se eu estou fazendo alguma coisa errado?
Obs.: Os dados que estão na constate data
são apenas demonstrativos, ja coloquei as informações igual esta na doc de Api e já tentei com as infos do meu cliente, e nada.
When I try using iugu-node in subscriptions create, fail cause have subitems.
Se eu fizer o POST manualmente ele grava normalmente (com o mesmo JSON), mas pela lib, se eu fizer:
iugu.customers.create({
"name": "nome teste",
"email": "[email protected]",
"custom_variables": [{ "name": "meu_param", "value": "teste" }]
}, function (err, cli) {
console.log(err, cli);
});
recebo "Invalid JSON" como erro, e uma pagina html..
{ message: 'Invalid JSON received from the Iugu API',
response: '<!doctype html>\n<html>\n <head>\n <meta charset="utf-8">\n <title>algo
está errado...</title>\n\n <meta name="viewport" content="width=device-width, initial-scale=
1, maximum-scale=1" />\n <meta name="apple-mobile-web-app-capable" content="yes" />\n <me
ta name="apple-mobile-web-status-bar-style" content="yes" />\n <meta http-equiv="cleartype"
content="on" />\n <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />\n <met
a name="MobileOptmized" content="320" />\n \n <link rel...............
(Só testei no ambiente de teste)
Toda vez que é executado uma chamada no método de criar novo método de pagamento para o cliente (iugu.customerPaymentMethods.create), retorna erro dizendo: "Customer not found"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.