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

Erro installment quantity. #35

Closed
vanessasoutoc opened this issue Jan 4, 2017 · 5 comments
Closed

Erro installment quantity. #35

vanessasoutoc opened this issue Jan 4, 2017 · 5 comments
Labels

Comments

@vanessasoutoc
Copy link

vanessasoutoc commented Jan 4, 2017

Atualmente estou tendo esse erro na hora de enviar os dados paga pagseguro!

The no interest installment quantity must be an integer.

Provavelmente é esperado dados em integer e por isso causa o erro, acontece que já alterei para integer e o erro persiste!
Log abaixo:

at PagSeguro->validate(array('paymentMethod' => 'creditCard', 'bankName' => null, 'creditCardToken' => 'Vem do Javascript', 'installmentQuantity' => '2', 'installmentValue' => '50.20', 'noInterestInstallmentQuantity' => null), array('paymentMethod' => 'required', 'bankName' => 'required_if:paymentMethod,eft', 'creditCardToken' => 'required_if:paymentMethod,creditCard', 'installmentQuantity' => 'required_if:paymentMethod,creditCard|integer|between:1,18', 'installmentValue' => 'required_if:paymentMethod,creditCard|numeric|between:0.00,9999999.00', 'noInterestInstallmentQuantity' => 'integer|between:1,18')) in PagSeguro.php line 436

@fernandobandeira
Copy link
Member

fernandobandeira commented Jan 8, 2017

Ele ta passando como null nesse teu exemplo, por isso que está dando o erro, como que é opcional este valor eu vou alterar para ele apenas ignorar nesse caso...

@vanessasoutoc
Copy link
Author

Então, acontece que estou enviando os mesmo dados que tem na wiki.
$pagseguro = PagSeguro::setReference('2')
->setSenderInfo([
'senderName' => 'Nome Completo', //Deve conter nome e sobrenome
'senderPhone' => '(32) 1324-1421', //Código de área enviado junto com o telefone
'senderEmail' => 'email@email.com',
'senderHash' => 'Hash gerado pelo javascript',
'senderCNPJ' => '98.966.488/0001-00' //Ou CPF se for Pessoa Física
])
->setShippingAddress([
'shippingAddressStreet' => 'Rua/Avenida',
'shippingAddressNumber' => 'Número',
'shippingAddressDistrict' => 'Bairro',
'shippingAddressPostalCode' => '12345-678',
'shippingAddressCity' => 'Cidade',
'shippingAddressState' => 'UF'
])
->setItems([
[
'itemId' => 'ID',
'itemDescription' => 'Nome do Item',
'itemAmount' => 12.14, //Valor unitário
'itemQuantity' => '2', // Quantidade de itens
],
[
'itemId' => 'ID 2',
'itemDescription' => 'Nome do Item 2',
'itemAmount' => 12.14,
'itemQuantity' => '2',
]
])
->send([
'paymentMethod' => 'boleto'
]);

consegui passar desse erro comentando as linhas, no arquivo (vendor/laravel-pagseguro/src/Artistas/PagSeguro.php):
//'installmentQuantity' => 'required_if:paymentMethod,creditCard|integer|between:1,18',
//'installmentValue' => 'required_if:paymentMethod,creditCard|numeric|between:0.00,9999999.00',
//'noInterestInstallmentQuantity' => 'integer|between:1,18'

Acredito que essa validação deve ser feita apenas quando o pagamento for feito por cartão de crédito, no entanto quanto é boleta a validação também está sendo chamada!

@fernandobandeira
Copy link
Member

OK, eu vou refatorar essa validação, assumo que esteja usando o 5.3, no 5.3 tem a regra nullable que da pra por ali

'noInterestInstallmentQuantity' => 'nullable|integer|between:1,18'

Adicionando isso deve parar os erros, mas o problema é que o 5.1 e 5.2 tem essa regra ativa já por padrão, e a mesma não existe, então vou ver o que eu posso fazer para corrigir aqui sem tirar o suporte das versões e de uma maneira simples, devo corrigir nesses proximos dias e lançar uma versão...

@fernandobandeira
Copy link
Member

fernandobandeira commented Jan 8, 2017

@vanessasoutoc Eu adicionei um commit 2748695 que deve solucionar o problema, ele filtra o array retirando os valores vazios antes de validar, lancei a versão 1.1.0, tens como atualizar e ver se resolve o teu problema?

@vanessasoutoc
Copy link
Author

@fernandobandeira O commit acima funcionou!! Muito obrigado.
Entretanto nos pagamentos com utilização de cartão de crédito algumas validações não estão funcionando!
linhas 147 e 148 do arquivo PagSeguro.php
Comentei as original e modifiquei, veja abaixo!
#'creditCardHolderAreaCode' => $this->fallbackValue(substr($cardHolderPhone, 0, 2), $this->senderInfo, 'senderAreaCode'),
#'creditCardHolderPhone' => $this->fallbackValue(substr($cardHolderPhone, 2), $this->senderInfo, 'senderPhone'),

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

No branches or pull requests

2 participants