Histórico

EXIBINDO CONVERSAS RECENTES:

Texto: input
# pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver RespostasVer no Discord

Ok, no $body insira o ?ignorar=
$body = '{
"webhookUrl": "https://julioerp.agenciaweblab.com.br/webhook.php?ignorar="
}';

E no arquivo "/webhook.php" inseira o exemplo de código abaixo:

php

function resposta($status, $mensagem, $dados)
{
$resposta['status'] = $status;
$resposta['mensagem'] = $mensagem;
$resposta['dados'] = $dados;
$json_resposta = '
' . json_encode($resposta, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . '
';

header("HTTP/1.1 " . $status);
echo $json_resposta;
}

function salvar($dados)
{
// Crie um arquivo .;json para salvar as informações
$nomeArquivo = './dados.json';
$dadosGravados = json_decode(file_get_contents($nomeArquivo), true);
$arquivo = fopen($nomeArquivo, 'w');

// Incrementa as informações enviadas com o que já havia gravado
array_push($dadosGravados, $dados);

if (fwrite($arquivo, json_encode($dadosGravados))) {
resposta(200, "Requisição realizada com sucesso!", $dados);
} else {
resposta(300, "Falha ao salvar os dados da requisição.", $dados);
}

fclose($arquivo);
}

function requisicao($metodo, $body, $parametros)
{
switch ($metodo) {
case 'POST':
salvar($body);
break;
case 'GET':
resposta(200, "Requisição realizada com sucesso!", $body);
break;
}
}

// Obtém o método HTTP, body e parâmetros da requisição
$metodo = $_SERVER['REQUEST_METHOD'];
$parametros = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
$body = json_decode(file_get_contents('php://input'), true);

try {
requisicao($metodo, $body, $parametros);
} catch (Exception $e) {
resposta(400, $e->getMessage(), $e);
}

A fim de teste, neste exemplo está salvando o json recebido em um arquivo dados.json. Então na mesma raiz crie-o com permissão de leitura e escrita. E escreva dentro do arquivo dados.json assim: [] para iniciar o json. Então simule um pagamento para receber a notificação.
Depois dos testes, pode manipular o json e gravar em um banco de dados.

# pix
Avatar discord do usuario allgood.eth

allgood.eth

Ver no Discord

vou ter que dar uma saida. obrigado pelo input @rubenskuhl

# pix
Avatar discord do usuario allgood.eth

allgood.eth

Ver RespostasVer no Discord

Obrigado pelo seu input.

estou fazendo uma prova de conceito ainda com a EFI.

# pix
Avatar discord do usuario peduuuu

peduuuu

Ver no Discord

to usando o codigo da própria documentação para tratar o JSON de notificação, imagino eu que essa linha seja a responsável por colher o json

$body = json_decode(file_get_contents('php://input'), true);

# pix
Avatar discord do usuario joabsilvalima

joabsilvalima

Ver RespostasVer no Discord

import React from 'react'
import PropTypes from 'prop-types'
import MaskedInput from 'react-text-mask'
import createNumberMask from 'text-mask-addons/dist/createNumberMask'

const defaultMaskOptions = {
prefix: 'R$',
suffix: '',
includeThousandsSeparator: true,
thousandsSeparatorSymbol: '.',
allowDecimal: true,
decimalSymbol: ',',
decimalLimit: 2, // how many digits allowed after the decimal
integerLimit: 7, // limit length of integer numbers
allowNegative: false,
allowLeadingZeroes: false,
}

const CurrencyInput = ({ maskOptions, ...inputProps }) => {
const currencyMask = createNumberMask({
...defaultMaskOptions,
...maskOptions,
})

return
}

CurrencyInput.defaultProps = {
inputMode: 'numeric',
maskOptions: {},
}

CurrencyInput.propTypes = {
inputmode: PropTypes.string,
maskOptions: PropTypes.shape({
prefix: PropTypes.string,
suffix: PropTypes.string,
includeThousandsSeparator: PropTypes.bool,
thousandsSeparatorSymbol: PropTypes.string,
allowDecimal: PropTypes.bool,
decimalSymbol: PropTypes.string,
decimalLimit: PropTypes.string,
requireDecimal: PropTypes.bool,
allowNegative: PropTypes.bool,
allowLeadingZeroes: PropTypes.bool,
integerLimit: PropTypes.number,
}),
}

export default CurrencyInput

# pix
Avatar discord do usuario hspatz

hspatz

Ver RespostasVer no Discord

Eu estou utilizando o SDK-PHP de voces.
Cadastrei o webhook como "https://meudominio.com.br/pixefi"
Recebo os eventos da criação no endereço acima

( [{"evento":"teste_webhook","data_criacao":"2024-03-30T11:20:39.415Z"}] ).

O "index.php" nesta pasta é o mesmo do site.

Abaixo deste diretório existe uma pasta "pix" onde o mesmo "index.php"rdt's lá. ( "meusite.com.br/pixefi/pix" )
AO criar um pagamento PIX em produção e o mesmo pago, não recebo nenhuma informação de retorno da EFI.
Foi colocadouma função que salva qualquer acesso a pasta, como exemplo fiz um acesso pelo Chrome "https://meudominio.com.br/pixefi/pix" e o resultado salvo foi.


Metodo: GET
Parametros: a:2:{i:0;s:6:"pixefi";i:1;s:3:"pix";}
Body: null


Segue o parte do script "index.php" onde salva qualquer acesso a pasta

===============================================================
// Obtém o método HTTP, body e parâmetros da requisição
$metodo = $_SERVER['REQUEST_METHOD'];
$parametros = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
$body = json_decode(file_get_contents('php://input'), true);


//
/
$nomeArquivo = 'dados/dados_recebidos.json';
$dadosJson = "\n Metodo: " .$metodo ."\n Parametros: " .serialize($parametros) ."\n" ."Body: " .json_encode($body) ."\n";
$arquivo = fopen($nomeArquivo, 'a');
fwrite($arquivo, $dadosJson);
fclose($arquivo);
//
/


try {
requisicao($metodo, $body, $parametros);
} catch (Exception $e) {
salvar ( $xdados);
resposta(400, $e->getMessage(), $e);
}
=================================================================

Estou tentando gerar cobranças no modo homologação de R$ 0,01 e não recebo notificação no modo de homologação também.

# pix
Avatar discord do usuario .thallestks

.thallestks

Ver RespostasVer no Discord

gerencianet
.createCharge({}, chargeInput)
.then((resposta) => {
console.log(resposta)
})
.catch((error) => {
console.log(error)
res.status(500).send('Erro');
})

# pix
Avatar discord do usuario tolribeiro

tolribeiro

Ver RespostasVer no Discord

Pessoal boa tarde, por via das duvidas ja havia lido sobre esse probleminha…mas soh pra confirmar se vcs estao cientes

O codigo do copia e cola (ao ser copiado como texto do whatsapp por ex) , ao ser colado no input de aplicativos de banco, adiciona automaticamente eh adicionado um “https” . Isso eh conhecido por vcs ja?

# pix
Avatar discord do usuario celo_diana

celo_diana

Ver no Discord

js
const chargeInput = {
"valor": "1.00",
"pagador": {
"chave": "exemplo",
"infoPagador": "Segue o pagamento da conta"
},
"favorecido": {
"chave": "[email protected]"
}
}
seguindo desse jeito

# cartões
Avatar discord do usuario celo_diana

celo_diana

Ver RespostasVer no Discord

@rubenskuhl boa noite tudo bão? Tu sabe porque retorna :

{
code: 3500034,
error: 'validation_error',
error_description: {
property: '/id',
message: 'Tipo inválido: string (esperado integer).'
}
}


apartir daqui :

js
const responseCobranca = await efipay.createCharge([], chargeInput);

const cobrancaId = parseInt(responseCobranca.data.charge_id);
const pagamentoCartao = {
payment: {
credit_card: {
customer: {
name: "Gorbadoc Oldbuck",
cpf: "94271564656",
email: "[email protected]",
birth: "1990-08-29",
phone_number: "5144916523"
},
installments: 1,
payment_token: "",
billing_address: {
street: "Avenida Juscelino Kubitschek",
number: "909",
neighborhood: "Bauxita",
zipcode: "35400000",
city: "Ouro Preto",
complement: "",
state: "MG"
}
}
}
};

const responseDefinePayMethod = await efipay.definePayMethod([], pagamentoCartao);

estou tentando adicionar um metodo de cartão ao pagamento

# pix
Avatar discord do usuario .viniciusc

.viniciusc

Ver no Discord

java
InputStreamReader reader = new InputStreamReader(conn.getInputStream());
BufferedReader br = new BufferedReader(reader);

String response;
StringBuilder responseBuilder = new StringBuilder();
while ((response = br.readLine()) != null) {
responseBuilder.append(response);
}

ObjectMapper mapper = new ObjectMapper();
token = mapper.readValue(responseBuilder.toString(), Token.class);

conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

# pix
Avatar discord do usuario .viniciusc

.viniciusc

Ver no Discord

java
public static Token authorizeToken(String client_id, String client_secret, byte[] certificateBytes) {
Token token = null;
String basicAuth;
try {
System.out.println(certificateBytes.length);
basicAuth = Base64.getEncoder().encodeToString((client_id + ':' + client_secret).getBytes());

File tempFile = File.createTempFile("certificate", ".p12");
tempFile.deleteOnExit();

try (FileOutputStream fos = new FileOutputStream(tempFile)) {
fos.write(certificateBytes);
}

System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
System.setProperty("javax.net.ssl.keyStore", tempFile.getAbsolutePath());

SSLSocketFactory sslSocketFactory = (SSLSocketFactory) SSLSocketFactory.getDefault();

URL url = new URL("https://api-pix-h.gerencianet.com.br/oauth/token");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Basic " + basicAuth);
conn.setSSLSocketFactory(sslSocketFactory);
String input = "{\"grant_type\": \"client_credentials\"}";

OutputStream os = conn.getOutputStream();
os.write(input.getBytes());
os.flush();

# pix
Avatar discord do usuario vitor.oliveira94

vitor.oliveira94

Ver no Discord

estou usando o exemplo de código que esta no site.

function resposta($status, $mensagem, $dados)
{
$resposta['status'] = $status;
$resposta['mensagem'] = $mensagem;
$resposta['dados'] = $dados;
$json_resposta = '
' . json_encode($resposta, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . '
';

header("HTTP/1.1 " . $status);
echo $json_resposta;
}

function salvar($dados)
{
// Crie um arquivo .;json para salvar as informações
$nomeArquivo = 'dados.json';
$dadosGravados = json_decode(file_get_contents($nomeArquivo), true);
$arquivo = fopen($nomeArquivo, 'w');

// Incrementa as informações enviadas com o que já havia gravado
array_push($dadosGravados, $dados);

if (fwrite($arquivo, json_encode($dadosGravados))) {
resposta(200, "Requisição realizada com sucesso!", $dados);
} else {
resposta(300, "Falha ao salvar os dados da requisição.", $dados);
}

fclose($arquivo);
}

function requisicao($metodo, $body, $parametros)
{
switch ($metodo) {
case 'POST':
salvar($body);
break;
case 'GET':
resposta(200, "Requisição realizada com sucesso!", $body);
break;
}
}

// Obtém o método HTTP, body e parâmetros da requisição
$metodo = $_SERVER['REQUEST_METHOD'];
$parametros = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
$body = json_decode(file_get_contents('php://input'), true);

try {
requisicao($metodo, $body, $parametros);
} catch (Exception $e) {
resposta(400, $e->getMessage(), $e);
}

# pix
Avatar discord do usuario martheuss777

martheuss777

Ver RespostasVer no Discord

estatico, o usuario digita o valor no input e gera o qr code, isso ja consegui.... agr só falta a questao do código q copia e cola

# pix
Avatar discord do usuario .viniciusc

.viniciusc

Ver no Discord

java
public static Cob createCharge(String token, String payload) {
Cob cob = null;
try {
Generex txid = new Generex("[a-zA-Z0-9]{26,35}");
URL url = new URL("https://api-pix-h.gerencianet.com.br/v2/cob/" + txid.random());
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("PUT");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "Bearer " + token);

OutputStream os = conn.getOutputStream(); // O erro do connection reset ocorre aqui
os.write(payload.getBytes());
os.flush();

int responseCode = conn.getResponseCode();

StringBuilder responseBuilder = new StringBuilder();
BufferedReader br;

if (responseCode >= 400) {
br = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
} else {
br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
}

String response;
while ((response = br.readLine()) != null) {
responseBuilder.append(response);
}

//System.out.println("Código de resposta HTTP: " + responseCode);
//System.out.println("Resposta do servidor: " + responseBuilder);

JsonMapper mapper = JsonMapper
.builder()
.configure(MapperFeature.USE_ANNOTATIONS, false)
.build();

cob = mapper.readValue(responseBuilder.toString(), Cob.class);

conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return (cob != null) ? cob : new Cob();
}

# módulos-plugins
Avatar discord do usuario marcosresende_

marcosresende_

Ver RespostasVer no Discord

preciso de ajuda com a Integração do Woocommerce. Quando o usuário clica nas opções boleto ou cartão de crédito as abas não abrem mostrando os campos para input dos dados de pagamento.
No console de erro do navegador aparece essa mensagem:

Uncaught TypeError: Cannot read properties of undefined (reading 'length')
at onCardClick (checkout.js?ver=6.2.2:133:43)
at HTMLDivElement. (checkout.js?ver=6.2.2:92:51)
at HTMLDivElement.dispatch (jquery.js?ver=6.2.2:5466:27)
at elemData.handle (jquery.js?ver=6.2.2:5270:28)


Nesse print identifico exatamente onde ocorre o erro no JS
O erro é esporádico, ora funciona, ora não funciona, não consigo identificar exatamente quando ocorre o erro.

imagem enviada na mensagem pelo usuario marcosresende_

# módulos-plugins
Avatar discord do usuario hiagosilvas

hiagosilvas

Ver RespostasVer no Discord

@consultoria_efi deixo uma dica para vocês. No plugin do WooCommerce para cartão de crédito vocês poderiam colocar nos input's o inputmode="numeric" assim será exibido apenas o teclado númerico no dispositivo do comprador.