Bom, aqui na empresa utilizamos um componente pago da MakerPlanet em nossos projetos em Maker (Java) para geração e envio de NF-e e NFS-e e funciona perfeitamente tanto na camada servidor (Java) quanto na camada cliente (Javascript com Applet Java), tanto certificado A1 quanto A3.
Para mim, e imagino que seja geral isso, o ideal é que funcione somente na camada cliente onde o próprio usuário seja responsável pelo certificado digital, seja ele A1 ou A3.
Liguei para a MakerPlanet e questionei sobre as funções que são criadas na camada cliente do Maker que estão todas escritas em Javascript e se eu poderia utilizá-las em um projeto PHP, e a novidade é que eles disseram que estão desenvolvendo um projeto para funcionamento em PHP, não sei se teria a necessidade de desenvolver tal projeto por parte deles, irei estudar mais a fundo as funções que eles utilizam nos projetos em Maker e verificar a utilização do Applet deles em meu sistema em PHP, não vejo muito problema nisso, pois o Applet funciona em Javascript e para nós isso não é problema. Talvez seja somente a questão de validação do arquivo de assinatura deles, para checar se o componente é pago, que fica no servidor, portanto o código deve estar em Java, e eles teriam que traduzir para PHP.
Mas veja que essa é a solução mais próxima e definitiva para utilização de certificados A1 e A3 na camada cliente em PHP sem passar pelo site da SEFAZ como intermediário.
Se tiverem interesse e quiserem ligar para reforçar a ideia e baixar o componente e avaliarem juntamente comigo, fiquem a vontade.
Site: http://www.makerplanet.com.br/
E-mail: support@makerplanet.com
Skype: makerplanet.com
Telefone: (71) 3023-4312