GERAÇÃO DE BOLETO- BANCO HSBC

segue exemplo de passagem de parâmetro para uma aplicação fora do scriptcase utilizando o projeto boletophp do boleto bancario do banco HSBC, podendo ser adaptado para qualquer banco do projeto.

http://www.netmake.com.br/knowledge/article-299.html

Atenciosamente Arquimedes

www.scriptcasebrasil.com.br

Tem alguma função para ler o arquivo de retorno e dar baixa nos pagamentos dos boletos?

estou desenvolvendo uma utilizado para da baixa em boletos do HSBC, brevemente estarei disponibilizando tambem.

Atenciosamente Arquimedes

www.scriptcasebrasil.com.br

Você tem algum exemplo de qualquer outro banco? To quebrando a cabeça aqui pra ver como que é feito a leitura.

voce pode utilizar essa funcao para leitura, estar faltando apenas inserir o valor da linha na sua base que eu nao sei qual é o campo da tabela para fazer o update e alterar o status dos boleto para pago

<?php //ABRE O ARQUIVO TXT $ponteiro = fopen ("C:\\banco.txt", "r"); //LÊ O ARQUIVO ATÉ CHEGAR AO FIM while (!feof ($ponteiro)) { //LÊ UMA LINHA DO ARQUIVO $linha = fgets($ponteiro, 4096); //IMPRIME NA TELA O RESULTADO echo $linha."
"; } //FECHA O PONTEIRO DO ARQUIVO fclose ($ponteiro); ?>

Vou testar aqui pra ver se da certo, vlw.

Consegui ler o arquivo teste.ret e imprimiu na tela o resultado do que eu tenho no arquivo:

02RETORNO01COBRANCA 101000010101 BANCO ITAU TESTE 341BANCO ITAU S.A.10101010600BPI00101010101 000001
10203218102000176414600020427 00006256 175000062565 I06011009 00006256 000000000000001209500139628 000000000000000000000000000000000000000000000000000000000000000000000000000000000000001209500000000000000000000000000 01100900000000000000000000000 B3000002
10203218102000176414600020427 00006426 175000064264 I06011009 00006426 000000000000001209574804341 000000000000000000000000000000000000000000000000000000000000000000000000000000000000001209500000000000000000000000000 01100900000000000000000000000 B3000001
10203218102000176414600020427 00006468 175000064686 I06011009 00006468 000000000000001209500115057 000000000000000000000000000000000000000000000000000000000000000000000000000000000000001209500000000000000000000000000 01100900000000000000000000000 B3000002
10203218102000176414600020427 00006808 175000068083 I06011009 00006808 000000000000001800000118861 000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000 01100900000000000000000000000 B2000003
10203218102000176414600020427 00006832 175000068323 I06011009 00006832 000000000000001800010425254 000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000 01100900000000000000000000000 B5000004
10203218102000176414600020427 00006836 175000068364 I06011009 00006836 000000000000001800010425254 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306100000000000610000000000000 01100900000000000000000000000 CP000027
000000000000000000000000000000000000000000000000000000000000000000000000000000000000001475000000000000000000000000000 01100900000000000000000000000 B2001027
9201341 000000000000000000000000000000 000000000000000000000000000000 000000000000000000000000000000 000000000000000000000000000000004660000102600000010168862 001028

blz, agora é so fazer o vinculo dos valores de $linha
{campo_pago} = $linha;
atravez do laço de repetição para alterar todos os pagamentos daquele dia ou arquivo txt

Atenciosamente Arquimedes

Na minha tabela eu tenho um campo chamado Pagamento = (S ou N), se tiver N é que o pagamento não foi realizado, e S quando o pagamento for realizado, quando o nosso numero do arquivo de retorno for igual ao nosso numero do da minha tabela eu tenho que atualizar.
Como eu poderia fazer isso?

VOCE PODE ADAPTAR ESSE CODIGO, ELE VERIFICA SE O PAGAMENTO FOI EFETUADO, DEPENDENDO DO RESULTADO ELE ALTERAR O RESULTADO NA TABELA

sc_lookup(ds_sn,“SELECT valor_creditado FROM contrato_entrada WHERE contrato_id = ‘{contrato_id}’ and codigo =’{codigo}’”);

if({ds_sn[0][0]} == ‘nao’)
{
sc_lookup(dataset,"SELECT ce.valor_entrada, c.valor_pago FROM contrato_entrada ce, contrato c WHERE ce.contrato_id = c.codigo and ce.contrato_id = ‘{contrato_id}’ and ce.valor_creditado= ‘nao’ and ce.codigo = ‘{codigo}’ ");

$entrada = {dataset}[0][0]; // aqui voce coloca o campo para receber o valor do codigo barra
$valor_pago= {dataset}[0][0];// nesse voce verifica o codigo de barra cadastrado no banco


if($entrada == $valor_pago) // aqui voce pode verifica se os codigos de barras sao iguais,  casso sim ele ira atualizar a tabela
{

$total =‘null’;
$soma=$total ;

sc_master_value('valor_pago', $soma);
sc_exec_sql('UPDATE contrato SET valor_pago = $soma WHERE codigo = {contrato_id}');
}	

else
{
sc_alert(“erro de logica”);
}

}

elseif({ds_sn[0][0]} == ‘sim’)
{

sc_lookup(dataset,"SELECT SUM(valor_entrada ) FROM contrato_entrada WHERE contrato_id = '{contrato_id}' and valor_creditado= 'sim' ");

$total = {dataset}[0][0];

sc_master_value('valor_pago', $total);

sc_exec_sql('UPDATE contrato SET valor_pago = $total WHERE codigo = {contrato_id}');

}

atenciosamente Arquimedes