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

Adaptação módulo redecard


Carlos Rocha

Pergunta

Olá pessoal.

Bom dia a todos!

Estou com uma dúvida tremenda com relação à REDECARD.

Seguinte:

O processo de cobrança via cartão se faz em 5 fazes

1 - site -> reecard - aqui o site envia o form onde estaõ as escohas do clinte de qual cartão escoheu, se mastercard ou diners, valor da nota, código do estabelecimento, dentre outros. Após esse passo, ainda no passo 1, abre a pagina da redecard onde o comprador irá digitar os dados do seu cartão.

2 - reecard -> site - aqui a redecard, de posse desses dados eniados pelo site, vereifica tambem os dados do cartão do comprador e, envia o código de confirmação para o site.

3 - site -> reecard - aqui, o site, de posso do código de confiormação, verififica sua concordancia e dispara para a redecard outros dados solicitados.

4 - reecard -> site - aqui, redecard, entende que, tanto a loja quanto a redecard, aprovaram (ou não) a transaçao e envia o código de aprovaçao (ou não) para que o site reenvie esse código à redecard em sua pagina de exibir cupon.

5 - site -> reecard - aqui, o site reenvia esse código à redecard em sua pagina de exibir cupon e a redecard ()em seu site e em forma de pop'up, gera o cupon de aprovação (ou não) para o cliente)

Bom, onde esta a minha dúvida?

Então,

O pessoal do forum fala muito de um módulo de conexão com a redecard para fazer esses procedimentos, eu até achei um desses módulo mas não consegui configurar (ou pelo menos entender).

Então o que eu fiz:

Bom, fiz um código que fizesse o serviço (e esta dando certo) mas com um detalhe que esta me deixando digamos, como programador, não muito feliz.

O que é?

Vamos lá.

Passo 1 -> ok, após abertura da tela de captura, onde o cliente (comprador) coloca os dados do cartão, a redecard começa a validar o dados do cartão e, (aqui esta meu problema {mas funciona direito}) nesse momento, em vez da redecarsd enviar os dasdos do passo 2 para o site na mesma pagina, ela esta abrindo outra janela (não é popup não), e, a página onde estava senddo validado os dados do cartão, fica la toda em branco.

Passo 2 -> ok

Passo 3 -> ok

Passo 4 -> ok

Passo 5 -> ok

Bom, dizem que esse problema da pagina ficar em branco, usando modulo, não ocorre pois a redecard trata os dadsos com, o módulo. Mas não tenho a mínima ideia de como implantar isso.

Segue o código que estou usando:

<?
//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) {                                                                                                             
?>
                  &lt;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>";
                                      }
?>

FICO MUITO AGRADERCIDO AO PROFISSIONAL (OU ESTUDANTE) QUE POUDER ME AJUDAR A SAIER DESSA!

Editado por quintelab
Removido Caixa Alta do Título e do post
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
<?php
// $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
$MySQL = new TMySQL();
//Abrindo conexao com o banco de dados
$MySQL->connect($host, $db, $user, $pass);
import_request_variables('gpc');
if(!$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);
    echo "<table align='center'";
    echo "<tr><td align='center'>";
    echo "<br>";
    echo "Resultado da transaçao pela Redecard:";
    echo "<br>";
    echo "$MSGRET";
    echo "</td></tr>";
    echo "</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) {
        
        echo '
        <script type="text/javascript">
        <!--
        vpos=window.open("'.$URLCupom.'","vpos","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=auto,resizable=no,copyhistory=no,width=280,height=440");
        vpos.focus();
        //-->
        </script>        
        ';
        exit;
    }
    else if (($CODRET>0) and ($CODRET < 50))
    {
        echo "<table align='center'";
        echo "<tr><td align='center'>";
        echo "<br>";
        echo "Resultado da transaçao pela Redecard:";
        echo "<br>";
        echo $MSGRET;
        echo "</td></tr>";
        echo "</table>";
    }
}//fim do se não vier codigo de erro
else if ($CODRET > 49)  {
    echo "<table align='center'";
    echo "<tr><td align='center'>";
    echo "<br>";
    echo "Resultado da transaçao pela Redecard:";
    echo "<br>";
    echo $MSGRET;
    echo "</td></tr>";
    echo "</table>";
}
?>

Editado por ursolouco
Link para o comentário
Compartilhar em outros sites

  • 0
Não entendi!

Segue

<?php
class TMySQL
{
    private $id;
    public function connect($host = 'localhost', $db = 'test', $user = 'root', $pass = '')
    {
        $link = mysql_connect($host, $user, $pass);
        $this->id = mysql_select_db($db, $link);
    }
    public function query($sql)
    {
        return mysql_query($sql, $this->id);
    }
}
$MySQL = new TMySQL();
$MySQL->connect($host, $db, $user, $pass);
import_request_variables('gpc');
if(!$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";
    $file = file_get_contents($url);
    $file = parse_str($file);
    echo '
            <table align="center">
                <tr>
                    <td>Resultado da transação redecard</td>
                </tr>
                <tr>
                    <td>&nbsp;</td>
                </tr>
                <tr>
                    <td>'.$MSGRET.'</td>
                </tr>
            </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) {
        echo '
        <script type="text/javascript">
        <!--
        vpos=window.open("'.$URLCupom.'","vpos","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=auto,resizable=no,copyhistory=no,width=280,height=440");
        vpos.focus();
        //-->
        </script>
        ';
        exit;
    }
    else if (($CODRET>0) and ($CODRET < 50))
    {
        echo '  <table align="center">
                    <tr valign="top">
                        <td>Resultado da transaçao pela Redecard:</td>
                    </tr>
                    <tr valign="top">
                        <td>&nbsp;</td>
                    </tr>
                    <tr valign="top">
                        <td>'.$MSGRET.'</td>
                    </tr>
                </table>
                ';
    }
}//fim do se não vier codigo de erro
else if ($CODRET > 49)  {
    echo '  <table align="center">
                    <tr valign="top">
                        <td>Resultado da transaçao pela Redecard:</td>
                    </tr>
                    <tr valign="top">
                        <td>&nbsp;</td>
                    </tr>
                    <tr valign="top">
                        <td>'.$MSGRET.'</td>
                    </tr>
                </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,2k
    • Posts
      652k
×
×
  • Criar Novo...