Erro 1405Assinatura Digital InvalidaAssinatura Invalida. NFS-e campinas

Estou tentando enviar lote de rps para prefeitura de campinas o lote vai mais o retorno volta com

1405 Assinatura Digital Invalida Assinatura Inválida.

Você está esquecendo de assinar corretamente o XML.
Anexe seu XML para podermos verificar.

Verifique esse meu gist para saber como assinar o XML:
https://gist.github.com/luizvaz/6c3e2c1e6bc7d310898107c9f95476bb

A função assinaXML($docxml, $tag) recebe um XML e o nome da TAG para assinar.
Repare que os arquivos do certificado estão referenciados dentro da função.
Eles precisam estar no formato PEM.