Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wagner M.M

Gerar arquivo .ret Boleto

Recommended Posts

Pesquisei na internet e vi que o arquivo .ret serve para ver se o boleto foi pago.

 

Ja consegui abrir esse arquivo .ret com o PHP com alguns exemplos na internet, como faço para que o PHP gere esse arquivo .ret quando eh gerado o boleto? Afim de checar posteriormente se o mesmo foi pago.

 

Estou usando o boleto do Santander (se isso for relevante)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para chegar se o boleto foi pago você precisa apenas do "nosso número"....

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, Wagner M.M disse:

Pesquisei na internet e vi que o arquivo .ret serve para ver se o boleto foi pago.

 

Ja consegui abrir esse arquivo .ret com o PHP com alguns exemplos na internet, como faço para que o PHP gere esse arquivo .ret quando eh gerado o boleto? Afim de checar posteriormente se o mesmo foi pago.

 

Estou usando o boleto do Santander (se isso for relevante)

 

Eu trabalhava em uma empresa e uma belo dia tivemos uma grande surpresa:

2mil boletos emitidos sem ordem de protesto, motivo ?

O arquivo de remessa gerado pelo sistema não vinha com a instrução de protesto, isso só me gerou dor de cabeça, mas pelo menos aprendi isso (kkk):

 

O banco tem dois arquivos:

 

O .rem que é o envio das remessas pra cadastrar os boletos.

E o .ret, que é o arquivo com o retorno das remessas já enviadas pra saber o que houve com cada instrução.

 

Você não consegue trabalhar o .ret, sem os dados da .rem, por que você precisar cruzar os dados, pra saber o que aconteceu com cada coisa.

 

Pra descobrir como gerar a remessa, é só gerar um arquivo no formato .rem (texto) com o PHP, isso é fácil, o problema são as instruções, você deve pesquisar no seu banco o layout da remessa, e o layout do retorno, com isso você pode usar os dados que você já tiver no seu BD local, como CNPJ, Razao Social, CPF, pra inserir no local certo dentro da remessa e gerar um boleto pelo seu próprio sistema, mas o layout deve ser muito preciso, senão você pode enviar instruções erradas e ordenar que o banco faça coisas que não deveriam ser feitas vulgo meu exemplo acima.

 

Espero ter ajudado, vlw

 

PS: não tenho toda certeza se realmente o .ret sozinho é inútil, mas eu acredito que sim pois você não vai conseguir saber do que ele está retornando.

Compartilhar este post


Link para o post
Compartilhar em outros sites
13 minutos atrás, Wagner M.M disse:

esse arquivo .rem eh gerado quando se gera o boleto pelo php? Teria algum exemplo?

 

O arquivo .rem é o arquivo que é enviado pro banco pra gerar os boletos, e posteriormente receber o .ret.

 

Mas, ai que tá o porém, tanto a remessa, quanto o retorno tem alguns padrões, o ideal nesse caso, é você ligar na central e pedir os arquivos modelos, mas vou te explicar os passos.

 

Primeiro você vai ter que saber gerar um arquivo de texto com o PHP.

 

<php
$fp = fopen("remessa.rem", "a");

$escreve = fwrite($fp, "Aqui vão as instruções da remessa");

fclose($fp); 

 

Beleza, fácil, agora você vai precisar descobrir qual layout você precisa seguir, e isso você só descobre em contato com o banco, ou sabendo usar o internet bank pra buscar isso (não sei o nome pro santander).

 

Pra se criar um remessa do santander, com CNAB 400, com registro (400 porque possui 400 posições) você precisa seguir esse manual de construção do layout colocando as informações nas suas respectivas posições:

 

Layout Santander CNAB 400

 

É simples, mas até você entender vai rachar um pouco a cabeça, mas é simples e claro: siga cegamente as instruções do layout.

 

Não tenho nenhum exemplo de remessa aqui, mas acredito que em casa eu tenha uma classe que emite pro Bradesco, a noite eu verifico e se eu achar upo no github e mando o link aqui.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ressuscitando o post, estou na mesma luta aqui em um sistema que estou desenvolvendo. Vi que em alguns layouts que o Boleto PHP fornece, mas muitos não são registrados. Acredito que seja possível adaptá-los. Mas minha dúvida é: o arquivo .ret, como posso aplicá-lo em PHP, ou seja, como isso é aplicado? Por ex.: vi que o .ret da CEF é dessa forma:

 

02RETORNO0000000000000000011119999990000000000000000000000000000000000000000104000000000000000201016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
10000000000000000000000000000000000000000000000000000000140000000000000010000000000000000000000000000000000002201016         10000000000000000000019101600000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002
9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003

Isso é um padrão ou varia conforme a agência e conta? Para aplicar o .ret, tenho que desenvolver um novo arquivo onde mudaria o status do banco de dados? mas como faço para reconhecer que o .ret pertence a aquele determinado banco/agência/conta?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá, tudo bem?
       
      Estou melhorando meu conhecimento em php e mysql e, me deparei com o seguinte. A tabela da base de dados tem um campo do tipo varchar(8) o qual armazena números. Eu não posso alterar o tipo desse campo. O que preciso é fazer um select para retornar o números que contenham zeros a direita ou a esquerda.
      O que tentei até agora
       
      Ex1
      $busca = $conexao->prepare("select campo form tabela where (campo = :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form']);
       
      Se a direita da string $_REQUEST['campo_form'] termina ou inicia com zero ou zeros, a busca retorna vazio.
      Inseri dados numéricos, da seguinte maneira para testar: 01234567;  12345670: 12345678: 12340000... entre outros nessa coluna. Todos os valores que não terminam ou não iniciam com zero ou zeros, o select funciona.
       
       
      Ex2
      $busca = $conexao->prepare("select campo form tabela where (campo = 0340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex3
      $busca = $conexao->prepare("select campo form tabela where (campo = '02340001' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex4
      $busca = $conexao->prepare("select campo form tabela where (campo like 2340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex5
      $busca = $conexao->prepare("select campo form tabela where (campo like '12340000') ");
      Esse número está cadastrado, mas não retorna.
       
      Ex6
      $busca = $conexao->prepare("select campo form tabela where (campo like '"12340000"' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex7
      $busca = $conexao->prepare("select campo form tabela where (campo like :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form'])
      Não retorna dados.
       
      O  $_REQUEST['campo_form'] é envio via AJAX de um formulário. 
      Usei o gettype para verificar o post, e ele retorna string.
      Fiz uma busca com número 12345678 para verificar o que o select retorna, e também retrona como string.
       
      Esse tipo de varchar foi usado porque os números que serão gravados nesse campo,  terão zeros a direita ou na esquerda. Os tipos number do mysql não gravam zeros, então estou usando esse. O problema é a busca.
      Agradeço desde já.
       
       
    • Por daemon
      Boa tarde,
       
      Eu tenho uma rotina que faz uma leitura do arquivo .xml de vários sites.

      Eu consigo pegar o tópico e a descrição, e mostrar a imagem que esta na pagina do link.
      Para isso utilizo esta função:
      function getPreviewImage($url) { // Obter o conteúdo da página $html = file_get_contents($url); // Criar um novo objeto DOMDocument $doc = new DOMDocument(); @$doc->loadHTML($html); // Procurar pela tag meta og:image $tags = $doc->getElementsByTagName('meta'); foreach ($tags as $tag) { if ($tag->getAttribute('property') == 'og:image') { return $tag->getAttribute('content'); } } // Se não encontrar og:image, procurar pela primeira imagem na página $tags = $doc->getElementsByTagName('img'); if ($tags->length > 0) { return $tags->item(0)->getAttribute('src'); } // Se não encontrar nenhuma imagem, retornar null return null; } // Uso: $url = "https://example.com/article"; $imageUrl = getPreviewImage($url); if ($imageUrl) { echo "<img src='$imageUrl' alt='Preview'>"; } else { echo "Nenhuma imagem encontrada"; }  
      Mas estou com um problema, esta funcão funciona quando coloco em uma pagina de teste.php. Preciso mostrar em uma página inicial diversas fotos de todos os links. (No caso acima só funciona 1).
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.