Histórico de mensagens sobre timeout

EXIBINDO CONVERSAS RECENTES:

Texto: timeout
# comercial
Avatar discord do usuario sergiomsa

sergiomsa

@jessica_efi server {

server_name apivenda.unionadm.com.br;
root /var/www/unionadm/apivenda/public;

index index.php index.html index.htm;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_read_timeout 300;
}

location ~ /\.ht {
deny all;
}

location /webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
rewrite ^(.)$ /webhook/pix;
}

location /webhook/pix {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
rewrite ^(.
)$ /webhook/pix;
}

listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/apivenda.unionadm.com.br/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/apivenda.unionadm.com.br/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

ssl_client_certificate /var/www/unionadm/apivenda/storage/certificados/gerencianet/chain-pix-prod.crt;
ssl_verify_client optional;
ssl_verify_depth 3;


} server {

listen 80;
listen [::]:80;

server_name apivenda.unionadm.com.br;

}server {

if ($host = apivenda.unionadm.com.br) {
return 301 https://$host$request_uri;
} # managed by Certbot

server_name apivenda.unionadm.com.br;
listen 80;
return 404; # managed by Certbot

}

# comercial
Avatar discord do usuario sergiomsa

sergiomsa

Ver Respostas

server {

server_name apivenda.unionadm.com.br;
root /var/www/unionadm/apivenda/public;

index index.php index.html index.htm;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_read_timeout 300;
}

location ~ /\.ht {
deny all;
}

location /webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
rewrite ^(.)$ /webhook/pix;
}

location /webhook/pix {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
rewrite ^(.
)$ /webhook/pix;
}

listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/apivenda.unionadm.com.br/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/apivenda.unionadm.com.br/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

ssl_client_certificate /var/www/unionadm/apivenda/storage/certificados/gerencianet/chain-pix-prod.crt;
ssl_verify_client optional;
ssl_verify_depth 3;


} server {

listen 80;
listen [::]:80;

server_name apivenda.unionadm.com.br;

}server {

if ($host = apivenda.unionadm.com.br) {
return 301 https://$host$request_uri;
} # managed by Certbot

server_name apivenda.unionadm.com.br;
listen 80;
return 404; # managed by Certbot

}

# bolix
Avatar discord do usuario hiagosilvas

hiagosilvas

É que na instituição que uso atualmente aconteceu de dar timeout nos backends deles e o boleto ter sido gerado também..

# pix
Avatar discord do usuario solid9626

solid9626

Ver Respostas

É porque o servidor não retorna nenhuma mensagem de erro. Fica sem responder até dar timeout. Mas acho que encontrei um caminho pra resolver aqui. Eu vou postar a solução se eu conseguir.

# pix
Avatar discord do usuario igor_efi

igor_efi


$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://sandbox.gerencianet.com.br/v1/charge/one-step',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"items": [{
"name": "Product 1",
"value": 500,
"amount": 1
}],
"shippings": [{
"name": "Default Shipping Cost",
"value": 100
}],
"payment": {
"banking_billet": {
"expire_at": "2019-10-16",
"customer": {
"name": "Gorbadoc Oldbuck",
"email": "[email protected]",
"cpf": "14014603059",
"birth": "1977-01-15",
"phone_number": "62986070247"

}
}
}
}',
CURLOPT_HTTPHEADER => array(
'Authorization: {{Authorization}}',
'Content-Type: application/json'
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

# pix
Avatar discord do usuario Prof Zoidberg

Prof Zoidberg

$config = [
"certificado" => "./gerenciamento.pem",
"client_id" => "XXXXX",
"client_secret" => "XXXXX"
];
$autorizacao = $chaveiro["access_token"];

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-pix.gerencianet.com.br/v2/webhook/XXXXX',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => $chaveiro["access_token"],
CURLOPT_POSTFIELDS =>'{
"webhookUrl": "https://XXXXX/webhook.php"
}',
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer $autorizacao",
'x-client-cert-pem: ./gerenciamento.pem',
'x-skip-mtls-checking: false'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;

# pix
Avatar discord do usuario Prof Zoidberg

Prof Zoidberg

Ver Respostas

eu tenho esse código (que achei na documentação):
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-pix.gerencianet.com.br/v2/pix?inicio=2021-07-13T00:00:00.000Z&fim=2021-07-19T23:00:00.000Z',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'x-account-code: d74543e3a0fe7a7836a88dd97a281804'
),
));
$response = curl_exec($curl);

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

A chamada deu 504 timeout, ou ela respondeu dizendo que seu servidor deu 504 timeout ?

# pix
Avatar discord do usuario docknm

docknm

Ver Respostas

Config webhook dando código 504 timeout. Alguém já resolveu isso?

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Você não precisa de resend. GET /cob/:txid, se tiver o e2eid, foi pago. A informação já está lá.

Mas... o que a GN já sinalizou positivamente em resposta a um pedido meu e de outros usuários foi de não ter timeout nos webhooks do Pix. Continuar tentando enviar (possivelmente a cada 80 ou 160 minutos).

# pix
Avatar discord do usuario anoni_mato

anoni_mato

no momento eu só não estou tratando timeouts absolutos do seu lado (site totalmente off do seu lado e sem uma cdn ou load balancer pra responder 502, por exemplo). eu vou responder 200 mesmo, depois de uns 10 segundos. pra evitar sobrecarga no servidor do pix.ae com retentativas que provavelmente seriam frustradas de qualquer forma. de resto, tudo que vc responder, eu repasso pra GN.

# pix
Avatar discord do usuario felcampelo

felcampelo

"timeout no psp do recebedor".

# pix
Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Não é só do webhook, do C6 foi nítido o timeout na efetivação da transferência via SPI do BACEN.

# pix
Avatar discord do usuario matwbug

matwbug

Alguém consegue me ajudar aqui com a api pix? por algum motivo minha requisição curl nao está dando response no site da gerencianet, até baixei os proprios códigos da doc e mesmo assim não foi, é como se a requisição não fosse feita, estou utilizando php


$config = [
"certificado" => BASE.'data/certif/gerencianet.pem',
"client_id" => "xx",
"client_secret" => "xx"
];
$autorizacao = base64_encode($config["client_id"] . ":" . $config["client_secret"]);

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix-h.gerencianet.com.br/oauth/token", // Rota base, homologação ou produção
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => '{"grant_type": "client_credentials"}',
CURLOPT_SSLCERT => $config["certificado"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_HTTPHEADER => array(
"Authorization: Basic $autorizacao",
"Content-Type: application/json"
),
));

$response = curl_exec($curl);

curl_close($curl);

echo "
";
echo $response;
echo "
";
?>

# pix
Avatar discord do usuario fejw0w

fejw0w

tive uma série de timeouts com o último, coisa de outro mundo 😄

# pix
Avatar discord do usuario joaoc7439

joaoc7439

Ver Respostas

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$request_body"';
access_log /var/log/nginx/access.log main;
sendfile on;
server_tokens off;
keepalive_timeout 30;

upstream app_server {
server unix:/path.../gunicorn.sock fail_timeout=0;
}

server {
server_name exemplo.com qqcoisa.exemplo.com;

listen [::]:443 ssl http2;
listen 443 ssl http2; # managed by Certbot

access_log /path.../nginx-access.log;
error_log /path.../nginx-error.log;

client_max_body_size 1M;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_redirect off;

ssl_certificate /path.../fullchain.pem; # managed by Certbot
ssl_certificate_key /path.../privkey.pem; # managed by Certbot
include /path.../options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /path.../ssl-dhparams.pem; # managed by Certbot

# Config para Gerencianet:
ssl_client_certificate /path.../chain-pix-prod.crt;
ssl_verify_client optional;
ssl_verify_depth 3;

location /webhook {
if ($ssl_client_verify != SUCCESS) {
return 403;
}
rewrite ^(.)$ /webhook break;
proxy_pass http://app_server;
}

# checks for static file, if not found proxy to app
location / {
try_files $uri @proxy_to_app;
}
location @proxy_to_app {
proxy_pass http://app_server;
}
}

}

# pix
Avatar discord do usuario destemido9466

destemido9466

$config = [
"certificate" => realpath("certs/producao/certificado.pem")
];

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-pix.gerencianet.com.br/v2/webhook/".$chave_pix,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_SSLCERT => $config["certificate"], // Caminho do certificado
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_POSTFIELDS =>'{
"webhookUrl": "https://webhook.com/webhook"
}',
CURLOPT_HTTPHEADER => array(
'authorization: Bearer '.$access_token,
'x-skip-mtls-checking: false',
'Content-Type: application/json'
),
));

$response = curl_exec($curl);
$options = json_decode($response, true);


if ($response === FALSE){
$curl_error = curl_error($curl);
}

curl_close($curl);
echo $response;

# pix
Avatar discord do usuario diegohenrique1989

diegohenrique1989

Ver Respostas

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-pix-h.gerencianet.com.br/v2/webhook/[email protected]',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_SSLCERT => OPTIONS["pix_cert"],
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS =>'{
"webhookUrl": "' . WEBHOOK_URL . '"
}',
CURLOPT_HTTPHEADER => array(
"authorization: $tokenType $token",
'x-client-cert-pem: {{X-Certificate-Pem}}',
'x-skip-mtls-checking: true'
),
));

# pix
Avatar discord do usuario luizgerencianet

luizgerencianet

Ver Respostas

Bom dia <@!400344063846645760> !
Temos um exemplo da requisição de autenticação feita pelo Delphi!
Segue a Função

Delphi
///////////
Const
Body = '{"grant_type": "client_credentials"}';
var
sResponse : String;
HttpClient: TIdHTTP;
JsonToSend: TMemoryStream;
AccessToken : iSuperObject;
begin

HttpClient := TIdHTTP.Create( nil );
HttpClient.ConnectTimeout := 20000;
HttpClient.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);

with TIdSSLIOHandlerSocketOpenSSL(HttpClient.IOHandler).SSLOptions do
begin
CertFile := //Caminho do Certificado do tipo .PEM
KeyFile := //Caminho da chave do Certificado do tipo .PEM
Mode := sslmUnassigned;
SSLVersions := [sslvTLSv1_2];
end;

with HttpClient do
begin
Request.CustomHeaders.Values['Content-Type'] := 'application/json; application/x-www-form-urlencoded;';
Request.ContentType := 'application/json';
Request.CharSet := 'utf-8';
Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; GTB5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; Maxthon; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618)';
HandleRedirects := True;
HTTPOptions := [hoKeepOrigProtocol, hoInProcessAuth];
end;


HttpClient.Request.Username := //Seu ClientId;
HttpClient.Request.Password := //Seu ClientSecret
HttpClient.Request.BasicAuthentication := True;

JsonToSend := TMemoryStream.Create;
WriteStringToStream(JsonToSend, Body, IndyTextEncoding_UTF8);
JsonToSend.Position := 0;

sResponse := HttpClient.Post({A URL Produção/Homologação}+'/oauth/token',JsonToSend);
AccessToken := SO(sResponse);
ShowMessage(AccessToken.S['access_token']);
end;

# bolix
Avatar discord do usuario christianosilveira4948

christianosilveira4948

Ver Respostas

hWebService := CURL_EASY_INIT()

IF !EMPTY(hWebService)

CURL_EASY_SETOPT(hWebService, HB_CURLOPT_URL, "https://sandbox.gerencianet.com.br/v1/authorize")
CURL_EASY_SETOPT(hWebService, HB_CURLOPT_RETURNTRANSFER, .T.)
CURL_EASY_SETOPT(hWebService, HB_CURLOPT_ENCODING, '')
CURL_EASY_SETOPT(hWebService, HB_CURLOPT_MAXREDIRS, 10)
CURL_EASY_SETOPT(hWebService, HB_CURLOPT_TIMEOUT, 0)
CURL_EASY_SETOPT(hWebService, HB_CURLOPT_FOLLOWLOCATION, .T.)
CURL_EASY_SETOPT(hWebService, HB_CURLOPT_HTTP_VERSION, "CURL_HTTP_VERSION_1_1")
CURL_EASY_SETOPT(hWebService, HB_CURLOPT_CUSTOMREQUEST, "POST")
CURL_EASY_SETOPT(hWebService, HB_CURLOPT_POSTFIELDS, {"grant_type","client_credentials"})
CURL_EASY_SETOPT(hWebService, HB_CURLOPT_HTTPHEADER, {'Authorization: Basic Q2...','Content-Type: application/json'})

ncurlErr:=curl_easy_perform (hWebService)
IF ncurlErr > 0
? "Curl Error: "+str(ncurlErr)
ENDIF

ENDIF

curl_easy_cleanup( hWebService )