Lucas Barbosa Rodrigues Postado 25 Setembro Postado 25 Setembro olá pessoal, estou tentando utilizar o webhook do itau, já fiz toda a parte de recebimento e atualização, e também a url de autenticação, mas quando eles tentam mandar a notificação da o seguinte erro: mensagemRespostaNotificacao: org.dmfs.httpessentials.exceptions.ProtocolException: Illegal response content-type text/html; charset=UTF-8, exected application/json Sendo que já estou forçando o header para ser um application/json. Alguém poderia me auxiliar?
Moderadores Juliomar Marchetti Postado 26 Setembro Moderadores Postado 26 Setembro Mas isso é no ACBrBoleto? ou é na sua API que tu fez? Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Lucas Barbosa Rodrigues Postado 26 Setembro Autor Postado 26 Setembro Bom dia @Juliomar Marchetti isso é em minha api mesmo
Moderadores Juliomar Marchetti Postado 26 Setembro Moderadores Postado 26 Setembro No caso movi para um local adequado por não quer situação do componente ACBrBoleto agora é tu passar informações de como fez, como está, foi escrito a API, pois do nosso lado não sabemos nada dela a não ser o que escreveu acima Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Lucas Barbosa Rodrigues Postado 26 Setembro Autor Postado 26 Setembro Opa beleza, eu criei dois endpoints, um para a autenticação que eles pedem e outro para a notificação em si, no caso na de autenticação eu pego o client_id e o secret e retorno o token para eles, na de notificação eu recebo o json deles e atualizo no meu banco de dados, o problema em si é que quando eles tentam conectar e mandar o json, eles dizem que recebem o erro que eu comentei acima, devo mostrar como está sendo feito em meu código?
Moderadores Juliomar Marchetti Postado 26 Setembro Moderadores Postado 26 Setembro 48 minutos atrás, Lucas Barbosa Rodrigues disse: Opa beleza, eu criei dois endpoints, um para a autenticação que eles pedem e outro para a notificação em si, no caso na de autenticação eu pego o client_id e o secret e retorno o token para eles, na de notificação eu recebo o json deles e atualizo no meu banco de dados, o problema em si é que quando eles tentam conectar e mandar o json, eles dizem que recebem o erro que eu comentei acima, devo mostrar como está sendo feito em meu código? se possível, e se houver algo que precise omitir coloca lá xxx no lugar Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Lucas Barbosa Rodrigues Postado 26 Setembro Autor Postado 26 Setembro Segue o código da função a qual recebo o json para atualizar meu status do boleto e abaixo o codigo de login de autenticação public function return(Request $request) { $itau = $request->all(); $request->request->add(['site' => 'bbr']); $paymentController = new PaymentController(); if ($itau) { $boleto = DB::connection('payment') ->table('itau_boleto') ->where('cod_boleto', $itau['idBoleto']) ->where('status', '!=', 'paid') ->first(); if ($boleto) { if($itau['tipoLiquidacao'] == 95 || $itau['tipoLiquidacao'] == 06){ $invoice = DB::connection($paymentController->payment['amember_connection'])->table('invoice')->where('invoice_id', $boleto->invoice_id)->first(); } } else { $return = array( 'status' => '', 'msg' => 'Boleto já está pago!' ); return response()->json($return)->header('Content-Type', 'application/json'); } if (isset($invoice) and $invoice->comment) { if ($boleto && $itau['tipoLiquidacao'] == 95 || $itau['tipoLiquidacao'] == 06) { if ($itau['tipoLiquidacao'] == 95 || $itau['tipoLiquidacao'] == 06) { $itauStatus = 'paid'; } $emails = explode('| ', $invoice->comment); $i = 0; DB::connection('payment')->table('itau_boleto')->where('cod_boleto', $itau['idBoleto'])->update(['status' => $itauStatus, "updated_at" => \Carbon\Carbon::now()]); AmemberController::registerPayment($boleto->invoice_id, 'Boleto: ' . $boleto->cod_boleto); foreach ($emails as $key => $value) { if ($i != 0) { if ($value != '') { $value = trim($value); $user = DB::connection($paymentController->payment['amember_connection'])->table('user')->where('email', $value)->first(); $invoice_user = DB::connection($paymentController->payment['amember_connection'])->table('invoice')->where('user_id', $user->user_id)->orderBy('invoice_id', 'asc')->first(); $return = AmemberController::registerPayment($invoice_user->invoice_id, 'Boleto: ' . $boleto->cod_boleto); } } $i++; } $user = DB::connection('payment')->table('itau_boleto')->where('cod_boleto', $itau['id'])->first(); $user2 = DB::connection($paymentController->payment['amember_connection'])->table('invoice')->where('invoice_id', $user->invoice_id)->first(); $user3 = DB::connection($paymentController->payment['amember_connection'])->table('user')->where('user_id', $user2->user_id)->first(); $this->check_product($user3->email); return response()->json(['msg' => 'ok'])->header('Content-Type', 'application/json'); } } else { if ($itau['tipoLiquidacao'] == 95 || $itau['tipoLiquidacao'] == 06) { $itauStatus = 'paid'; } if ($boleto && $itau['tipoLiquidacao'] == 95|| $itau['tipoLiquidacao'] == 06) { DB::connection('payment')->table('itau_boleto')->where('cod_boleto', $itau['idBoleto'])->update(['status' => $itauStatus, "updated_at" => \Carbon\Carbon::now()]); AmemberController::registerPayment($boleto->invoice_id, 'Boleto: ' . $boleto->cod_boleto); return response()->json(['msg' => 'ok'])->header('Content-Type', 'application/json'); } else { //error return response()->json(['msg' => 'error2'])->header('Content-Type', 'application/json'); } } } else { $return = array( 'status' => 'error', 'msg' => 'Sem dados do boleto' ); return response()->json($return)->header('Content-Type', 'application/json'); } } public function loginItau(Request $request) { $client_id = $request->client_id; $client_secret = $request->client_secret; if ($client_id) { $preHash1 = json_encode(array('client_secret' => $client_secret, 'client_id' => $client_id, 'site' => 'bbr'), true); $hash1 = (base64_encode(openssl_encrypt($preHash1, 'aes128', 'slakdh02183hn2fsa', OPENSSL_RAW_DATA, '1586244526987523'))); $retorno = ["status" => ['active' => 1, "msg" => "Token gerado com sucesso"], "data" => [ 'access_token' => $hash1, 'token_type' => 'bearer', ]]; return response()->json($retorno)->header('Content-Type', 'application/json'); } } protected function respondWithTokenItau($token) { $retorno = ["status" => ['active' => 1, "msg" => "Loguin efetuado com sucesso"], "data" => [ 'access_token' => $token, 'token_type' => 'bearer', 'expires_in' => auth('api')->factory()->getTTL() * 120 ]]; return response()->json($retorno); }
Moderadores Juliomar Marchetti Postado 26 Setembro Moderadores Postado 26 Setembro Op´s achei que fosse pascal no caso tu usa a lib do acbr é isso movi para outro ainda que nem é pascal ou lazarus ou delphi Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Lucas Barbosa Rodrigues Postado 26 Setembro Autor Postado 26 Setembro eita kk, é php mesmo, usando Laravel como framework, ainda não uso a lib do acbr, estou vendo como funciona, se facilitar mais ainda vou usar com certeza kkk
Moderadores Juliomar Marchetti Postado 26 Setembro Moderadores Postado 26 Setembro 1 hora atrás, Lucas Barbosa Rodrigues disse: eita kk, é php mesmo, usando Laravel como framework, ainda não uso a lib do acbr, estou vendo como funciona, se facilitar mais ainda vou usar com certeza kkk é que nem adiantaria pois a lib é pra ti usar pra emitir e ela não faz API mas é isso daqui a pouco alguém resolve de lhe ajudar com php 1 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br
Consultores EMBarbosa Postado 30 Setembro Consultores Postado 30 Setembro Em 25/09/2024 at 17:48, Lucas Barbosa Rodrigues disse: Sendo que já estou forçando o header para ser um application/json. Alguém poderia me auxiliar? Aviso: Eu não entendo muito de PHP, mas me parece que o problema na verdade é no protocolo de comunicação. Acho que a questão é que mesmo que você force o header ser um application/json isso não significa que o conteúdo vai ser um application/json. Por exemplo, é como se você falasse para um amigo: "Olha só, vou te mandar uma carta em Inglês se prepara". Daí você manda uma envelope com a carta. Mas dentro do envelope tem uma carta em Japonês. Daí seu amigo está dizendo: "cara tu me mandou uma carta em inglês, eu tava esperando em Japonês". Você precisa fazer a aplicação realmente mandar os dados em formato application/json. Como meu PHP não é lá grandes coisas, nem vou analisar seu código. Mas acredito que se você avaliar o que foi enviado e recebido, por meio de algum monitor de comunicação, vai conseguir identificar exatamente o que foi enviado ou recebido fora do formato esperado. []'s Elton Profissionalize o ACBr na sua empresa, conheça o ACBr Pro. (15) 2105-0750 (15)99790-2976. Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas. Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Lucas Barbosa Rodrigues Postado 1 Outubro Autor Postado 1 Outubro Bom dia, Realmente faz total sentido a sua resposta, adorei seu exemplo kkkk, no caso eu sou a pessoa que recebe a carta, pois minha aplicação espera um json da parte deles, o problema é que eles estão firmes que está tudo certo da parte deles, o maior problema está sendo a comunicação mesmo, eles demoram demais para responder, por isso estou vendo outros recursos ou alguém que já tenha conhecimento desse erro pra me ajudar. Vou procurar algum meio de monitorar para poder pegar o erro quando recebo deles, obrigado pela dica.
Consultores EMBarbosa Postado 1 Outubro Consultores Postado 1 Outubro 7 horas atrás, Lucas Barbosa Rodrigues disse: Vou procurar algum meio de monitorar para poder pegar o erro quando recebo deles, obrigado pela dica. Wireshark or Fiddler são um dos mais conhecidos... []'s Elton Profissionalize o ACBr na sua empresa, conheça o ACBr Pro. (15) 2105-0750 (15)99790-2976. Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas. Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Lucas Barbosa Rodrigues Postado 2 Outubro Autor Postado 2 Outubro Vou testar com esses dois para ver se pego alguma coisa que me ajude em uma possível solução, obrigado.
Recommended Posts
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora