Histórico de mensagens sobre url

EXIBINDO CONVERSAS RECENTES:

Texto: url
# pix
Avatar discord do usuario wfssoftware.

wfssoftware.

Ver Respostas

Foi sim, consigo pegar o token em PRD mas o criar cobrança retorna {"nome":"chave_invalida","mensagem":"A chave informada não faz referência à conta Gerencianet autenticada"} - Credenciais, Certificado, URL, tudo correto pra PRD mas nao funca.

# pix
Avatar discord do usuario anoni_mato

anoni_mato

boa tarde. alguém tem uma uma URL de location de cobrança que não esteja expirada pra eu testar uma integração minha aqui?

# pix
Avatar discord do usuario oleoessencial

oleoessencial

Ver Respostas

Vamos lá... Primeiro solicitamos o token com as nossas credenciais dadas pela GN. Depois geramos a cobrança. Depois geramos o BRCode. Informamos via api Webhook a GN a nossa url de retorno de mudança de status da cobrança. A GN envia o retorno para esta url cadastrada, o seu sistema valida o retorno e da baixa na cobrança. Em resumo é assim, na prática precisa de um mestrado, uma especialização e um doutorado na criação destes passos em cada linguagem. Estudando aqui. Estou falando em modo produção.

# pix
Avatar discord do usuario oleoessencial

oleoessencial

Ver Respostas

Na api tem as configurações do retorno por Webhook. A GN manda para a sua url cadastrada via api o retorno.

# pix
Avatar discord do usuario oleoessencial

oleoessencial

Ver Respostas

Entendi esta parte 🙂 O que não entendo é como o cara vai criar uma nova url de payload com a chave dele sem ser pela GN, ele teria que ter a sua propria url de payload, correto, sei que o comprador não tem a minima ideia disso, ele vai ficar vulneravel mesmo.

# pix
Avatar discord do usuario oleoessencial

oleoessencial

Ver Respostas

<@!440035527127990273> como ele vai modificar o retorno da url do payload se é gerado pela GN ?

# pix
Avatar discord do usuario joelguimaraesupdatesistemas

joelguimaraesupdatesistemas

Ver Respostas

Pelo que entendi, o QRCode dinâmico segue este fluxo:

Primeiro usamos a a Api do PSP no nosso caso a GN, para criar a cobrança e que retorna uma url de acesso ao payload que contem todas as informações desta cobrança para que o PSP do pagador possa obter.

Ao gerar o QR Code esta Url deverá ser introduzida no mesmo para que o PSP do pagador faça a consulta e tenha todas as informações da transação.

Caso esteja errado me corrija.

# pix
Avatar discord do usuario taironecdias

taironecdias

Pessoal, fazendo mais um teste aqui em sandbox dei um GET na url do location e retornou o erro 500 Internal Server Error, sendo o response:

json
{
"nome":"erro_aplicacao",
"mensagem":"Ocorreu um erro ao validar a chave"
}
Tá acontecendo aí com vocês?

# pix
Avatar discord do usuario jefferson.m

jefferson.m

Ver Respostas

Boa tarde. A quem interessar, segue uma implementação simples do brcode em python:

____________________________________________________
import crcmod
from collections import OrderedDict
from unicodedata import normalize
import re
from decimal import Decimal

def _pix_normalized_data(d, k):
if k == 'URL':
return d.split('//')[-1]
if k == 'VALOR':
if not isinstance(d, Decimal):
return Decimal(d)
return d

if k in ['CIDADE']:
k.upper()

r = normalize('NFKD', unicode(d)).encode('ASCII','ignore').decode('ascii')

return re.sub(r'([^0-9a-zA-Z\-\+\s_@\.])', '', r)
def gerar(dados):
qr_str = "000201010212"
estrutura = OrderedDict()
estrutura["URL"] = lambda d: "26%02d0014br.gov.bcb.pix25%02d%s" % (len(d)+22,len(d), d.strip())
estrutura["MERCHANT_CAT_CODE"] = lambda d: "52040000"
estrutura["CURRENCY"] = lambda d: "5303986"
estrutura["VALOR"] = lambda d: "54%02d%.2f" % (len('%.2f' % d), d)
estrutura["COUNTRY_CODE"] = lambda d: "5802%s" % 'BR'
estrutura["RECEBEDOR"] = lambda d: "59%02d%s" % (len(d), d[:99])
estrutura["CIDADE"] = lambda d: "60%02d%s" % (len(d), d[:99])
estrutura['IDTRANSACAO'] = lambda d: "62%02d05%d%s" % (len(d)+4, len(d), d)

for k,f in estrutura.items():
qr_str += f(_pix_normalized_data(dados.get(k), k))

qr_str += "6304"
crc16 = crcmod.mkCrcFun(0x11021, rev=False, initCrc=0xffff, xorOut=0x0000)
qr_str += hex(crc16(qr_str)).split('x')[1]
return qr_str


qrcode_dados = {}
qrcode_dados['RECEBEDOR'] = 'Fulano de Tal'
qrcode_dados['VALOR'] = 123.45
qrcode_dados['CIDADE'] = 'BRASILIA'
qrcode_dados['URL'] = 'bx.com.br/pix/8b3da2f3-9a41-40d1-a91a-bd93113bd441'
qrcode_dados['IDTRANSACAO'] = 'RP12345678-2019'
print(gerar(qrcode_dados))

# pix
Avatar discord do usuario paulacastro224023

paulacastro224023

Ver Respostas

Diogo, estou com o mesmo problema após a troca do ambiente de desenvolvimento para o de produção, já removi o -h da url, importei o novo certificado enviado por eles, verifiquei por caracteres em brancos (espaços) nas chaves porém estão normais, tudo parece estar ok mas no ambiente de produção sempre recebo esse mesmo erro... Poderia me dizer como corrigiu seu problema ?

# pix
Avatar discord do usuario oleoessencial

oleoessencial

Lembrando que o arquivo não vem com o final .jws ao acessar a url do location diretamente.

# pix
Avatar discord do usuario d3xt3r.com

d3xt3r.com

<@!671762828046106646> fiz a configuração do mTLS no server informando a crt de produção, minha pem e na full chain fiz um concat dos dois arquivos.

Quando tento criar o webhook, vejo que tem 4 POST no server provenientes da Gerencianet, acredito que seja o handshake.

Mas o retorno que obtenho é:
{
"nome": "webhook_invalido",
"mensagem": "A URL informada respondeu com o código HTTP 400"
}

# pix
Avatar discord do usuario rodolfo.santos8069

rodolfo.santos8069

Ver Respostas

Muda para:

CURLOPT_POSTFIELDS => json_encode(array('grant_type' => 'client_credentials')),

# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Olá, <@!691053103121825823> . Crie um arquivo config.json com as seguintes informações. Obs: renomeie o seu certificado para developmentCertificate.pem ou productionCertificate.pem de acordo com seu ambiente

{
"sandbox": false,
"homologacao": {
"nome_certificado": "developmentCertificate.pem",
"client_id": "Client_Id_...",
"client_secret": "Client_Secret_...",
"pix_url_auth": "https://api-pix-h.gerencianet.com.br/oauth/token",
"pix_url_cob": "https://api-pix-h.gerencianet.com.br/v2/cob"
},
"producao": {
"nome_certificado": "productionCertificate.pem",
"client_id": "Client_Id_...",
"client_secret": "Client_Secret_...",
"pix_url_auth": "https://api-pix.gerencianet.com.br/oauth/token",
"pix_url_cob": "https://api-pix.gerencianet.com.br/v2/cob"
}
}

# pix
Avatar discord do usuario jaoedson

jaoedson

Ver Respostas

Acredito que conseguir pagar ele consiga, o que vai acontecer é que quando a atualização de status for enviada para a url cadastrada no webhook seu sistema não conseguirá fazer a atualização/validação interna neste momento. Você pode dar um GET da cobrança depois para verificar o status da cobrança. Mas normalmente(como acontece com postbacks de cartão de crédito e boleto) os getways sempre enviam mais de 1 vez quando recebe resposta de erro.

# pix
Avatar discord do usuario jessica_efi

jessica_efi

@Deleted User essa falha normalmente é erro nas credenciais mesmo. Verifique as credenciais cliente_id e client_secret, a url e o certificado, por gentileza, pois o procedimento é esse mesmo

# pix
Avatar discord do usuario oleoessencial

oleoessencial

Ver Respostas

Pensando aqui, #reflexoes, a grande vulnerabilidade para o usuario comum ao efetuar um envio utilizando "copia e cola" é se esta url seja interceptada, modificada com outra chave de recebimento e validada novamente como um novo pix, retornando uma nova url "copia e cola" modificada o seu destino de envio. Ai não tem como impedir, tem como saber quem recebeu, ai são outros 300.

# pix
Avatar discord do usuario oleoessencial

oleoessencial

<@!656144788017381377> eu não consigo entender se agente acessa diretamente a url e baixa o arquivo normalmente depois é só abrir e fazer o base64decode, ai temos os dados do location, no caso o mais importante a chave .

# pix
Avatar discord do usuario oleoessencial

oleoessencial

Cheguei até este código, não sei gerar estes certificados, estou lendo aqui sobre, o cloudflare criou: o certificado e a chave privada com mTLS. 😦

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://blaablabla.com:443');
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
curl_setopt($ch, CURLOPT_SSLCERT, 'client.crt');
curl_setopt($ch, CURLOPT_SSLKEY, 'client.key');
curl_setopt($ch, CURLOPT_CAINFO, 'ca.crt'); // Lí agora que é o certificado raiz, para depois gerar o client.key.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);



?>

# pix
Avatar discord do usuario jaoedson

jaoedson

Ver Respostas

Tentei configurar aqui o Webhook e retornou "A autenticação de TLS mútuo não está configurada na URL informada". Entrei no cPanel do nosso servidor e em Segurança>SSL/TLS>Gerar tem a opção de subir um certificado .crt, mas estou com medo de sobrepor o certificado SSL do site é dar um problemão. Alguém já conseguiu configurar o webhook em modo produção?