Problema ao Definir Valor do Boleto

EXIBINDO RESPOSTAS:

Avatar discord do usuario wesley_wb

wesley_wb

Olá. Estou com um problema no momento de definir o valor do boleto. O valor do produto é 3.699,99. Este valor está salvo no banco como string. No PHP, este valor pode ser facilmente convertido para float, nesse caso ficaria 3699.99. Porém, na documentação do Bolix, o valor do produto deve ser passado no formato inteiro, o que torna essa conversão um pouco mais difícil, já que quando convertido pra inteiro, se torna 3699, fazendo com que a API entenda que o valor é R$ 36,99. Usando outra técnica de conversão, a API entende que o valor é R$ 369.999,99. Agradeço quem tiver alguma dica.

Avatar discord do usuario gabriel_efi

gabriel_efi

Olá, @wesley_wb! Você teria algumas opções, a mais direta poderia ser remover os caracteres da string onde "3.699,99" passaria a ser "369999" e então proceder com a conversão para inteiro.

Para remover os caracteres você pode utilizar a str_replace e para converter para inteiro você pode usar o cast (int) $variavelTratada.

Avatar discord do usuario rubenskuhl

rubenskuhl

Não use float. Use número inteiro de centavos.

Avatar discord do usuario wesley_wb

wesley_wb

Foi exatamente o que eu fiz. Esse método retorna um inteiro 369999. Só que quando eu mando esse valor para a API ela retorna o seguinte erro: O valor da emissão é superior ao limite operacional da conta. Ainda vou consultar o limite que tenho para fazer esse tipo de transação via boleto (inclusive gostaria de saber como faço para ver esse limite) mas acredito que não estou limitado a um valor abaixo de 3 mil reais. Eu usei o método number_format para formatar esse valor e ver se estava correto. Segue abaixo o resultado.
imagem enviada na mensagem pelo usuario wesley_wb