Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite senhores.
Gostaria de uma ajuda.
Estou tentando utilizar o retorno automático do BCash, localmente, ele funciona, porém, no host, ele não retorna nada, o POST vem zerado.
Confirme com a hospedagem e com o próprio BCash, porém nenhuma permissão especial seria necessária. Conferi os tokens e as URLs de Retorno e estão corretas.
O código do erro gerado é:
Erro 400
2015002 Parâmetro id_transacao ou id_pedido obrigatório
Mas pelo que vejo, não foi gerador nenhum post para esses parâmetros serem preenchidos. Lembrando que nos input hiddens na finalização, eu coloquei o campo id_pedido com o código do pedido a ser gerado.
Segue abaixo o código do retorno:
<?php
// Email cadastrado no Bcash
$email = "AQUIVAIOEMAIL";
// Obtenha seu TOKEN entrando no menu Ferramentas do Bcash
$token = "AQUIVAIMEUTOKEN";
$urlPost = "https://www.bcash.com.br/transacao/consulta/";
//var_dump($_POST);die;
$transacaoId = $_POST["transacao_id"];
$pedidoId = $_POST["pedido"];
$tipoRetorno = 1;
$codificacao = 1;
ob_start();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $urlPost);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array("id_transacao"=>$transacaoId,"id_pedido"=>$pedidoId,"tipo_retorno"=>$tipoRetorno,"codificacao"=>$codificacao));
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Basic ".base64_encode($email. ":".$token)));
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_exec ($ch);
/* XML ou Json de retorno */
$resposta = ob_get_contents();
ob_end_clean();
/* Capturando o http code para tratamento dos erros na requisição*/
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($httpCode != "200")
{
//Tratamento das mensagens de erro
echo "Erro ".$httpCode."<br/><br/>";
print_r($resposta);
}else{
//Tratamento dos dados da consulta
echo "Status ".$httpCode."<br/><br/>";
print_r($resposta);
}
?>Na verdade, tentei este também, porém, entrei em contato com o BCash, e eles me repassaram esse código.
Vc alterou o código que o BCash disponibiliza para o retorno ? Porque o que aparece pra mim na documentação é pouco diferente.
<?php
// Variáveis de retorno
// Obtenha seu TOKEN entrando no menu Ferramentas do Bcash
$token = '';
/ Montando as variáveis de retorno /
/ Essa variável indica a quantidade de produtos retornados /
$qtde_produtos = $_POST['qtde_produtos'];
/ Verificando ID da transação /
/ Verificando status da transação /
/ Verificando valor original /
/ Verificando valor da loja /
$post = "transacao=$id_transacao" .
"&status=$status" .
"&cod_status=$cod_status" .
"&valor_original=$valor_original" .
"&valor_loja=$valor_loja" .
if(trim($resposta)=="VERIFICADO"){
// Loop para retornar dados dos produtos
/*
Após obter as variáveis dos produtos, grava no banco de dados.
Se produto já existe, atualiza os dados, senão cria novo pedido.
*/
}
}