Ir para conteúdo
Fórum Script Brasil
  • 0

Redecard - Terceira etapa


Carlos Rocha

Pergunta

Olá.

Estou tentando configurar meu site para fazer vendas com cartao de credito - REDECARD Komerci

Tem 5 etapas:

1. Loja-virtual -> Redecard

A loja virtual deverá enviar os seguintes parâmetros para a Redecard, quando da chamada para a tela de captura do Komerci:

Tranquilo.

2. Redecard -> Loja-virtual 2

Transação Aprovada

Se a transação for aprovada e bem sucedida, a Redecard retornará os seguintes parâmetros para a loja-virtual, em método GET, através de sua URLBACK (previamente cadastrada ou fornecida em parâmetro):

Deu para fazer

3. Loja-Virtual -> Redecard

Caso a transação tenha sido aprovada pelo emissor, a loja-virtual deverá confirmá-la, retornando os seguintes parâmetros para o endereço:

http://ecommerce.red...l/confirma.asp:

O tráfego destes dados não deverá ocorrer através do browser do usuário ou com sua interferência, ou seja, o webserver da loja-virtual deverá comunicar-se diretamente com o ambiente da Redecard.

Pode-se, por exemplo, utilizar componentes, serviços, servlets, etc.

Este procedimento garante a segurança do tráfego dos dados entre a Redecard e a sua lojavirtual.

Quando chega aqui, minha loja envia os dados para a redecard mas nõ volta o codigo de retorno para a urlback. Esse codigo de retorno é exibido com sucesso na propria pagina da redecard e ai o script para.

Veja meu script.

Veja onde estou errando:

<?
header('Content-Type: text/html; charset=utf-8');
include ("TMySQL.php");
//Abrindo conexao com o banco de dados 
$MySQL = new TMySQL();
$MySQL->connect($host, $db, $user, $pass);


$DATA = $_GET['DATA'];//8 Data da transação
$NUMPEDIDO = $_GET['NUMPEDIDO']; //16 Número do Pedido
$NR_CARTAO = $_GET['NR_CARTAO']; //16 Número do Cartão mascarado
$ORIGEM_BIN = $_GET['ORIGEM_BIN']; //3 Código de Nacionalidade do Emissor
$NUMAUTOR = $_GET['NUMAUTOR']; //6 Número de Autorização
$NUMCV = $_GET['NUMCV']; //9 Número do Comprovante de Venda (NSU)
$NUMAUTENT = $_GET['NUMAUTENT']; //27 Número de Autenticação
$NUMSQN = $_GET['NUMSQN']; //12 Número seqüencial único
$NUMPRG = $_GET['NUMPRG']; //1 Número correspondente ao programa de captura utilizado

///CASO DE ERROS
$CODRET = $_GET['CODRET']; //2 Código de erro
$MSGRET = $_GET['MSGRET']; //200 Mensagem de erro
if       ( !isset($CODRET)                             )  {
    $consulta=$MySQL->query("select PRECO_TOTAL from pedidos_cliente where ID_PEDIDO_CLIENTE=$NUMPEDIDO");    
    list($PRECO_TOTAL) = mysql_fetch_array($consulta);
    $url= "http://ecommerce.redecard.com.br/pos_virtual/confirma.asp?"
          ."DATA=$DATA&"    
          ."TRANSACAO=203&"
          ."TRANSORIG=04&"
          ."PARCELAS=00&"
          ."FILIACAO=30355141&"
          ."DISTRIBUIDOR=&"
                     ."TOTAL=$PRECO_TOTAL";
          ."NUMPEDIDO=$NUMPEDIDO&"
          ."NUMAUTOR=$NUMAUTOR&"          
          ."NUMCV=$NUMCV&"          
          ."NUMSQN=$NUMSQN&"      
          ."ORIGEM_BIN=$ORIGEM_BIN&"
          ."NUMPRG=$NUMPRG";    
        
    print "<script>document.location='$url'</script>";    
                                                           }
else if (
          $CODRET==50 or $CODRET==52 or $CODRET==54 or $CODRET==55 or $CODRET==57 or $CODRET==59 or $CODRET==61 or 
          $CODRET==62 or $CODRET==64 or $CODRET==66 or $CODRET==67 or $CODRET==68 or $CODRET==70 or $CODRET==71 or 
          $CODRET==73 or $CODRET==75 or $CODRET==78 or $CODRET==79 or $CODRET==80 or $CODRET==82 or $CODRET==83 or 
          $CODRET==84 or $CODRET==85 or $CODRET==87 or $CODRET==89 or $CODRET==90 or $CODRET==91 or $CODRET==93 or 
          $CODRET==94 or $CODRET==95 or $CODRET==97 or $CODRET==99
         )
                                                         { print $MSGRET;  exit; }
else if  ( $CODRET==51 or $CODRET==92 or $CODRET==98  )  { print $MSGRET;  exit; }
else if  ( $CODRET==53                                )  { print $MSGRET;  exit; }
else if  ( $CODRET==76 or $CODRET==86                 )  { print $MSGRET;  exit; }
else if  ( $CODRET==58 or $CODRET==63 or  $CODRET==65 or  $CODRET==69 or  $CODRET==72 or  $CODRET==77 or $CODRET==96  )  
                                                         { print $MSGRET;  exit; }
else if  ( $CODRET==56 or $CODRET==60                 )  { print $MSGRET;  exit; }
else if  ( $CODRET==74                                )  { print $MSGRET;  exit; }
else if  ( $CODRET==81                                )  { print $MSGRET;  exit; }
//AQUI já FOI ENVIADA A SEGUNDA FASE E AGORA ESTA RECEBENDO O CÓDIGO DE CONFIRMAÇÃO.
else if  ( $CODRET >=0 and  $CODRET <=49              ) 
                                                         {        
                                                     
  
?>
<form name="redirectform" id="redirectform" method="get" action="https://ecommerce.redecard.com.br/pos_virtual/cupom.asp" target="_self">
        <input type="hidden" name="DATA" value="<?=$_GET["DATA"]?>">
        <input type="hidden" name="TRANSACAO" value="201">
        <input type="hidden" name="NUMAUTOR" value="<?=$_GET["NUMAUTOR"]?>">
        <input type="hidden" name="NUMCV" value="<?=$_GET["NUMCV"]?>">
        <input type="hidden" name="LANGUAGE" value="">
</form>
<script type="text/javascript">
        function enviaform() {
                document.redirectform.submit();
        }
        try {
                enviaform();
        } catch(e) {
                // Mozzila...
                setTimeout('enviaform()', 250);
        }
</script>
<?                                                        } 
?>

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Good,

Nobody,

I get this:

<?
header('Content-Type: text/html; charset=utf-8');
include ("TMySQL.php");
//Abrindo conexao com o banco de dados 
$MySQL = new TMySQL();
$MySQL->connect($host, $db, $user, $pass);


$DATA = $_GET['DATA'];//8 Data da transação
$NUMPEDIDO = $_GET['NUMPEDIDO']; //16 Número do Pedido
$NR_CARTAO = $_GET['NR_CARTAO']; //16 Número do Cartão mascarado
$ORIGEM_BIN = $_GET['ORIGEM_BIN']; //3 Código de Nacionalidade do Emissor
$NUMAUTOR = $_GET['NUMAUTOR']; //6 Número de Autorização
$NUMCV = $_GET['NUMCV']; //9 Número do Comprovante de Venda (NSU)
$NUMAUTENT = $_GET['NUMAUTENT']; //27 Número de Autenticação
$NUMSQN = $_GET['NUMSQN']; //12 Número seqüencial único
$NUMPRG = $_GET['NUMPRG']; //1 Número correspondente ao programa de captura utilizado

///CASO DE ERROS
$CODRET = $_GET['CODRET']; //2 Código de erro
$MSGRET = $_GET['MSGRET']; //200 Mensagem de erro
if       ( !isset($CODRET)                             )  {
    $consulta=$MySQL->query("select PRECO_TOTAL from pedidos_cliente where ID_PEDIDO_CLIENTE=$NUMPEDIDO");    
    list($PRECO_TOTAL) = mysql_fetch_array($consulta);
    $url= "http://ecommerce.redecard.com.br/pos_virtual/confirma.asp?"
          ."DATA=$DATA&"    
          ."TRANSACAO=203&"
          ."TRANSORIG=04&"
          ."PARCELAS=00&"
          ."FILIACAO=30355141&"
          ."DISTRIBUIDOR=&"
//          ."TOTAL=$PRECO_TOTAL";
          ."TOTAL=0.01&"
          ."NUMPEDIDO=$NUMPEDIDO&"
          ."NUMAUTOR=$NUMAUTOR&"          
          ."NUMCV=$NUMCV&"          
          ."NUMSQN=$NUMSQN&"      
          ."ORIGEM_BIN=$ORIGEM_BIN&"
          ."NUMPRG=$NUMPRG";    

         //AQUI já FOI ENVIADA A SEGUNDA FASE3 E AGORA ESTA RECEBENDO O CÓDIGO DE CONFIRMAÇÃO.
         //A função file irá enviar a url para a Redecard sem redirecionar(sair da NatureLavie) e, ao mesdo tempo, receber o rerorno da Redecdard
          $file = file($url); 
              $retorna = $file[0]; 
              $arrLinhas = explode("&", $retorna);
              $i = 0; 
              foreach ($arrLinhas AS $line) { 
                 list($variavel, $valor) = explode('=', ($line)); 
                 $variavel = trim($variavel); 
                 $$variavel = $valor; 
                 $i ++; 
                 print $variavel;
                 print "<br>";
                 print $valor;                 
                                            }
                $status = $_REQUEST['CODRET'];
                if ($status > 1) {
                   $autent = $_REQUEST['MSGRET'];
                                 }
                else {
                       $URLCupom = "https://ecommerce.redecard.com.br/pos_virtual/cupom.asp?DATA=" . $data . "&TRANSACAO=201&NUMAUTOR=" . $arp . "&NUMCV=" . $cv;                                            
?>

<script LANGUAGE=javascript>
<!--
        vpos=window.open('<? echo $URLCupom; ?>','vpos','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=auto,resizable=no,copyhistory=no,width=280,height=440');
//-->
</SCRIPT>
<?                    }          
                                                         }
else if (
          $CODRET==50 or $CODRET==52 or $CODRET==54 or $CODRET==55 or $CODRET==57 or $CODRET==59 or $CODRET==61 or 
          $CODRET==62 or $CODRET==64 or $CODRET==66 or $CODRET==67 or $CODRET==68 or $CODRET==70 or $CODRET==71 or 
          $CODRET==73 or $CODRET==75 or $CODRET==78 or $CODRET==79 or $CODRET==80 or $CODRET==82 or $CODRET==83 or 
          $CODRET==84 or $CODRET==85 or $CODRET==87 or $CODRET==89 or $CODRET==90 or $CODRET==91 or $CODRET==93 or 
          $CODRET==94 or $CODRET==95 or $CODRET==97 or $CODRET==99
         )
                                                         { print $MSGRET;  exit; }
else if  ( $CODRET==51 or $CODRET==92 or $CODRET==98  )  { print $MSGRET;  exit; }
else if  ( $CODRET==53                                )  { print $MSGRET;  exit; }
else if  ( $CODRET==76 or $CODRET==86                 )  { print $MSGRET;  exit; }
else if  ( $CODRET==58 or $CODRET==63 or  $CODRET==65 or  $CODRET==69 or  $CODRET==72 or  $CODRET==77 or $CODRET==96  )  
                                                         { print $MSGRET;  exit; }
else if  ( $CODRET==56 or $CODRET==60                 )  { print $MSGRET;  exit; }
else if  ( $CODRET==74                                )  { print $MSGRET;  exit; }
else if  ( $CODRET==81                                )  { print $MSGRET;  exit; }
?>

DONE..

THANKS

RSRSRS

AGORA É PARTIR PARA AS FORMATAÇÕE DOS TEXTOS.

UFAAAAAAA

VALEU A TODOS!

Link para o comentário
Compartilhar em outros sites

  • 0

Ficou mais enxuto assim:

<?
//Abrindo conexao com o banco de dados 
$MySQL = new TMySQL();
$MySQL->connect($host, $db, $user, $pass);


$DATA = $_GET['DATA'];//8 Data da transação
$NUMPEDIDO = $_GET['NUMPEDIDO']; //16 Número do Pedido
$NR_CARTAO = $_GET['NR_CARTAO']; //16 Número do Cartão mascarado
$ORIGEM_BIN = $_GET['ORIGEM_BIN']; //3 Código de Nacionalidade do Emissor
$NUMAUTOR = $_GET['NUMAUTOR']; //6 Número de Autorização
$NUMCV = $_GET['NUMCV']; //9 Número do Comprovante de Venda (NSU)
$NUMAUTENT = $_GET['NUMAUTENT']; //27 Número de Autenticação
$NUMSQN = $_GET['NUMSQN']; //12 Número seqüencial único
$NUMPRG = $_GET['NUMPRG']; //1 Número correspondente ao programa de captura utilizado

if       ( !isset($_REQUEST['CODRET']) )  {
    $consulta=$MySQL->query("select PRECO_TOTAL from pedidos_cliente where ID_PEDIDO_CLIENTE=$NUMPEDIDO");      
        list($PRECO_TOTAL) = mysql_fetch_array($consulta);
    $url= "http://ecommerce.redecard.com.br/pos_virtual/confirma.asp?"
              ."DATA=$DATA&"    
                  ."TRANSACAO=203&"
                  ."TRANSORIG=04&"
                  ."PARCELAS=00&"
                  ."FILIACAO=30355141&"
                  ."DISTRIBUIDOR=&"
                  ."TOTAL=$PRECO_TOTAL&"
//                ."TOTAL=0.01&"
                  ."NUMPEDIDO=$NUMPEDIDO&"
                  ."NUMAUTOR=$NUMAUTOR&"                  
                  ."NUMCV=$NUMCV&"                
                  ."NUMSQN=$NUMSQN&"      
                  ."ORIGEM_BIN=$ORIGEM_BIN&"
                  ."NUMPRG=$NUMPRG";   

         //AQUI já FOI ENVIADA A SEGUNDA FASE3 E AGORA ESTA RECEBENDO O CÓDIGO DE CONFIRMAÇÃO.
                 //A função file_get_contents irá enviar a url para a Redecard sem redirecionar(sair da NatureLavie) e, ao mesdo tempo, receber o rerorno da Redecdard
                    $file = file_get_contents($url); 
                    $file = parse_str($file);
                    print "<table align='center'";
                    print "<tr><td align='center'>";
                    print "<br>";
                    print "Resultado da transaçao pela Redecard:";
                    print "<br>";
                    print "$MSGRET";          
                    print "</td></tr>";                 
                    print "</table>";

                   $URLCupom = "https://ecommerce.redecard.com.br/pos_virtual/cupom.asp?"
                   ."DATA=$_GET[DATA]&"
                   ."TRANSACAO=201&"
                   ."NUMAUTOR=$_GET[NUMAUTOR]&"
                   ."NUMCV=$_GET[NUMCV]&"
                   ."LANGUAGE=1";    

if ($_REQUEST['CODRET']==0) {                                                                                                             
?>
                  <script LANGUAGE=javascript>
                  <!--
                          vpos=window.open('<? echo $URLCupom; ?>','vpos','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=auto,resizable=no,copyhistory=no,width=280,height=440');
                  //-->
                  </SCRIPT>
<?                           }           
else if (($_REQUEST['CODRET']>0) and ($_REQUEST['CODRET'] < 50) ){
                    print "<table align='center'";
                    print "<tr><td align='center'>";
                    print "<br>";
                    print "Resultado da transaçao pela Redecard:";
                    print "<br>";
                    print $_REQUEST['MSGRET'];          
                    print "</td></tr>";                 
                    print "</table>";
                                                                 }
                               }//fim do se não vier codigo de erro
else if ($_REQUEST['CODRET'] > 49)  {
                    print "<table align='center'";
                    print "<tr><td align='center'>";
                    print "<br>";
                    print "Resultado da transaçao pela Redecard:";
                    print "<br>";
                    print $_REQUEST['MSGRET'];          
                    print "</td></tr>";                 
                    print "</table>";
                                      }
?>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...