Ir para conteúdo
Fórum Script Brasil

mhfferreira

Membros
  • Total de itens

    6
  • Registro em

  • Última visita

Sobre mhfferreira

Perfil

  • Gender
    Female

mhfferreira's Achievements

0

Reputação

  1. obrigada.. mas já consegui... mexendo num manual aqui noutro ali, consegui a comunicação...
  2. olá pessoal... estou desenvolvendo um site (e-commerce) e estou apanhando um monte com a integração dos cartões... gostaria de uma luz de como faço esta integração... já sou filiada à redecard.. até consegui um CodVer em php da redecard, mas não faço a mínima idéia de como vou implementar isso... se alguém tiver algum manual, exemplo ou algo parecido e puder me passar eu agradeço também estou cogitando a idéia de se alguém tiver este módulo já pronto e quiser me fornecer, entra em contato pra acertarmos preço ou algo assim... Obrigada
  3. olá pessoal... estou ficando quase louca aqui... depois de muito quebrar a cabeça, localizei um artigo na net ótimo que converte a DLL que o itaú fornece pra integração de sites com o shopline... graças ao CAIO.... meu site tá comunicando com o itaú... até gerou boletos em minha conta... td ok... ele me dá o retorno, só que meu problema está aí... esse retorno vem criptografado e eu não estou conseguindo decriptá-lo... o função que tenho não está funcionando... pelo - comigo... Alguém que já desenvolveu essa integração pode me ajudar? existe a DLL ou a CLASS... mas não consegui usá-las ... o que melhor funcionou foi mesmo a em php.... além de que meu SO é Windows... e do servidor onde a página é hospedada é Linux... e DLL não funciona em Linux.... Obrigada.... abaixo estou postando o código que o Caio me passou... (ah... já pedi ajuda pra ele, mas acredito que não está lendo o forum onde o encontrei pois não me respondeu ainda....) essa é a minha classe_iatu.php <?php class Itaucripto { public $codEmp; public $pedido; public $valor; public $observacao; public $nomeSacado; public $codigoInscricao; public $numeroInscricao; public $enderecoSacado; public $bairroSacado; public $cepSacado; public $cidadeSacado; public $estadoSacado; public $dataVencimento; public $urlRetorna; public $obsAd1; public $obsAd2; public $obsAd3; private $CHAVE_ITAU = 'SEGUNDA12345ITAU'; private $TAM_COD_EMP = 26; private $TAM_CHAVE = 16; private $sbox; private $key; private function Algoritmo($s, $s1) { $k = 0; $l = 0; $r = ''; $this->Inicializa($s1); for($j = 1; $j <= strlen($s); $j++) { $k = ($k + 1) % 256; $l = ($l + $this->sbox[$k]) % 256; $i = $this->sbox[$k]; $this->sbox[$k] = $this->sbox[$l]; $this->sbox[$l] = $i; $i1 = $this->sbox[($this->sbox[$k] + $this->sbox[$l]) % 256]; $j1 = ord(substr($s, $j - 1, 1)) ^ $i1; $r = $r.chr($j1); } // for return $r; } // function Algoritmo private function Inicializa($s) { $len = strlen($s); for ($j = 0; $j <= 255; $j++) { $this->key[$j] = ord(substr($s, $j % $len, 1)); $this->sbox[$j] = $j; } // for $l = 0; for ($k = 0; $k <= 255; $k++) { $l = ($l + $this->sbox[$k] + $this->key[$k]) % 256; $i = $this->sbox[$k]; $this->sbox[$k] = $this->sbox[$l]; $this->sbox[$l] = $i; } // for } // function Inicializa private function Converte($s) { for($i = 0, $r = chr(rand(65, 90)); $i < strlen($s); $i++) { $r = $r.ord(strval(substr($s, $i, 1))).chr(rand(65, 90)); } // for return $r; } // function Converte private function Desconverte($s) { return join(array_map('chr', split('[A-Z]', substr(substr($s, 1), 0, strlen($s) - 2)))); } // function Desconverte private function Corta($str, $n) { return str_pad(substr($str, 0, $n), $n, ' ', STR_PAD_RIGHT); } // function Corta public function geraDados($codEmp,$pedido,$valor,$obs,$chave,$nomeSacado,$codigoInscricao,$numeroInscricao, $enderecoSacado,$bairroSacado,$cepSacado,$cidadeSacado,$estadoSacado,$dataVencimento,$urlRetorna,$obsAd1,$obsAd2, $obsAd3) { if (strlen($codEmp) != $this->TAM_COD_EMP) { throw new Exception('Tamanho do c&oacute;digo da empresa diferente de 26 posi&ccedil;&otilde;es'); } // if if (strlen($chave) != $this->TAM_CHAVE) { throw new Exception('Tamanho da chave diferente de 16 posi&ccedil;&otilde;es'); } // if if ((int) $pedido == 0 || (int) $pedido > 99999999) { throw new Exception('N&uacute;mero do pedido inv&aacute;lido'); } // if if (!preg_match('!^\d{2,8}\,\d{2}$!', $valor)) { throw new Exception('Valor da compra inv&aacute;lido. Formato [000000]00,00'); } // if if ((int) $codigoInscricao < 1 || (int) $codigoInscricao > 2) { throw new Exception('C&oacute;digo de inscri&ccedil;&atilde;o inv&aacute;lido'); } // if if (($numeroInscricao = preg_replace('!\D!', '', $numeroInscricao)) && strlen($numeroInscricao) > 14) { throw new Exception('N&uacute;mero de inscri&ccedil;&atilde;o inv&aacute;lido'); } // if if (($cepSacado = preg_replace('!\D!', '', $cepSacado)) && strlen($cepSacado) < 8) { throw new Exception('CEP inv&aacute;lido'); } // if if (strlen($estadoSacado) < 2 || strlen($estadoSacado) > 2) { throw new Exception('O estado deve ser uma sigla de no m&aacute;ximo 2 caracteres (UF)'); } // if if (!preg_match('!^(3[0-1]|0[1-9]|[1-2][0-9])(0[1-9]|1[0-2])2[0-9]{3}$!', $dataVencimento)) { throw new Exception('Data de vencimento inv&aacute;lida'); } // if if (strlen($obsAd1) > 60) { throw new Exception('Observa&ccedil;&atilde;o opcional #1 inv&aacute;lida'); } // if if (strlen($obsAd2) > 60) { throw new Exception('Observa&ccedil;&atilde;o opcional #2 inv&aacute;lida'); } // if if (strlen($obsAd3) > 60) { throw new Exception('Observa&ccedil;&atilde;o opcional #3 inv&aacute;lida'); } // if $codEmp = strtoupper($codEmp); $valor = substr($valor, 0, strlen($valor) - 3).substr($valor, -2); $valor = str_pad($valor, 10, '0', STR_PAD_LEFT); $pedido = str_pad($pedido, 8, '0', STR_PAD_LEFT); $obs = $this->Corta($obs, 40); $nomeSacado = $this->Corta($nomeSacado, 30); $codigoInscricao = $this->Corta($codigoInscricao, 2); $numeroInscricao = $this->Corta($numeroInscricao, 14); $enderecoSacado = $this->Corta($enderecoSacado, 40); $bairroSacado = $this->Corta($bairroSacado, 15); $cepSacado = $this->Corta($cepSacado, 8); $cidadeSacado = $this->Corta($cidadeSacado, 15); $estadoSacado = $this->Corta($estadoSacado, 2); $dataVencimento = $this->Corta($dataVencimento, 29); $urlRetorna = $this->Corta($urlRetorna, 60); $obsAd1 = $this->Corta($obsAd1, 60); $obsAd2 = $this->Corta($obsAd2, 60); $obsAd3 = $this->Corta($obsAd3, 60); $chave = strtoupper($chave); $ret_DC = $pedido . $valor . $obs . $nomeSacado . $codigoInscricao . $numeroInscricao . $enderecoSacado . $bairroSacado . $cepSacado . $cidadeSacado . $estadoSacado . $dataVencimento . $urlRetorna . $obsAd1 . $obsAd2 . $obsAd3; $ret_DC = $this->Algoritmo($ret_DC, $chave); $ret_DC = $this->Algoritmo($codEmp.$ret_DC, $this->CHAVE_ITAU); return $this->Converte($ret_DC); } // function geraDados private function decripto($ret_DC, $chave) { $s = $this->Desconverte($ret_DC); $s = $this->Algoritmo($s, $this->CHAVE_ITAU); $this->codEmp = substr($s, 0, 26); $s = $this->Algoritmo(substr($s, 26), $chave); $this->pedido = substr($s, 0, 8); $this->valor = substr($s, 8, 10); $this->observacao = substr($s, 18, 40); $this->nomeSacado = substr($s, 58, 30); $this->codigoInscricao = substr($s, 88, 2); $this->numeroInscricao = substr($s, 90, 14); $this->enderecoSacado = substr($s, 104, 40); $this->bairroSacado = substr($s, 144, 15); $this->cepSacado = substr($s, 159, 8); $this->cidadeSacado = substr($s, 167, 15); $this->estadoSacado = substr($s, 182, 2); $this->dataVencimento = substr($s, 184, 29); $this->urlRetorna = substr($s, 213, 60); $this->obsAd1 = substr($s, 273, 60); $this->obsAd2 = substr($s, 333, 60); $this->obsAd3 = substr($s, 393, 60); $this->valor = number_format((int) $this->valor / 100, 2, ',', '.'); } // function decripto } // class Itaucripto ?> essa é a minha classe_iatu.php <?php include('../ecommerce/classe_itau.php'); $cripto = new Itaucripto; $codEmp = "XXXXXXXXXXXXXXXXXXXXXXXXXX"; $pedido = $_SESSION['CONSUMIDOR']['PEDIDO']; $valor = "01,00"; $observacao = ""; $chave = "XXXXXXXXXXXXXXXX"; $nomeSacado = "Maria Helena"; $codigoInscricao = ""; $numeroInscricao = ""; $enderecoSacado = "meu endereco"; $bairroSacado = "meu bairro"; $cepSacado = "80000000"; $cidadeSacado = "Curitiba"; $estadoSacado = "PR"; $dataVencimento = date('dmY', strtotime('+1 day')); $urlRetorna = "/ecommerce/ret_itau.php"; $obsAd1 = ""; $obsAd2 = ""; $obsAd3 = ""; $dados = $cripto->geraDados($codEmp,$pedido,$valor,$observacao,$chave,$nomeSacado,$codigoInscricao,$numeroInscricao,$enderecoSacado,$bairroSacado,$cepSacado,$cidadeSacado,$estadoSacado,$dataVencimento,$urlRetorna,$obsAd1,$obsAd2,$obsAd3); //echo "<form name='form_pgto_itau' id='form_pgto_itau' action='https://shopline.itau.com.br/shopline/shopline.asp' method='post' onsubmit=pg_itau() target='SHOPLINE'> echo "<form name='form_pgto_itau' id='form_pgto_itau' action='https://shopline.itau.com.br/shopline/emissao_teste.asp' method='post' onsubmit=pg_itau() target='SHOPLINE'> <input type='hidden' name='DC' value='".$dados."'> <input type='submit' name='Shopline' value='Itaú Shopline'> </form>"; ?> meu ret_itau.php <?php include('../ecommerce/classe_itau.php'); $dados = ''; $chave = "XXXXXXXXXXXXXXXX"; $codEmp = ''; $pedido = ''; $tipPag = ''; $retorno = $_POST['DC']; $cripto = new Itaucripto; $dados = $cripto->decripto($retorno,$chave); $codEmp = $cripto->retornaCodEmp; $pedido = $cripto->retornaPedido; $tipPag = $cripto->retornaTipPag; echo 'ret '.$retorno.'<br>dados '.$dados.'<br>cod ' .$codEmp.'<br>ped '.$pedido.'<br>pag '.$tipPag; ?> <html> <head> <title> Retorno Online </title> </head> <body> <h1>Dados recebidos</h1> <br> </body> </html> desculpem... o nome correto do 1º código é classe_itau.php e o segundo código é a minha chamada a tela do shopline do itau
  4. mhfferreira

    Shopline do Itaú

    é, eles não aceitam tal configuração... valeu pessoal...
  5. mhfferreira

    Shopline do Itaú

    tá, valeu.. isso eu já tenho... eu só não sei qual o nome do campo q eu passo pro itaú... não tem no manuais deles...
  6. mhfferreira

    Shopline do Itaú

    Boa noite... estou desenvolvendo um e-commerce (meu primeiro) em php e estou fazendo a integração do site com o shopline do itaú... beleza.. consegui comunicar... enviar os dados e tudo mais... minha dúvida é a seguinte: alguém sabe como enviar ao shopline o tipo de pagamento já pré definido... se eu quero boleto ou débito em conta? obrigada
×
×
  • Criar Novo...