Histórico de mensagens sobre php em pix

EXIBINDO CONVERSAS RECENTES:

Texto: php
Canal: pix
Avatar discord do usuario amadeujunior18

amadeujunior18

$filename_p12 = 'caminho do certificado p12';
$password = '';
$results = array();
$worked = openssl_pkcs12_read(file_get_contents($filename_p12), $results, $password);
if ($worked) {
file_put_contents('newcert.pem', $results['cert'] . PHP_EOL . $results['pkey']);
} else {
'Deu erro';
}

Avatar discord do usuario amadeujunior18

amadeujunior18

usa o php pra gerar o .pem a partir do p12

Avatar discord do usuario kleyber_

kleyber_

Ver Respostas

Pessoal, voltando aos testes aqui no Mac... então, já importei tanto o arquivo .P12 quanto o arquivo .PEM, e alterei a confiabilidade de ambos, regerei minha aplicação em PHP, mas o erro:
SSL: Can't load the certificate "./certificado/developer166379.pem" and its private key: OSStatus -61
persiste...

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Tente compilar seu próprio curl usando OpenSSL (o padrão do Mac é usar a biblioteca Secure Transport do sistema).

Compile e instale o OpenSSL via Homebrew:
brew install curl --with-openssl
brew install php56 --with-homebrew-curl
brew link curl --force
curl --version

Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Bom dia! Em nossa SKD houve algumas correções na função que gera o txid. Você está usando a release 1.0.0? Você pode verificar as correções no CHANGELOG no repositório do GitHub. https://github.com/gerencianet/gn-pix-sdk-php-exemplo

Avatar discord do usuario amadeujunior18

amadeujunior18

Ver Respostas

Na versão anterior da documentação tinha um "location": "url", agora esta recebendo alem dele um "loc" : {"location" : "url"}, com o mesmo conteúdo, olhando o exemplo que foi feito em php por parte da consultoria, vi que esta utilizando "loc" : {"location" : "url"}.
Pergunta, vai ser desativado o "location": "url" , em futuras atualizações da api?

Avatar discord do usuario felipoantonoff

felipoantonoff

No método, que gera o CRC16, coloquei no final:
if (strlen($hex) == 3) {
$hex = '0' . $hex;
}

Nos novos testes, não chegou a ocorrer 3 caracteres, mas deve resolver caso ocorra , talvez possa ajudar quem precisar também para o PHP.

Outra forma, feita pelo <@!440035527127990273> : $hex = str_pad((string) $hex, 4, "0", STR_PAD_LEFT);
Adiciona zeros até dar 4 caracteres, logo se faltar 1 zero, adiciona um e assim por diante

Avatar discord do usuario felipoantonoff

felipoantonoff

Acho que tem algum detalhe da Lib do PHP então, pois a criação do txid usamos ela

Avatar discord do usuario oleoessencial

oleoessencial

Ver Respostas

Chamarei o PIX de "BOLO" para fazer um bolo, preciso de alguns ingredientes, a GN me fornece todos os ingredientes para fazer o bolo (certificado .p12 , client_id e client_secret, alem de exemplos de bolos feitos com o SDK existente e uma fabrica de bolos pronta com o postman) , porém eu posso fazer um bolo com php, delphi, c#, node, python, pascal, basic, fortran, assembler, lua, etc. O BOLO no final será o mesmo , apenas foi feito de formas diferentes. Então eu preciso estudar os princípios de como fazer bolo, antes de começar efetivamente a fazer o bolo em qualquer linguagem 🙂

Avatar discord do usuario amunhoz

amunhoz

Ver Respostas

Magno, eu trabalho com sistemas mais completos e não sou focado em meios de pagamento.
Uma empresa inovadora ouve esses comentários e busca melhorias. O fato de haver um Webinar e SDK em php para facilitar, já diz que não está tão fácil.
Ter uma documentação mais aderente a programadores que não estão envolvidos no processo do Pix e que possam começar a integração diretamente pelo PIX sem ter que revisar toda a DOC para achar informações (status de pagamento por exemplo), só vai beneficiar a empresa.

Avatar discord do usuario reidoscoins

reidoscoins

Parse error: syntax error, unexpected ';', expecting ',' or ')' in /home/reidoscoins/public_html/catalog/model/extension/payment/code_gerencianet_pix_lib.php on line 95

Avatar discord do usuario joelemanoel

joelemanoel

Se tiver o php-gd utilizar ele, caso não, utilizar o Google.

Avatar discord do usuario joelemanoel

joelemanoel

Como no PHP vai precisar do php-gd eu acabei optando por usar ela...

Avatar discord do usuario bartwitch

bartwitch

e se for PHP, eu fiz uma lib que acho que serve ao menos pra vc ler ali e saber por onde começar..

Avatar discord do usuario anoni_mato

anoni_mato

no postman olha pelo curl - curl. o exemplo PHP é bem esquisito

Avatar discord do usuario brasizza

brasizza

no php e etc direto pelo curl vc passa o path do certificado, mas no postman ta diferente

Avatar discord do usuario oleoessencial

oleoessencial

34.193.116.226 0.688 - [12/Dec/2020:15:50:00 -0300] gn.pix.server.br "POST /webhook/vaichegarsim.php HTTP/1.1" 200 32 "-" "Gerencianet" "HTTP/1.1"

Avatar discord do usuario felipoantonoff

felipoantonoff

Ver Respostas

Pessoal outra dúvida, para emitir o Pix/Cobrança temos o calendario, tentei passar assim:

php
[calendario] => Array
(
[criacao] => 2020-12-12T13:03:58Z
[expiracao] => 86400
)
Com a data de criação, porém da o erro:
{"nome":"json_invalido","mensagem":"Valores ou tipos de campo inválidos","erros":[{"chave":"additionalProperties","caminho":".body.calendario","mensagem":"não são permitidas propriedades adicionais"}]}

Está errado o padrão usado na data de criação ou não da para informar?
Sem ela pega normal, queria por só, pois ao criar sem ela, fica com horário errado na data de criacao
E uso ela para filtras as cobranças recentes

Avatar discord do usuario felipoantonoff

felipoantonoff

Usei o Curl da Lib PHP, com pequena adição de logs, segue o Curl usado:

php
$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => $pix_url_cob,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 8,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_SSLCERT => $arq_certificado,
CURLOPT_SSLCERTPASSWD => "",
CURLOPT_POSTFIELDS => $body,
CURLOPT_HTTPHEADER => [
"authorization: $tokenType $accessToken",
"Content-Type: application/json",
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);
if ($err) {
$this->log->write('emitePix() - Error Curl' . print_r($err, true));
return false;
}

$this->log->write('emitePix() - Error Curl' . print_r($err, true));

$this->log->write('emitePix() - Response ' . print_r($response, true));"

Curioso, que parece ocorrer só nesta chamada, a autorização não ocorre isso.
Uso o PHP 7.2 no servidor e com HTTPS.