pagarme / pagarme-php

:blue_heart: Pagar.me's PHP API
352 stars 149 forks source link

[Problema] Erro ao criar uma transação com cartão de crédito, o retorno informa que unit_price precisa ser um inteiro #353

Open lucastvieira opened 4 years ago

lucastvieira commented 4 years ago

Contexto

Tentativa de criar uma transação na API do pagar.me e está retornando um erro onde diz que o campo unit_price não é um inteiro, analisei o código e os logs e aparentemente está sendo enviado corretamente, como um inteiro.

O problema ocorre tanto em produção quanto em desenvolvimento

Ambiente

Passos para reproduzir

Criar uma transação contendo as seguintes informações

{ "amount": 7589, "postback_url": "http://urldepostback.com.br/pagarme", "payment_method": "credit_card", "shipping": { "name": "Fulano de Tal", "fee": 2599, "delivery_date": "2020-02-25", "expedited": false, "address": { "country": "br", "street": "Av Brasil", "street_number": "123", "state": "SP", "city": "Ribeirão Preto", "neighborhood": "Vila Carvalho", "zipcode": "14075040" } }, "items": [ { "id": "id0", "title": "Teste", "unit_price": 4990, "quantity": 1, "tangible": true } ], "card_holder_name": "Fulano de Tal", "card_cvv": "123", "card_number": "5118658259826058", "card_expiration_date": "1120", "installments": 1, "billing": { "name": "Fulano de Tal", "address": { "country": "br", "street": "Av Brasil", "street_number": "123", "state": "SP", "city": "Ribeirão Preto", "neighborhood": "Vila Carvalho", "zipcode": "14075040" } }, "customer": { "external_id": "21", "name": "Fulano de Tal", "type": "individual", "country": "br", "phone_numbers": [ "+5511999999999" ], "email": "fulanodetal@gmail.com", "documents": [ { "number": "12345678900", "type": "cpf" } ] } }

Resultado esperado

Transação concluída e retorno positivo do pager.me

Resultado atual

ERROR TYPE: validation_error. PARAMETER: items. MESSAGE: "value" at position 0 fails because [child "unit_price" fails because ["unit_price" must be an integer]]

IgorDePaula commented 4 years ago

Eu tive um erro BEM parecido, consegui contornar colocando um cast na variavel, no seu caso tente um: "amount": (int) 10000

MarceloHoffmeister commented 2 years ago

Eu tive um erro BEM parecido, consegui contornar colocando um cast na variavel, no seu caso tente um: "amount": (int) 10000

Obrigado. Pequeno detalhe heim. Resolveu aqui pra mim também.