Jump to content

ukow

Members
  • Content count

    71
  • Joined

  • Last visited

Community Reputation

1 Comum

3 Followers

About ukow

Informações Pessoais

  • Sexo
    Masculino

Recent Profile Visitors

789 profile views
  1. ukow

    Erro SOAP ao enviar XML

    Estou tentando enviar um XML para o webservice da Rede Porém ao enviar ocorre o seguinte erro. "soap:ReceiverServer was unable to process request. ---> Data at the root level is invalid. Line 1, position 1. 0 soap:ReceiverServer was unable to process request. ---> Data at the root level is invalid. Line 1, position 1." O que pode ser? <?php $ANO = $_POST['ANO']; $CVC2 = $_POST['CVC2']; $FILIACAO = "0000000"; $MES = $_POST['MES']; $NRCARTAO = $_POST['NRCARTAO']; $NUMPEDIDO = "20041416"; $ORIGEM = "01"; $PARCELAS = "00"; $PORTADOR = $_POST['PORTADOR']; $RECORRENTE = "0"; $TOTAL = $_POST['TOTAL']; $TRANSACAO = "4"; $mensagem= "<?xml version='1.0' encoding='utf-8'?>"; $mensagem.= " <requisicao-consulta id='5' versao='1.0.0'>"; $mensagem.= "<TOTAL>"; $mensagem.= $TOTAL; $mensagem.= "</TOTAL>"; $mensagem.= "<TRANSACAO>"; $mensagem.= $TRANSACAO; $mensagem.= "</TRANSACAO>"; $mensagem.= "<PARCELAS>"; $mensagem.= $PARCELAS; $mensagem.= "</PARCELAS>"; $mensagem.= "<FILIACAO>"; $mensagem.= $FILIACAO; $mensagem.= "</FILIACAO>"; $mensagem.= "<NUMPEDIDO>"; $mensagem.= $NUMPEDIDO; $mensagem.= "</NUMPEDIDO>"; $mensagem.= "<NRCARTAO>"; $mensagem.= $NRCARTAO; $mensagem.= "</NRCARTAO>"; $mensagem.= "<CVC2>"; $mensagem.= $CVC2; $mensagem.= "</CVC2>"; $mensagem.= "<MES>"; $mensagem.= $MES; $mensagem.= "</MES>"; $mensagem.= "<ANO>"; $mensagem.= $ANO; $mensagem.= "</ANO>"; $mensagem.= "<PORTADOR>"; $mensagem.= $PORTADOR; $mensagem.= "</PORTADOR>"; $mensagem.= "<IATA></IATA>"; $mensagem.= "<DISTRIBUIDOR></DISTRIBUIDOR>"; $mensagem.= "<CONCENTRADOR></CONCENTRADOR>"; $mensagem.= "<TAXAEMBARQUE></TAXAEMBARQUE>"; $mensagem.= "<ENTRADA></ENTRADA>"; $mensagem.= "<NUMDOC1 a NUMDOC4></NUMDOC1 a NUMDOC4>"; $mensagem.= "<PAX1 a PAX4></PAX1 a PAX4>"; $mensagem.= "<CONFTXN>S</CONFTXN>"; $mensagem.= "<ADD_Data></ADD_Data>"; $mensagem.= " </requisicao-consulta>"; /** * Iniciando CURL */ $curl = curl_init(); /** * Verificamos se o recurso CURL foi criado com êxito */ if ( is_resource( $curl ) ){ curl_setopt( $curl , CURLOPT_HEADER , 0 ); curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER, 0); curl_setopt( $curl , CURLOPT_RETURNTRANSFER , 1 ); curl_setopt( $curl , CURLOPT_FOLLOWLOCATION , 1 ); curl_setopt( $curl , CURLOPT_URL , 'https://ecommerce.userede.com.br/pos_virtual/wskomerci/cap.asmx?WSDL' ); curl_setopt( $curl , CURLOPT_POST , 1 ); curl_setopt( $curl , CURLOPT_POSTFIELDS , http_build_query( array( 'mensagem' => $mensagem ) ) ); $xml = curl_exec( $curl ); $ern = curl_errno( $curl ); $err = curl_error( $curl ); curl_close( $curl ); if ( (bool) $ern ){ echo 'Ocorreu um erro[' , $ern , ']: ' , $err; } else { //var_dump( $xml , $ern , $err ); print_r($xml."<br><hr><br>"); print_r($ern."<br><hr><br>"); print_r($err."<br><hr><br>"); $DadosEnvio= simplexml_load_string($xml); echo "<pre>".$xml."</pre>"; } } else { echo 'erro'; } ?> Obrigado :D
  2. ukow

    Insert sql com loop

    Consegui realizar o Insert utilizando o loop mesmo, obrigado! :D
  3. ukow

    Insert sql com loop

    Adaptei o código e quando chega na função COUNT exibe o erro: Erro de tempo de execução do Microsoft VBScript erro '800a01a8' Objeto necessário /grava_pedido.asp, linha 62 Meu código <% sql = "select * from cart where id_pedido =" & session("pedido") set rsprodutos = GetRS(sql) dim prod1, produtos, i do while not rsprodutos.eof prod1 = prod1+cStr(rsprodutos("quantidade"))+"," rsprodutos.movenext loop produtos= Split(prod1, ",") response.write(produtos.Count) For i = 0 To produtos.Count sql = "insert into produtos_vendidos ( " sql = sql & "id_pedido," sql = sql & "id_produto," sql = sql & "quantidade)" sql = sql & " VALUES (" sql = sql & "'" & session("pedido") & "'," sql = sql & "'" & "1" & "'," sql = sql & "'" & int(produtos(i)) & "')" call executecmd(sql) next %>
  4. Olá! Estou integrando pela primeira vez um API de pagamento em minha loja virtual. Não conheço muito sobre PHP então gostaria de tirar umas dúvidas básicas. DOCUMENTAÇÃO: https://www.userede.com.br/DESENVOLVEDORES/Paginas/manual.html Segundo a documentação, tenho os XML de Captura, Autorização, Cancelamento etc. Minha dúvida é: em qual ordem devo enviar isso? Posso enviar tudo em um único arquivo? Estou enviando o XML com Curl, porém só fiz o de Autorização e quando envio ele não me da retorno nenhum. Qual é o procedimento para realizar o envio corretamente? Obrigado!
  5. ukow

    Insert sql com loop

    Olá! Preciso inserir um conteúdo a partir de um campo do meu banco. Tenho uma tabela Produtos, onde busco os produtos selecionados. Para cada produto selecionado, preciso que grave uma informação na minha tabela Vendidos. Tentei dessa forma, porém só gravou o último pedido selecionado, ignorando os demais. sql = "select * from cart where id_pedido =" & session("pedido") set rsprodutos = GetRS(sql) do while not rsprodutos.eof sql = "insert into produtos_vendidos ( " sql = sql & "id_pedido," sql = sql & "id_produto," sql = sql & "quantidade)" sql = sql & " VALUES (" sql = sql & "'" & session("pedido") & "'," sql = sql & "'" & rsprodutos("id_produto") & "'," sql = sql & "'" & rsprodutos("quantidade") & "')" call executecmd(sql) rsprodutos.movenext 'Passa pro próximo Loop Como posso realizar esse insert? Obrigado!
  6. Olá! Estou tentando realizar uma integração com a plataforma E.rede Montei um formulário simples para teste ( http://divinho2.web2420.uni5.net/envioteste.php ) Ao tentar enviar o XML, o servidor fica pensando eternamente e depois de alguns minutos diz que o tempo de execução foi atingido. O que pode ser? Segue meu código: Formulário: <form action="curl.php" method="POST" name="formClient" accept-charset="ISO-8859-1"> <table> <tr> <td class="label">Número do cartão</td> <td> <input type="text" name="NRCARTAO" id="NRCARTAO" value="" style="width:200px;" maxlength="19"> </td> </tr> <tr> <td class="label"> Validade </td> <td> <input type="text" name="MES" id="MES" value="" style="width: 95px; float:left; margin-right:10px;" maxlength="4" placeholder="MÊS"> <input type="text" name="ANO" id="ANO" value="" style="width: 95px;" maxlength="2" placeholder="ANO"> </td> </tr> <tr> <td class="label">Código de segurança</td> <td> <input type="text" name="CVC2" id="CVC2" value="" style="width: 200px;" maxlength="4"> </td> </tr> <tr> <td class="label">Titular</td> <td> <input type="text" name="PORTADOR" id="PORTADOR" value="" style="width: 200px;"> </td> </tr> <tr> <td class="label">Valor total</td> <td> <input type="text" name="TOTAL" id="TOTAL" value="1.00" readonly style="width: 200px;" maxlength="16"> </td> </tr> </table> <input type="submit" name="submit" value="Finalizar compra"> </form> XML + Curl: <?php $ANO = $_POST['ANO']; $CVC2 = $_POST['CVC2']; $FILIACAO = "FILIACAO"; $MES = $_POST['MES']; $NRCARTAO = $_POST['NRCARTAO']; $NUMPEDIDO = "20041416"; $ORIGEM = "01"; $PARCELAS = "00"; $PORTADOR = $_POST['PORTADOR']; $RECORRENTE = "0"; $SENHA = "TOKEN"; $TOTAL = $_POST['TOTAL']; $TRANSACAO = "74"; $conteudoXML= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; $conteudoXML.= "<main>\n\t"; $conteudoXML.= "<emkt trans=\"11.05\">\n\t\t"; $conteudoXML.= "<Ano>"; $conteudoXML.= $ANO; $conteudoXML.= "</Ano>\n\t\t"; $conteudoXML.= "<Cvc2>"; $conteudoXML.= $CVC2; $conteudoXML.= "</Cvc2>\n\t\t"; $conteudoXML.= "<Filiacao>"; $conteudoXML.= $FILIACAO; $conteudoXML.= "</Filiacao>\n\t\t\t"; $conteudoXML.= "<Mes>"; $conteudoXML.= $MES; $conteudoXML.= "</Mes>\n\t\t\t"; $conteudoXML.= "<Nrcartao>"; $conteudoXML.= $NRCARTAO; $conteudoXML.= "</Nrcartao>\n\t\t"; $conteudoXML.= "<NumPedido>"; $conteudoXML.= $NUMPEDIDO; $conteudoXML.= "</NumPedido>\n\t\t"; $conteudoXML.= "<Origem>"; $conteudoXML.= $ORIGEM; $conteudoXML.= "</Origem>\n\t\t"; $conteudoXML.= "<Parcelas>"; $conteudoXML.= $PARCELAS; $conteudoXML.= "</Parcelas>\n\t\t"; $conteudoXML.= "<Portador>"; $conteudoXML.= $PORTADOR; $conteudoXML.= "</Portador>\n\t\t"; $conteudoXML.= "<Recorrente>"; $conteudoXML.= $RECORRENTE; $conteudoXML.= "</Recorrente>\n\t\t"; $conteudoXML.= "<Senha>"; $conteudoXML.= $SENHA; $conteudoXML.= "</Senha>\n\t\t"; $conteudoXML.= "<Total>"; $conteudoXML.= $TOTAL; $conteudoXML.= "</Total>\n\t\t"; $conteudoXML.= "<Transacao>"; $conteudoXML.= $TRANSACAO; $conteudoXML.= "</Transacao>\n\t\t"; $conteudoXML.= "</emkt>\n"; $conteudoXML.= "</main>\n"; $url = 'https://scommerce.userede.com.br/Redecard.Komerci.External.WcfKomerci/KomerciWcf.svc'; $curl = curl_init(); curl_setopt_array( $curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $url, CURLOPT_POST => 1, CURLOPT_POSTFIELDS => array( XML => $conteudoXML ) ) ); $resp = curl_exec($curl); curl_setopt($curl, CURLOPT_URL, 'http://divinho2.web2420.uni5.net/envioteste.php'); $resposta = curl_exec($curl); curl_close($curl); echo $resposta; ?> Obrigado!
  7. Realmente era isso hahaha Obrigado Michel! Deu certo :D
  8. Estou testando nesse domínio alternativo: http://divinho2.web2420.uni5.net/pag.asp O código da tela ficou esse abaixo, mas continua sem dar retorno algum. O que é estranho, o código no jsfiddle está funcionando tranquilo, precisa de algum plugin ou algo do tipo? Obrigado! <script type="text/javascript"> var cartoes = { visa: /^4[0-9]{12}(?:[0-9]{3})/, mast: /^5[1-5][0-9]{2}/, amex: /^3[47][0-9]{2}/ }; function testarCC(e) { var inputs = document.querySelectorAll('.fsResDir input[type="radio"]'); var nr = this.value; var tipo; console.log(nr); for (var cartao in cartoes) { if (nr.match(cartoes[cartao])) { tipo = cartao; } } if (tipo) { document.getElementById(tipo).checked=true } else { for (var i = 0; i < inputs.length; i++) { inputs[i].checked = false; } }; } document.getElementById('num').addEventListener('keyup', testarCC); </script> <fieldset class="fsResDir"> <legend>Dados do Cartão&nbsp;</legend> <input type="radio" name="RadBand" id="visa" /> <label for="visa"> <img src="visa.png" /> </label> <input type="radio" name="RadBand" id="mast" /> <label for="mast"> <img src="master.png" /> </label> <input type="radio" name="RadBand" id="amex" /> <label for="amex"> <img src="amex.png" /> </label> <label for="val" class="lab90">Validade:</label> <input type="text" class="ent20Form" id="val" name="TxtValMes" />/ <input type="text" class="ent40Form" name="TxtValAno" /> <label for="num" class="lab90">Numero:</label> <input type=text class="ent120Form" id="num" name="TxtNumero" /> </div> </fieldset>
  9. Ele validou certinho, mas o que preciso é como o exemplo do post, que a bandeira do cartão seja informada automaticamente na tela após o preenchimento, e nessa biblioteca preciso dar uma ação pra isso :/
  10. Olá! Estou tentando montar um campo para validação de cartão de crédito e sua bandeira; acabei encontrando o seguinte código: http://jsfiddle.net/q0x3ksv3/ Funciona perfeitamente nessa URL, porém quando tento incluí-lo no meu site, não funciona, tem algo faltando? Segue meu código para entenderem melhor: <script> var cartoes = { visa: /^4[0-9]{12}(?:[0-9]{3})/, mast: /^5[1-5][0-9]{14}/, amex: /^3[47][0-9]{13}/, invalidos: /^[0126789]|^5[06-9]{1}|^3[1235689]/ }; document.getElementById('num').addEventListener('keyup', testarCC); var inputs = document.querySelectorAll('.fsResDir input[type="radio"]'); function testarCC(e) { var nr = this.value; var tipo; for (var cartao in cartoes) if (nr.match(cartoes[cartao])) tipo = cartao; if (tipo) document.getElementById(tipo).click(); else for (var i = 0; i < inputs.length; i++) inputs[i].checked = false; } </script> <fieldset class="fsResDir"> <legend>Dados do Cartão&nbsp;</legend> <input type="radio" name="RadBand" id="visa" /> <label for="visa"> <img src="visa.png" /> </label> <input type="radio" name="RadBand" id="mast" /> <label for="mast"> <img src="master.png" /> </label> <input type="radio" name="RadBand" id="amex" /> <label for="amex"> <img src="amex.png" /> </label> <label for="val" class="lab90">Validade:</label> <input type="text" class="ent20Form" id="val" name="TxtValMes" />/ <input type="text" class="ent40Form" name="TxtValAno" /> <label for="num" class="lab90">Numero:</label> <input type=text class="ent120Form" id="num" name="TxtNumero" /> </div> </fieldset> Obrigado!
  11. ukow

    integração API

    Olá! Estou tentando implementar um API de pagamento para uma pequena loja virtual. Não sou programador, ainda estou aprendendo! Dei uma pesquisada e vi que é necessário fazer um envio do XML para o Webservice da empresa que irei utilizaro API; porém não faço ideia de como realizar este envio para o Webservice. Procurei algumas coisas sobre e vi sobre a biblioteca SOAP, mas não entendo como utilizar/baixar etc. Alguém poderia me ajudar com isto? Grato desde já!
  12. Olá! Estou fazendo um teste para atualizar uma informação em um dos meus itens do banco de dados; porém houve um erro e não consigo decifra-lo. "Tipos incompatíveis" Busco as informações no banco: <%Dim caminho, conexao, rsProduto, seleciona%> <% caminho = "D:\web\LocalUser\divinho\banco\db.mdb" Set conexao = Server.CreateObject("ADODB.Connection") conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&caminho&";" %> <% Set rsProduto = Server.CreateObject("ADODB.Recordset") seleciona = "SELECT * from Produtos where Cod_produto = "& request("cod") rsProduto.Open seleciona, conexao Dim cod cod = request("cod") %> <FORM name="frmPrincipal" method="post" id="frmPrincipal" action="teste.asp?cod=<%=cod%>"> <input type=text name=codigo value="<%=rsProduto("Cod_produto")%>"> <input type=text name=nome value="<%=rsProduto("Nome")%>"> <input type="Submit" value="Enviar "> </form> Realizando o UPDATE <%Dim caminho, conexao%> <% caminho = "D:\web\LocalUser\divinho\banco\db.mdb" Set conexao = Server.CreateObject("ADODB.Connection") conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&caminho&";" %> <% Dim sql, nome, cod, executecmd nome = request.form("nome") cod = request.form("codigo") sql = "update Produtos set " sql = sql & " Nome = '" & nome & "'" sql = sql & " where Cod_produto = " & cod call executecmd(sql) Response.Redirect "teste2.asp" %> Podem testar através do link: http://divinho.com.br/teste2.asp?cod=344 Agradeço se alguém puder ajudar! :D
  13. ukow

    Remessa Santander

    WOOOOOOOOOOOOW! Deu certo! Muito obrigado meeeeeeesmo Gabriel! Estava tendo muita dor de cabeça tentando resolver isso, sou novo com PHP e tal; você me salvou! HAHAHA Obrigado de verdade cara! :D
  14. ukow

    Remessa Santander

    Creio que sim, mas como faria essa soma? Já tentei criando uma variável chamada $resultado, com a função de $resultado = $Valor + $Valor; porém ele só soma o valor do último boleto gerado no loop ( exemplo, ultimo boleto 10,00R$, soma 10+10 $resultado=20 ), preciso que ele respeite todos os valores do loop, porém quando for inserir esse resultado, deve ser fora do loop.
  15. ukow

    Remessa Santander

    Ai está :D <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Remessa</title> </head> <body> <?php /* * @descr: Arquivo de remessa para cobranca no padrao CNAB 400 vers. 7.0 ITAU */ $Pasta = "d:/web/LocalUser/fadtech/www/smart/ratimbumateneu/boleto/"; $conn = new COM("ADODB.Connection") or die("Cannot start ADO"); $conn->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source =d:/web/LocalUser/fadtech/www/smart/ratimbumateneu/banco/mp.mdb"); $dbq = "d:/web/LocalUser/fadtech/www/smart/ratimbumateneu/banco/mp.mdb"; $db_connection = odbc_connect("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbq", "ADODB.Connection", "", ""); function limit($palavra,$limite) { if(strlen($palavra) >= $limite) { $var = substr($palavra, 0,$limite); } else { $max = (int)($limite-strlen($palavra)); $var = $palavra.complementoRegistro($max,"brancos"); } return $var; } function sequencial($i) { if($i < 10) { return zeros(0,5).$i; } else if($i >= 10 && $i < 100) { return zeros(0,4).$i; } else if($i >= 100 && $i < 1000) { return zeros(0,3).$i; } else if($i >= 1000 && $i < 10000) { return zeros(0,2).$i; } else if($i >= 10000 && $i <= 100000) { return zeros(0,1).$i; } } function valor($Valor) { if($Valor < 10) { return zeros(0,12).$Valor; } else if($Valor >= 10 && $Valor < 100) { return zeros(0,11).$Valor; } else if($Valor >= 100 && $Valor < 1000) { return zeros(0,10).$Valor; } else if($Valor >= 1000 && $Valor < 10000) { return zeros(0,9).$Valor; } else if($Valor >= 10000 && $Valor < 100000) { return zeros(0,8).$Valor; } else if($Valor >= 100000 && $Valor < 1000000) { return zeros(0,7).$Valor; } } function numero_boleto($Nr_boleto) { if($Nr_boleto < 10) { return zeros(0,7).$Nr_boleto; } else if($Nr_boleto >= 10 && $Nr_boleto < 100) { return zeros(0,6).$Nr_boleto; } else if($Nr_boleto >= 100 && $Nr_boleto < 1000) { return zeros(0,5).$Nr_boleto; } else if($Nr_boleto >= 1000 && $Nr_boleto < 10000) { return zeros(0,4).$Nr_boleto; } else if($Nr_boleto >= 10000 && $Nr_boleto <= 100000) { return zeros(0,3).$Nr_boleto; } else if($Nr_boleto >= 100000 && $Nr_boleto <= 1000000) { return zeros(0,2).$Nr_boleto; } else if($Nr_boleto >= 1000000 && $Nr_boleto <= 10000000) { return zeros(0,1).$Nr_boleto; } else if($Nr_boleto >= 10000000 && $Nr_boleto <= 100000000) { return zeros(0,0).$Nr_boleto; } } function mes($mes_lanc) { if($mes_lanc < 10) { return zeros(0,1).$mes_lanc; } else if($mes_lanc >= 10) { return zeros(0,0).$mes_lanc; } } function mes1($mes_venc) { if($mes_venc < 10) { return zeros(0,1).$mes_venc; } else if($mes_venc >= 10) { return zeros(0,0).$mes_venc; } } function dia($dia_lanc) { if($dia_lanc < 10) { return zeros(0,1).$dia_lanc; } else if($dia_lanc >= 10) { return zeros(0,0).$dia_lanc; } } function dia1($dia_venc) { if($dia_venc < 10) { return zeros(0,1).$dia_venc; } else if($dia_venc >= 10) { return zeros(0,0).$dia_venc; } } function cpf($CPF){ if($CPF >= 100000000 && $CPF <= 1000000000){ return zeros(0,5).$CPF; } else if($CPF >= 1000000000 && $CPF <= 10000000000){ return zeros(0,4).$CPF; } else if($CPF >= 10000000000 && $CPF <= 100000000000){ return zeros(0,3).$CPF; } else if($CPF >= 100000000000 && $CPF <= 1000000000000){ return zeros(0,2).$CPF; } else if($CPF >= 1000000000000 && $CPF <= 10000000000000){ return zeros(0,1).$CPF; } else if($CPF >= 10000000000000 && $CPF <= 100000000000000){ return zeros(0,0).$CPF; } } function zeros($min,$max) { $x = ($max - strlen($min)); for($i = 0; $i < $x; $i++) { $zeros .= '0'; } return $zeros.$min; } function complementoRegistro($int,$tipo) { if($tipo == "zeros") { $space = ''; for($i = 1; $i <= $int; $i++) { $space .= '0'; } } else if($tipo == "brancos") { $space = ''; for($i = 1; $i <= $int; $i++) { $space .= ' '; } } return $space; } $fusohorario = 3; // como o servidor de hospedagem é a dreamhost pego o fuso para o horario do brasil $timestamp = mktime(date("H") - $fusohorario, date("i"), date("s"), date("m"), date("d"), date("Y")); $DATAHORA['PT'] = gmdate("d/m/Y H:i:s", $timestamp); $DATAHORA['EN'] = gmdate("Y-m-d H:i:s", $timestamp); $DATA['PT'] = gmdate("d/m/Y", $timestamp); $DATA['EN'] = gmdate("Y-m-d", $timestamp); $DATA['DIA'] = gmdate("d",$timestamp); $DATA['MES'] = gmdate("m",$timestamp); $DATA['ANO'] = gmdate("y",$timestamp); $HORA = gmdate("H:i:s", $timestamp); $HORA1 = gmdate("His", $timestamp); $HORA['Seg'] = gmdate("s", $timestamp); define("REMESSA",$Pasta."/remessa/",true); $filename = REMESSA.$DATA['DIA'].$DATA['MES'].$DATA['ANO'].$HORA['Seg'].".REM"; $conteudo = ''; $remessa = $DATA['DIA'].$DATA['MES'].$DATA['ANO'].$HORA['Seg']; ## REGISTRO HEADER #NOME DO CAMPO #SIGNIFICADO #POSICAO #PICTURE $conteudo .= '0'; // tipo de registro id registro header 001 001 9(01) $conteudo .= 1; // operacao tipo operacao remessa 002 002 9(01) $conteudo .= 'REMESSA'; // literal remessa escr. extenso 003 009 X(07) $conteudo .= '01'; // codigo servico id tipo servico 010 011 9(02) $conteudo .= limit('COBRANCA',15); // literal cobranca escr. extenso 012 026 X(15) $conteudo .= 'CÓDIGO DE TRANSMISSAO'; // codigo de transmissao 027 046 9(20) $conteudo .= limit('RAZAO SOCIAL',30);//nome da empresa 047 076 X(30) $conteudo .= '033'; // codigo banco Nº BANCO CÂMARA COMP. 077 079 9(03) $conteudo .= limit('SANTANDER SA',15); // nome do banco por ext. 080 094 X(15) $conteudo .= $DATA['DIA'].$DATA['MES'].$DATA['ANO'];//data geracao arquivo 095 100 9(06) $conteudo .= complementoRegistro(16,"zeros");// zeros complemento d registro 101 116 9(16) $conteudo .= complementoRegistro(275,"brancos"); // brancos complemento registro 117 391 X(47) $conteudo .= complementoRegistro(3,"zeros"); // numeroremessa opcional 392 394 9(003) $conteudo .= sequencial(1); // numero sequencial registro no arquivo 395 400 9(06) $conteudo .= chr(13).chr(10); //essa é a quebra de linha ### DADOS DOS CLIENTES PARA TESTE //$clientes[] = array("BOLETO001","Cliente A","11111111111","100,00"); //$clientes[] = array("BOLETO002","Cliente B","22222222222","200,00"); //$clientes[] = array("BOLETO003","Cliente C","33333333333","300,00"); //$clientes[] = array("BOLETO004","Cliente D","44444444444","400,00"); $mes = $_GET['mes']; $ano = $_GET['ano']; $nome = $_GET['nome']; // Select dos Lançamentos $sqV = ("SELECT * FROM Vw_lancamento_boleto where id_lancamento <> 0 and vr_parcela <> 0"); if($mes != ''){ $sqV = $sqV ."and month(dt_vencimento) =".$mes; } if($ano != ''){ $sqV = $sqV ."and year(dt_vencimento) =".$ano; } if($nome != ''){ $sqV = $sqV ."and nome like '%".$nome."%'"; } $rs = odbc_exec($db_connection,$sqV); $i = 2; //Loop----------------------------------------------------------------------------- while (odbc_fetch_row($rs)) { $id_parceiro = odbc_result($rs, "id_parceiro"); $id_lancamento = odbc_result($rs, "id_lancamento"); // Select dos Dados do Sacado $la = ("SELECT * FROM vw_lancamento where id_lancamento =".$id_lancamento ); $lanc = $conn->Execute($la); //Emissão $data_lanc1 = $lanc['dt_lancamento']; $data_lanc = explode('/', $data_lanc1); $dia_lanc1 = $data_lanc[0]; $mes_lanc1 = $data_lanc[1]; $ano_lanc1 = $data_lanc[2]; $ano_lanc = substr($ano_lanc1,2,2); if ($dia_lanc1 < 10 ){ $dia_lanc = '0'.$dia_lanc1; } else if ($dia_lanc1 >= 10){ $dia_lanc = $dia_lanc1; } if ($mes_lanc1 < 10 ){ $mes_lanc = '0'.$mes_lanc1; } else if ($mes_lanc1 >= 10){ $mes_lanc = $mes_lanc1; } $emissao = $dia_lanc . $mes_lanc . $ano_lanc ; //Vencimento $data_venc1 = $lanc['dt_vencimento']; $data_venc = explode('/', $data_venc1); $dia_venc1 = $data_venc[0]; $mes_venc1 = $data_venc[1]; $ano_venc1 = $data_venc[2]; $ano_venc = substr($ano_venc1,2,2); if ($dia_venc1 < 10 ){ $dia_venc = '0'.$dia_venc1; } else if ($dia_venc1 >= 10){ $dia_venc = $dia_venc1; } if ($mes_venc1 < 10 ){ $mes_venc = '0'.$mes_venc1; } else if ($mes_venc1 >= 10){ $mes_venc = $mes_venc1; } $vencimento = $dia_venc . $mes_venc . $ano_venc ; // Atribuindo Valor $Valor1 =$lanc['vr_parcela']; $Valor2 = number_format($Valor1, 2, '.', ''); $Valor = preg_replace("/\D/","", $Valor2); // Select dos Dados do Sacado $dados = ("SELECT * FROM vw_parceiro where id_parceiro =".$id_parceiro ); $cadastro = $conn->Execute($dados); if ($cadastro['tipo'] == 'A'){ $nome = $cadastro['RespNome']; $CPF_char = $cadastro['RespCPF']; $CEP_char = $cadastro['CEP']; $tipo = $cadastro['tipo']; } else if ($cadastro['tipo'] != 'A'){ $nome = $cadastro['nome']; $CPF_char = $cadastro['cpf']; $CEP_char = $cadastro['CEP']; $tipo = $cadastro['tipo']; } // Select do Número do Boleto $boleto = ("SELECT * FROM vw_ultimo_boleto"); $Nr = odbc_exec($db_connection,$boleto); $Nr_B = odbc_result($Nr, "nr_documento"); $Nr_boleto = $Nr_B + 1; if($CPF_char != "" and $CEP_char != "" and $cadastro['endereco'] != "" and $cadastro['Bairro'] != "" and $cadastro['Cidade'] != "" and $cadastro['UF'] != "" ){ //Atualiza o Lançamento $INSERT2 ="UPDATE lancamento SET id_situacao_lancamento= 8, remessa= 8, nr_remessa=".$remessa.", nr_documento=".$Nr_boleto." WHERE id_lancamento = ".$id_lancamento; $Update2 = odbc_exec($db_connection,$INSERT2); $CPF1 = preg_replace("/\D/","", $CPF_char); $PriCPF = (int)substr($CPF1, 0, 1 ); if($tipo == 'A'){ if($PriCPF == 0){ $U = (int)substr($CPF1, 0, 1 ); $D = (int)substr($CPF1, 1, 1 ); $T = (int)substr($CPF1, 2, 1 ); $Q = (int)substr($CPF1, 3, 1 ); $C = (int)substr($CPF1, 4, 1 ); $S = (int)substr($CPF1, 5, 1 ); $Se = (int)substr($CPF1, 6, 1 ); $O = (int)substr($CPF1, 7, 1 ); $N = (int)substr($CPF1, 8, 1 ); $De = (int)substr($CPF1, 9, 1 ); $On = (int)substr($CPF1, 10, 1 ); $CPF = $D . $T . $Q . $C . $S . $Se . $O . $N . $De . $On;} else{ $CPF = $CPF1;} } else if($tipo != "A"){ if($PriCPF == 0){ $U = (int)substr($CPF1, 0, 1 ); $D = (int)substr($CPF1, 1, 1 ); $T = (int)substr($CPF1, 2, 1 ); $Q = (int)substr($CPF1, 3, 1 ); $C = (int)substr($CPF1, 4, 1 ); $S = (int)substr($CPF1, 5, 1 ); $Se = (int)substr($CPF1, 6, 1 ); $O = (int)substr($CPF1, 7, 1 ); $N = (int)substr($CPF1, 8, 1 ); $De = (int)substr($CPF1, 9, 1 ); $On = (int)substr($CPF1, 10, 1 ); $Un = (int)substr($CPF1, 11, 1 ); $Dn = (int)substr($CPF1, 12, 1 ); $Tn = (int)substr($CPF1, 13, 1 ); $CPF = $D . $T . $Q . $C . $S . $Se . $O . $N . $De . $On. $Un. $Dn. $Tn;} else{ $CPF = $CPF1;} } $CEP = preg_replace("/\D/","", $CEP_char); ## REGISTRO DETALHE (OBRIGATORIO) #NOME DO CAMPO #SIGNIFICADO #POSICAO #PICTURE $conteudo .= 1; // tipo registro id registro transacac. 001 001 9(01) $conteudo .= '02'; // codigo inscricao tipo inscricao empresa 002 003 9(02) $conteudo .= 'CNPJ';// cnpj da empresa 004 017 9(14) $conteudo .= 'AGENCIA'; // juncao de agencia movimento e cobranca codigo de transmissao 018 037 9(20) $conteudo .= complementoRegistro(25,"brancos");//NOTA 15 complem regist 38 62 X(25) $conteudo .= numero_boleto($Nr_boleto); // NOSSO NUMERO / ID TITULO DO BANCO NOTA 3 063 070 9(08) $conteudo .= complementoRegistro(6,"zeros"); // Data segundo desconto 071 076 X(06) $conteudo .= complementoRegistro(1,"brancos"); // brancos complemento registro 077 077 X(01) $conteudo .= '4'; // informa??o multa 078 78 9(01) $conteudo .= '0002'; // percentual multa por atraso 079 82 9(2)v9(2) $conteudo .= '00'; // unidade valor moeda 083 84 9(02) $conteudo .= complementoRegistro(13,"zeros"); // valor do titulo em outra unidade 085 097 9(8)v9(5) $conteudo .= complementoRegistro(4,"brancos"); // brancos complemento registro 098 101 X(04) $conteudo .= complementoRegistro(6,"zeros"); // data para cobranca multa 102 107 9(06) $conteudo .= '5'; // codigo carteira 108 108 9(01) $conteudo .= '01'; // codigo ocorrencia 109 110 9(02) $conteudo .= limit($Nr_boleto,10); // nº documento / nº documento de cobranca NOTA 18 111 120 X(10) $conteudo .= $vencimento; // vencimento data venc. titulo NOTA 7 121 126 9(06) $conteudo .= valor($Valor); // nº sequencial do regsitro no arquivo 395 400 9(06) $conteudo .= '033'; // banco numero cobrador 140 142 9(02) $conteudo .= complementoRegistro(5,"zeros"); // codigo da agencia cobradora 143 147 9(05) $conteudo .= '01'; // especia de documento 148 149 9(02) $conteudo .= 'N'; // tipo de aceite 150 150 9(01) $conteudo .= $emissao; // data emissao titulo NOTA 31 151 156 9(06) $conteudo .= '00'; // primeira instrucao 157 158 9(02) $conteudo .= '00'; // segunda instrucao 159 160 9(02) $conteudo .= '0000000000001';// Valor de mora a ser cobrado por dia de atraso 161 173 9(11)V9(02) $conteudo .= complementoRegistro(6,"zeros"); // Data limite para concess?o de desconto 174 179 9(06) $conteudo .= '0000000000000';// valor desconto a ser concedido NOTA 13 180 192 9(11)V9(02) $conteudo .= '0000000000000'; // valor I.O.F RECOLHIDO P NOTAS SEGURO NOTA 14 193 205 9(11)V9(02) $conteudo .= '0000000000000'; // abatimento a ser concedido NOTA 13 206 218 9(11)V9(02) $conteudo .= '01'; // tipo inscricao sacado 219 220 9(02) $conteudo .= cpf($CPF); // numero de inscricao cpf ou cnpj 221 234 9(14) $conteudo .= limit($nome,40); // nome nome do sacado NOTA 15 235 264 X(30) $conteudo .= limit($cadastro['Endereco'],40); // logradouro rua numero e compl sacado 275 314 X(40) $conteudo .= limit($cadastro['Bairro'],12); // bairro bairro do sacado 315 326 X(12) $conteudo .= limit($CEP,8); // cep cep do sacado 327 334 9(08) $conteudo .= limit($cadastro['Cidade'],15); // cidade cidade do sacado 335 349 X(15) $conteudo .= limit($cadastro['UF'],2); // estado uf do sacado 350 351 X(02) $conteudo .= complementoRegistro(30,"brancos"); // sacador avalista 386 391 X(06) $conteudo .= complementoRegistro(1,"brancos"); // complemento do documento 382 382 X(01) $conteudo .= 'I'; // identificador complemeto 283 283 9(01) $conteudo .= '51'; // complemeto 284 285 9(02) $conteudo .= complementoRegistro(6,"brancos"); // brancos complemento 386 391 X(06) $conteudo .= '00'; // numero de dias para protesto 292 293 9(02) $conteudo .= complementoRegistro(1,"brancos"); // brancos complemento 394 394 X(01) $conteudo .= sequencial($i); // numero sequencial do registro no arquivo 395 400 9(06) $conteudo .= chr(13).chr(10); //essa é a quebra de linha $i = $i + 1; } /* ## REGISTRO DETALHE (OPCIONAL) #NOME DO CAMPO #SIGNIFICADO #POSICAO #PICTURE $conteudo .= 4; // tipo transacao id do registro 001 001 9(01) $conteudo .= ''; // codigo de inscr tipo inscr. empresa NOTA 1 002 003 9(02) $conteudo .= ''; // numero de inscr cpf ou cnpj 004 017 9(14) $conteudo .= ''; // agencia mantenedora conta 018 021 9(04) $conteudo .= '00'; // zeros complemento de registro 022 023 9(02) $conteudo .= ''; // conta da empresa 024 028 9(05) $conteudo .= ''; // DAC autoconf conta 029 029 9(01) $conteudo .= 109; // n carteira no banco NOTA 5 030 032 9(03) $conteudo .= ''; // nosso número id titulo banco NOTA 3 033 040 9(08) $conteudo .= ''; // dac nosso numero NOTA 3 041 041 9(01) $conteudo .= ''; // sequencia n seq. tipo 4 titulo 042 043 9(02) $conteudo .= ''; // agencia (01) agencia conta credito 044 047 9(04) $conteudo .= ''; // conta (01) conta p credito 048 054 9(07) $conteudo .= ''; // dac (1) autoconf conta credito 055 055 9(01) $conteudo .= ''; // valor (1) valor p credito NOTA 32 056 068 9(11)V9(02) $conteudo .= ''; // agencia (2) 069 072 9(04) $conteudo .= ''; // conta (2) 073 079 9(07) $conteudo .= ''; // dac (2) 080 080 9(01) $conteudo .= ''; // valor (2) 081 093 9(11)V9(02) $conteudo .= ''; // agencia (3) 094 097 9(04) $conteudo .= ''; // conta (3) 098 104 9(07) $conteudo .= ''; // dac (3) 105 105 9(01) $conteudo .= ''; // valor (3) 106 118 9(11)V9(02) $conteudo .= ''; // agencia (4) 119 122 9(04) $conteudo .= ''; // conta (4) 123 129 9(07) $conteudo .= ''; // dac (4) 130 130 9(01) $conteudo .= ''; // valor (4) 131 143 9(11)V9(02) $conteudo .= ''; // agencia (5) 144 147 9(04) $conteudo .= ''; // conta (5) 148 154 9(07) $conteudo .= ''; // dac (5) 155 155 9(01) $conteudo .= ''; // valor (5) 156 168 9(11)V9(02) $conteudo .= ''; // agencia (6) 169 172 9(04) $conteudo .= ''; // conta (6) 173 179 9(07) $conteudo .= ''; // dac (6) 180 180 9(01) $conteudo .= ''; // valor (6) 181 193 9(11)V9(02) $conteudo .= ''; // agencia (7) 194 197 9(04) $conteudo .= ''; // conta (7) 198 204 9(07) $conteudo .= ''; // dac (7) 205 205 9(01) $conteudo .= ''; // valor (7) 206 218 9(11)V9(02) $conteudo .= ''; // agencia (8) 219 222 9(04) $conteudo .= ''; // conta (8) 223 229 9(07) $conteudo .= ''; // dac (8) 230 230 9(01) $conteudo .= ''; // valor (8) 231 243 9(11)V9(02) $conteudo .= ''; // agencia (9) 244 247 9(04) $conteudo .= ''; // conta (9) 248 254 9(07) $conteudo .= ''; // dac (9) 255 255 9(01) $conteudo .= ''; // valor (9) 256 268 9(11)V9(02) $conteudo .= ''; // agencia (10) 269 272 9(04) $conteudo .= ''; // conta (10) 273 079 9(07) $conteudo .= ''; // dac (10) 280 280 9(01) $conteudo .= ''; // valor (10) 281 293 9(11)V9(02) $conteudo .= ''; // agencia (11) 294 297 9(04) $conteudo .= ''; // conta (11) 298 304 9(07) $conteudo .= ''; // dac (11) 305 305 9(01) $conteudo .= ''; // valor (11) 306 318 9(11)V9(02) $conteudo .= ''; // agencia (12) 319 322 9(04) $conteudo .= ''; // conta (12) 323 329 9(07) $conteudo .= ''; // dac (12) 330 330 9(01) $conteudo .= ''; // valor (12) 331 343 9(11)V9(02) $conteudo .= ''; // agencia (13) 344 347 9(04) $conteudo .= ''; // conta (13) 348 354 9(07) $conteudo .= ''; // dac (13) 355 355 9(01) $conteudo .= ''; // valor (13) 356 368 9(11)V9(02) $conteudo .= ''; // agencia (14) 369 372 9(04) $conteudo .= ''; // conta (14) 373 379 9(07) $conteudo .= ''; // dac (14) 380 380 9(01) $conteudo .= ''; // valor (14) 381 393 9(11)V9(02) $conteudo .= ''; // tipo de valor informado NOTA 32 394 394 9(01) $conteudo .= ''; // numero sequencial de registro no arquivo 395 400 9(06) */ /* IMPORTANTE: · O arquivo pode conter tanto títulos de cobrança normal como títulos de cobrança com rateio de crédito; · Para instruções de protesto, os títulos com rateio de crédito seguem os mesmos procedimentos dos títulos sem rateio; · O rateio de crédito pode ser por percentual ou em valor (vide Nota 32); · Títulos com rateio de crédito – Para cada Registro Detalhe Obrigatório (Tipo de Registro "1") podem ser utilizados até 3 (três) Registros Tipo "4" para indicação dos detalhes do rateio de crédito (máximo de 30 contas por título). Caso a Agência/Conta/Dac do cedente e Nº da Carteira/Nosso Número do título, informados nos registros Tipo "4" não coincidam com os dados do respectivo registro Tipo "1", a entrada do título é aceita sem rateio de crédito (os registros Tipo "4" são desprezados); · A entrada do título é rejeitada nos casos em que a soma dos valores ou percentuais de rateio (informados nos registros Tipo "4") ultrapasse o valor nominal do título do registro Tipo "1"; · Caso os registros de rateio (Tipo "4") não apresentem agências/contas de crédito, os registros Tipo 4 são desprezados e o título será tratado como entrada de cobrança normal, sem rateio; · A agência/conta do cedente e sua respectiva agência/conta centralizadora de crédito da cobrança, não podem estar entre as agências/contas beneficiárias do rateio de crédito; · Títulos com rateio de crédito não aceitam instruções de Desconto ou de Abatimento e não permitem alteração dos valores nominal e de crédito; · Não haverá incidência de CPMF quando a raiz do CPNJ da conta do cedente for igual a da conta de crédito do rateio. */ /* $conteudo .= chr(13).chr(10); //essa é a quebra de linha ## REGISTRO DETALHE (OPCIONAL) #NOME DO CAMPO #SIGNIFICADO #POSICAO #PICTURE $conteudo .= 5; // tipo de registro id reg transac 001 001 9(01) $conteudo .= ''; // endereco de email do sacado NOTA 29 002 121 X(120) $conteudo .= ''; // codigo de inscr sacador/avalista NOTA 30 122 123 9(02) $conteudo .= ''; // numero de inscr sacador/avalista NOTA 30 124 137 9(14) $conteudo .= ''; // logradouro sacador/avalista NOTA 30 138 177 X(40) $conteudo .= ''; // bairro sacador/avalista NOTA 30 178 189 X(12) $conteudo .= ''; // cep sacador/avalista NOTA 30 190 197 9(08) $conteudo .= ''; // cidade sacador/avalista NOTA 30 198 212 X(15) $conteudo .= ''; // estado sacador/avalista NOTA 30 213 214 X(02) $conteudo .= complementoRegistro(180,"brancos");// brancos complem regist 215 394 X(180) $conteudo .= ''; // numero sequencial do registro no arquivo 395 400 9(06) */ /* IMPORTANTE: · Este registro é opcional e deverá ser enviado apenas quando o Cedente desejar que o BOLETO de cobrança seja entregue pelo Banco Itaú ao Sacado por e-mail e/ou, em substituição ou complemento dos dados referentes ao Sacador/Avalista, quando de sua existência; e · Sempre que for informado, deverá ser na seqüência do registro obrigatório de cobrança (Código de Registro '1') a que seus dados se referem; · As informações constantes neste registro não são informadas no "arquivo retorno"; · Quando as informações referentes ao "Sacador / Avalista" tiverem sido indicadas nos registros "1" e "5", prevalecerá sempre a do registro "5"; · Na fase de testes não é possível o envio do BOLETO via e-mail, para tanto, este será emitido e consistido fisicamente. */ }// fecha loop de clientes //$conteudo .= chr(13).chr(10); //essa é a quebra de linha ## REGISTRO TRAILER DE ARQUIVO //CORRETO LAYOUT ITAU #NOME DO CAMPO #SIGNIFICADO #POSICAO #PICTURE $conteudo .= 9; // tipo de registro id registro trailer 001 001 9(01) $conteudo .= sequencial($i-1); // nº sequencial do regsitro no arquivo 395 400 9(06) $conteudo .= complementoRegistro(13,"zeros"); // nº sequencial do regsitro no arquivo 395 400 9(06) $conteudo .= complementoRegistro(374,"zeros"); // brancos complemento de registro 002 394 X(393) $conteudo .= sequencial($i); // nº sequencial do regsitro no arquivo 395 400 9(06) $conteudo .= chr(13).chr(10); //essa é a quebra de linha /* TENTATIVA SEM SUCESSO $conteudo .= '9201341 000000000000000000000000000000 000000000000000000000000000000 000000000000000000000000000000 000000000000000000000000000000000010000000800000000000000 '.sequencial($i); */ // Em nosso exemplo, nós vamos abrir o arquivo $filename // em modo de adição. O ponteiro do arquivo estará no final // do arquivo, e é pra lá que $conteudo irá quando o // escrevermos com fwrite(). // 'w+' e 'w' apaga tudo e escreve do zero // 'a+' comeca a escrever do inicio para o fim preservando o conteudo do arquivo if (!$handle = fopen($filename, 'w+')) { erro("Não foi possível abrir o arquivo ($filename)"); } // Escreve $conteudo no nosso arquivo aberto. if (fwrite($handle, "$conteudo") === FALSE) { echo "<script type='text/javascript'> alert('Não foi possível escrever no arquivo ($filename)'); </script>"; } fclose($handle); $arquivo= $remessa ; // defina o nome do arquivo $arq=fopen($filename,"w"); // defina a pasta do arquivo $base= $filename; // para o download fputs($arq,$conteudo); fclose($arq); //---------------------------------------------------------------- ?> <table width="1008" align="center" cellspacing=0 cellpadding=0 border=0><tr><td><DIV ALIGN="CENTER"> <?php echo "<br /><br /><br /><br /><br /><br /><br /><br />Remessa Gerada com Sucesso<br />Aguarde o download...<br /><br /> <meta http-equiv=\"refresh\" content=\"0;url=download.php?nome=".$arquivo."&mes=".$mes."&ano=".$ano."\" />"; echo "<a href='redirect.asp?mes=$mes&ano=$ano&nome=$nome'>Clique aqui para Continuar</a><br /><br /><br /><br /><br /><br /><br /><br />"; ?> </DIV></td></tr></table> </body> </html>
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.