# NFSe - Belo Horizonte PHP

**URL:** <https://comunidade.opendfe.com.br/t/nfse-belo-horizonte-php/702>\
**Category:** Minas Gerais\
**Tags:** 3106200\
**Created:** [Outubro 4, 2022, 6:51pm UTC](https://comunidade.opendfe.com.br/t/nfse-belo-horizonte-php/702 "2022-10-04T18:51:07Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![tasag](https://comunidade.opendfe.com.br/letter_avatar_proxy/v4/letter/t/c77e96/32.png) [@tasag](https://comunidade.opendfe.com.br/u/tasag)\
**Post date:** [Outubro 4, 2022, 6:51pm UTC](https://comunidade.opendfe.com.br/t/nfse-belo-horizonte-php/702/1 "2022-10-04T18:51:08Z")

</div>

Boa tarde, há uma semana venho sofrendo com a emissão da NFSe de Belo Horizonte.  
Estou usando esta lib para assinar o xml:

> **[GitHub - robrichards/xmlseclibs: A PHP library for XML Security](https://github.com/robrichards/xmlseclibs)**
>
> A PHP library for XML Security. Contribute to robrichards/xmlseclibs development by creating an account on GitHub.

Ele está assinando, porém no documento de exemplo da prefeitura aparecem 2 assinturas enquanto a lib insere apenas uma.

Outra questão é como montar o XML e enviar por SOAP assiando essa requisição.  
Existe alguma exemplo de implementação?

---

<div class="post-metadata">

**Author:** ![luizvaz](https://comunidade.opendfe.com.br/user_avatar/comunidade.opendfe.com.br/luizvaz/32/4_2.png) [@luizvaz](https://comunidade.opendfe.com.br/u/luizvaz)\
**Post date:** [Outubro 5, 2022, 2:52pm UTC](https://comunidade.opendfe.com.br/t/nfse-belo-horizonte-php/702/2 "2022-10-05T14:52:51Z")

</div>

Essa biblioteca tem um problema na assinatura.  
Ao fazer o C14N ela pega alguma coisa errada.  
Ainda não descobri o motivo, nem a solução.

Dê uma olhada nesse meu código para entender o envio e assinatura.  
Nela tem dois métodos de assinatura, que funcionam em 99% dos casos.  
[bhiss\_v001.php](https://comunidade.opendfe.com.br/uploads/short-url/x2E9f009ijse23uwOI6Oj88OtYy.php) (37,3,KB)

Os endpoints para envio são:

```auto
prod = "https://bhissdigital.pbh.gov.br/bhiss-ws/nfse";
homo = "https://bhisshomologa.pbh.gov.br/bhiss-ws/nfse";

```

Assine tanto a tag InfRps quanto a tag LoteRps.  
No final converta tudo para texto trocando as entidades `>`, `<` para `&gt;` e `&lt;` e coloque nas tags nfseCabecMsg e nfseDadosMsg.

---

<div class="post-metadata">

**Author:** ![tasag](https://comunidade.opendfe.com.br/letter_avatar_proxy/v4/letter/t/c77e96/32.png) [@tasag](https://comunidade.opendfe.com.br/u/tasag)\
**Post date:** [Outubro 6, 2022, 10:47am UTC](https://comunidade.opendfe.com.br/t/nfse-belo-horizonte-php/702/3 "2022-10-06T10:47:59Z")

</div>

Bom dia Luiz, obrigado demais pela sua atenção. Vou testar agora de manhã com essa sua ajuda. Muito obrigado mesmo.

---

<div class="post-metadata">

**Author:** ![tasag](https://comunidade.opendfe.com.br/letter_avatar_proxy/v4/letter/t/c77e96/32.png) [@tasag](https://comunidade.opendfe.com.br/u/tasag)\
**Post date:** [Outubro 6, 2022, 12:05pm UTC](https://comunidade.opendfe.com.br/t/nfse-belo-horizonte-php/702/4 "2022-10-06T12:05:26Z")

</div>

Luiz, fiz as alterações para testes, gerou o XML e assinou bonitinho, perfeito, porém ao validar a assinatura não possível, diz que o algoritmo de resumo criptográfico inválido.  
Tentei fazer uploado do xml assinado mas ainda sou novo na comunidade e não posso anexar.

![xml_assinado](https://comunidade.opendfe.com.br/uploads/default/original/1X/1e4b74d844797b076510a50a3d86bdcb77188ddd.png)

---

<div class="post-metadata">

**Author:** ![tasag](https://comunidade.opendfe.com.br/letter_avatar_proxy/v4/letter/t/c77e96/32.png) [@tasag](https://comunidade.opendfe.com.br/u/tasag)\
**Post date:** [Outubro 6, 2022, 8:53pm UTC](https://comunidade.opendfe.com.br/t/nfse-belo-horizonte-php/702/6 "2022-10-06T20:53:27Z")

</div>

[assinado.xml](https://comunidade.opendfe.com.br/uploads/short-url/lik7wYRj6rYbDZVtBGwPVckfWWC.xml) (7,9,KB)  
Como ficou o xml assinado.

---

<div class="post-metadata">

**Author:** ![luizvaz](https://comunidade.opendfe.com.br/user_avatar/comunidade.opendfe.com.br/luizvaz/32/4_2.png) [@luizvaz](https://comunidade.opendfe.com.br/u/luizvaz)\
**Post date:** [Outubro 11, 2022, 5:56pm UTC](https://comunidade.opendfe.com.br/t/nfse-belo-horizonte-php/702/7 "2022-10-11T17:56:58Z")

</div>

Não adianta usar softwares de terceiros.  
O próprio webservice tem métodos diferentes de validar a assinatura.

---

<div class="post-metadata">

**Author:** ![tasag](https://comunidade.opendfe.com.br/letter_avatar_proxy/v4/letter/t/c77e96/32.png) [@tasag](https://comunidade.opendfe.com.br/u/tasag)\
**Post date:** [Outubro 13, 2022, 12:27pm UTC](https://comunidade.opendfe.com.br/t/nfse-belo-horizonte-php/702/8 "2022-10-13T12:27:30Z")

</div>

> [@luizvaz](#):
>
> `https://bhisshomologa.pbh.gov.br/bhiss-ws/nfse`

Luiz, aproveitando, talvez eu esteja fazendo algo errado, em seu código tem uma função toLiteral() que não veio no que você disponibilizou, o que essa função faz?

$envelope = str\_replace(‘%CabMsg%’, $this-\>toLiteral($this-\>cabecalho), $envelope);

---

<div class="post-metadata">

**Author:** ![luizvaz](https://comunidade.opendfe.com.br/user_avatar/comunidade.opendfe.com.br/luizvaz/32/4_2.png) [@luizvaz](https://comunidade.opendfe.com.br/u/luizvaz)\
**Post date:** [Outubro 13, 2022, 2:12pm UTC](https://comunidade.opendfe.com.br/t/nfse-belo-horizonte-php/702/9 "2022-10-13T14:12:58Z")

</div>

Converte as Tags XML para String:

```auto
    //Converte String em XML
    public function fromLiteral($docxml)
    {
        $docxml = str_replace('&lt;', '<', $docxml);
        $docxml = str_replace('&gt;', '>', $docxml);
        return $docxml;
    }

    //Converte XML em String
    public function toLiteral($docxml)
    {
        //$docxml = str_replace('&', '&amp;', $docxml);
        $docxml = str_replace('<', '&lt;', $docxml);
        $docxml = str_replace('>', '&gt;', $docxml);
        return $docxml;
    }

```

---

<div class="post-metadata">

**Author:** ![tasag](https://comunidade.opendfe.com.br/letter_avatar_proxy/v4/letter/t/c77e96/32.png) [@tasag](https://comunidade.opendfe.com.br/u/tasag)\
**Post date:** [Outubro 25, 2022, 11:57am UTC](https://comunidade.opendfe.com.br/t/nfse-belo-horizonte-php/702/10 "2022-10-25T11:57:59Z")

</div>

Luiz, desculpe a demora, estive em viagem, deu certo, eu quero agradecer demais sua ajuda, e gostaria de contribuir de alguma forma.  
Existe alguma maneira de doar, ou então deixa seu PIX para a gente poder contribuir.

---

<div class="post-metadata">

**Author:** ![luizvaz](https://comunidade.opendfe.com.br/user_avatar/comunidade.opendfe.com.br/luizvaz/32/4_2.png) [@luizvaz](https://comunidade.opendfe.com.br/u/luizvaz)\
**Post date:** [Outubro 25, 2022, 1:46pm UTC](https://comunidade.opendfe.com.br/t/nfse-belo-horizonte-php/702/11 "2022-10-25T13:46:17Z")

</div>

Opa, valeu!

Tem sim, pode scanear o QR Code abaixo.

Ou usar essa Chave PIX Aleatória: **08f1eb06-c886-4a89-90e3-1e8f2bd8a104**  
Está em meu nome e o **Banco** é **MercadoPago**

![image](https://comunidade.opendfe.com.br/uploads/default/original/1X/21bdf86879c1eaf2e0503c7047d1838546240b25.jpeg)

---

<div class="post-metadata">

**Author:** ![tasag](https://comunidade.opendfe.com.br/letter_avatar_proxy/v4/letter/t/c77e96/32.png) [@tasag](https://comunidade.opendfe.com.br/u/tasag)\
**Post date:** [Novembro 8, 2022, 7:26pm UTC](https://comunidade.opendfe.com.br/t/nfse-belo-horizonte-php/702/12 "2022-11-08T19:26:49Z")

</div>

Luiz, muito obrigado, queria contribuir com um pouco mais, mas o o pouquinho que mandei foi com enorme gratidão! Muito obrigado.

---

<div class="post-metadata">

**Author:** ![luizvaz](https://comunidade.opendfe.com.br/user_avatar/comunidade.opendfe.com.br/luizvaz/32/4_2.png) [@luizvaz](https://comunidade.opendfe.com.br/u/luizvaz)\
**Post date:** [Novembro 8, 2022, 7:45pm UTC](https://comunidade.opendfe.com.br/t/nfse-belo-horizonte-php/702/13 "2022-11-08T19:45:14Z")

</div>

Que isso! Eu que agradeço! 👍 👍

---

<div class="post-metadata">

**Author:** ![system](https://comunidade.opendfe.com.br/uploads/default/original/1X/20b19a0ebccca67297d62e1f7d90c347e0761163.png) [@system](https://comunidade.opendfe.com.br/u/system)\
**Post date:** [Dezembro 8, 2022, 7:45pm UTC](https://comunidade.opendfe.com.br/t/nfse-belo-horizonte-php/702/14 "2022-12-08T19:45:56Z")

</div>

Este tópico foi fechado automaticamente 30 dias depois da última resposta. Novas respostas não são mais permitidas.
