Mudanças entre as edições de "Integracao WhatsApp Funcionalidades"

De Tek-System Wiki
Ir para navegação Ir para pesquisar
 
(32 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
==BuscarToken.==
Necessário realizar previamente as configurações, conforme [[Integracao_WhatsApp_Cadastro_Configurações_Meta|Cadastro e Configurações]]
- Por padrão os tokens gerados pela meta tem durabilidade de 24hs.  Apesar de possuir opção de gerar token permanente e aconselhável usar esse token somente para buscar tokens de acesso temporário para que esses realizem as requisições de envio de mensagens com o cliente.
  '''- function BuscarToken(Client_ID, Client_Secret, Token: String): String;'''
    '''- Cliente ID:''' É a ID do aplicativo.
    '''- Cliente Secrete:''' É a chave secreta do aplicativo.
    '''- Token:''' É o token permanente gerado.


==EnviarMensagemWhatsApp.==
==Configurações TekStore==
- Para usar essa opção o template tem de ser do tipo Texto.
Precisa criar unit TEK_WHATSAPP_CONFIGURACAO_(CODIGO CLIENTE) para usar a funcionalidade do whatssApp.


- Nessa opção de envio, tudo que for enviado será através do formato texto. Onde pode ser enviado texto, valores, data e etc...
{
  "CLIENTE_ID":" ID do cliente na meta",
  "CLIENTE_SECRET":" chave secret do cliente na meta",
  "ID_REMETENTE":" ID do remetente na meta",
  "ID_CONTA_WHATSAPP":" ID da conta na meta",
  "TOKEN_PERMANENTE":" token permanente que será usado para gerar token de acesso",
  "LINGUAGEM":" linguem que será usada para envio, padrão pt_br",
  "TEMPLATE_MSG_AVULSA":"template padrão para mensagens avulsa",
  "TEMPLATE_MSG_COBRANCA":"template padrão para mensagens de cobrança",
  "TEMPLATE_MSG_TROCA_STATUS":"template padrão para mensagens de troca de status" 
}


- Como informado no menu de cadastro conta Meta para a empresa enviar uma mensagem é obrigatório usar um tamplete onde o mesmo pode possuir parâmetros ou apenas mensagem fixa.


  '''- procedure EnviarMensagemWhatsApp(IDRemetente, Token, Telefone, Template, Linguagem: String; Dados: OleVariant );'''
==Buscar Templates==
    '''- IDRemente:''' Ao cadastrar o telefone da empresa é gerado uma ID essa ID que será usada para identificar quem é a empresa que esta enviado a mensagem.
Funcionalidade criada para buscar os templates cadastrados para a empresa na Meta.  
    '''- Token:''' Aconselhado usar o token que foi gerado através da função BuscarToken e não o token permanente.
Retorna no nome, Linguagem, Status, formato, mensagem cadastrada e quantidade de tags utilizadas.
    '''- Telefone:''' Telefone para qual pretende enviar a mensagem 55 + DDD + Numero de Telefone.
    '''- Template:''' Nome do template cadastrado na meta que será usado para a mensagem que deseja enviar.
    '''- Linguagem:''' Linguagem na qual o template foi gerado. Ao cadastrar um template deve informar a linguagem do mesmo.
    '''- Dados:''' É um vetor de parâmetros. Caso não possuir parâmetros enviar  ‘ ‘.


==EnviarMensagemWhatsAppLink==
===Requisição===
- Para usar essa opção o template tem de ser do tipo mídia.


- Opção criada para envio de Mídia através de links da internet. O Link também  pode ser enviado usando a opção EnviarMensagemWhatsApp, a diferença é que nesse formato será enviado somente o link obrigado o recebedor a abrir para visualizar seu conteúdo diretamente. Agora usando a opção EnviarMensagemWhatsAppLink  caso o arquivo seja uma imagem a mesma já é carregada, se for um vídeo o mesmo já fica com opção de player e etc...
  '''function BuscarTemplates: Olevariant;'''


- Informação importante:
  - Para enviar imagens, a mesma tem de ser no formato jpg ou png.
Exemplo: https://mobimg.b-cdn.net/pic/v2/gallery/preview/gory-pejzazh-priroda-46792.jpg
    - Para enviar vídeos, o mesmo tem de ser no formato mp4 ou 3gp. Link do youtube por exemplo não são enviados usando a opção EnviarMensagemWhatsAppLink , somente a opção de EnviarMensagemWhatsApp.


- Nessa opção, além do link do arquivo enviado pode também enviar  as mesmas informações da opção de EnviarMensagemWhatsApp, que são mensagens fixas e mensagens com parâmetros.
==Enviar Mensagem Texto==
Nessa opção de envio tratará apenas de conteúdo texto, consumindo um template do tipo Texto.


  '''-procedure EnviarMensagemWhatsAppLink(IDRemetente, Token, Telefone, Template, Linguagem, Link, TipoArquivo: String; Dados: OleVariant);'''
===Requisição===
    '''- IDRemente:''' Ao cadastrar o telefone da empresa é gerado uma ID essa ID que será usada para identificar quem é a empresa que esta enviado a mensagem.
    '''- Token:''' Aconselhado usar o token que foi gerado através da função BuscarToken e não o token permanente.
    '''- Telefone:''' Telefone para qual pretende enviar a mensagem 55 + DDD + Numero de Telefone.
    '''- Template:''' Nome do template cadastrado na meta que será usado para a mensagem que deseja enviar.
    '''- Linguagem:''' Linguagem na qual o template foi gerado. Ao cadastrar um template deve informar a linguagem do mesmo.
    '''- Link:''' Link do arquivo. Deve ser respeitado o tópico de  Informação importante.
    '''- TipoArquivo:''' Se o arquivo enviado no link é do tipo “Image”, “vídeo”, “document”
    '''- Dados:''' É um vetor de parâmetros. Caso não possuir parâmetros enviar  ‘ ‘.


==UploadArquivoWhatsApp==
   '''function EnviarMensagemWhatsApp(Telefone, Template: String; Documento: Integer; Dados: OleVariant): Boolean;'''
- Para conseguir enviar um arquivo de mídia do tipo, imagem, vídeo, documento, áudio entre outros que esteja por exemplo saldo seu HD, Pen drive entre outros é necessário realizar o upload do arquivo para a Meta e com um código de ID retornado realizar o envio da mídia para os destinatários.
   '''- function UploadArquivoWhatsApp(IDRemetente, Token, FileName, TipoArquivo: String;): String;'''
    '''- IDRemente:''' Ao cadastrar o telefone da empresa é gerado uma ID essa ID que será usada para identificar quem é a empresa que esta enviado a mensagem.
    '''- Token:''' Aconselhado usar o token que foi gerado através da função BuscarToken e não o token permanente.
    '''- FileName:''' Caminho e nome do arquivo que deseja realizar  o upload.
      - Exemplo : C:\tek-System\temp\imagem.jpg.
    '''- TipoArquivo:''' Se o arquivo enviado no FileName é do tipo “Image” (image/jpeg), “vídeo”(video/mp4), “document”(application/pdf)


'''''- Ao executar essa opção será retornado uma ID. Essa ID será usada para enviar o arquivo para os destinatários através da funcionalidade EnviarMensagemWhatsAppAnexo.'''''
* Telefone: Telefone para qual pretende enviar a mensagem 55 + DDD + Numero de Telefone.
* Template: Nome do template cadastrado na meta que será usado para a mensagem que deseja enviar.
* Documento: Código do documento que será registrado na tek-system para controle de log e rastreio. Se optar por não enviar pode passar zero(0);
* Dados: Vetor de parâmetros variantes. Caso não possuir parâmetros enviar null.




==DeletarArquivoWhatsApp==
==Enviar Mensagem de Mídia==
- Quando realiza um Upload de um arquivo o mesmo fica disponível por 30 dias na Meta. Após esses 30 dias o mesmo e deletado de forma automática.
Opção criada para envio de Mídia através de links da internet. O Link também  pode ser enviado usando a opção EnviarMensagemWhatsApp, a diferença é que nesse formato será enviado somente o link obrigando o recebedor a abrir para visualizar seu conteúdo.
Utilizando a opção EnviarMensagemWhatsAppLink caso o arquivo seja uma imagem a mesma já será carregada, se for um vídeo o mesmo já fica com opção de player e etc...
 
Para usar essa opção o template tem de ser do tipo mídia.
 
===Informação===
* Para enviar imagens, a mesma tem de ser no formato jpg ou png. Exemplo: https://mobimg.b-cdn.net/pic/v2/gallery/preview/gory-pejzazh-priroda-46792.jpg
* Para enviar vídeos, o mesmo tem de ser no formato mp4 ou 3gp. Link do youtube por exemplo não são enviados usando a opção EnviarMensagemWhatsAppLink, somente a opção de EnviarMensagemWhatsApp.
 
Nessa opção, além do link do arquivo enviado pode também enviar as mesmas informações da opção de EnviarMensagemWhatsApp, que são mensagens fixas e mensagens com parâmetros.
 
===Requisição===
 
  '''function EnviarMensagemWhatsAppLink(Telefone, Template, Link, DescricaoArquivo, TipoArquivo: String; Documento: Integer; Dados: OleVariant): Boolean;'''
 
* Telefone: Telefone para qual pretende enviar a mensagem 55 + DDD + Numero de Telefone.
* Template: Nome do template cadastrado na meta que será usado para a mensagem que deseja enviar.
* Link: Link do arquivo. Deve ser respeitado o tópico de  Informação importante.
* DescricaoArquivo: Nome do arquivo que esta sendo enviado.
* TipoArquivo: Se o arquivo enviado no link é do tipo “Image”, “vídeo”, “document”.
* Documento: Código do documento que será registrado na tek-system para controle de log e rastreio. Se optar por não enviar pode passar zero(0);
* Dados: Vetor de parâmetros variantes. Caso não possuir parâmetros enviar null.
 
 
==Upload de Arquivo==
Para conseguir enviar um arquivo de mídia do tipo, imagem, vídeo, documento, áudio entre outros que esteja por exemplo saldo seu HD, Pen drive entre outros é necessário realizar o upload do arquivo para a Meta e com um código de ID retornado realizar o envio da mídia para os destinatários.
 
===Requisição===
 
  '''function UploadArquivoWhatsApp(FileName, TipoArquivo: String;): String;'''
 
* FileName: Caminho e nome do arquivo que deseja realizar  o upload. Exemplo : C:\tek-System\temp\imagem.jpg.
* TipoArquivo: Se o arquivo enviado no FileName é do tipo “Image” (image/jpeg), “vídeo”(video/mp4), “document”(application/pdf)
 
 
Ao executar essa opção será retornado uma ID. Essa ID será usada para enviar o arquivo para os destinatários através da funcionalidade EnviarMensagemWhatsAppAnexo.
 
 
==Deletar Arquivo==
Quando realiza um Upload de um arquivo o mesmo fica disponível por 30 dias na Meta. Após esses 30 dias o mesmo e deletado de forma automática.
   
   
- Quanto mais arquivos forem realizados Upload e mantido na Meta, atingindo o limite máximo, vai ficando lento o processo e enviar novos arquivos (Não foi especificado qual o limite máximo), para evitar esse problema, foi liberado opção de deletar o arquivo enviado.
Quanto mais arquivos forem realizados Upload e mantido na Meta, atingindo o limite máximo, vai ficando lento o processo e enviar novos arquivos (Não foi especificado qual o limite máximo), para evitar esse problema, foi liberado opção de deletar o arquivo enviado.


- Deletando os arquivos a empresa consegue gerenciar o processo.
Deletando os arquivos a empresa consegue gerenciar o processo.


  '''- procedure DeletarArquivoWhatsApp(ID, Token: String);'''
===Requisição===
    '''- ID:''' Id gerada na função UploadArquivoWhatsApp
    '''- Token:''' Aconselhado usar o token que foi gerado através da função BuscarToken e não o token permanente.


==EnviarMensagemWhatsAppAnexo==
  '''function DeletarArquivoWhatsApp(ID: String): Boolean;'''
-Opção criada para enviar arquivos na qual foi realizado UploadArquivoWhatsApp.


-Nessa opção, além do arquivo de Mídia enviado pode também enviar as mesmas informações da opção de EnviarMensagemWhatsApp, que são mensagens fixas e mensagens com parâmetros
* ID: Id gerada na função UploadArquivoWhatsApp.


-Informação importante:
==Enviar Mensagem com Anexo==
  - O tamanho máximo de arquivo de mídia é de 100MB, Sendo:
Nessa opção, além do arquivo de Mídia enviado pode também enviar as mesmas informações da opção de EnviarMensagemWhatsApp, que são mensagens fixas e mensagens com parâmetros
      - Audio : 16MB
      - Document : 100MB
      - Image : 5MB
      - Video: 16MB 
  - Formatos aceitos para Imagem Imagem: image/jpeg e image/png.
  - Formatos aceitos para Videos:  video/mp4 e video/3gp
  - Formatos aceitos para Documentos: text/plain, application/pdf, application/vnd.ms-powerpoint, application/msword, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
  - Formatos aceitos para Audio: audio/aac, audio/mp4, audio/mpeg, audio/amr


  '''- procedure EnviarMensagemWhatsAppAnexo(IDRemetente, Token, Telefone, Template, Linguagem, ID, TipoArquivo: String; Dados: OleVariant );'''
Opção criada para enviar arquivos na qual foi realizado UploadArquivoWhatsApp.
    '''- IDRemente:'''Ao cadastrar o telefone da empresa é gerado uma ID essa ID que será usada para identificar quem é a empresa que esta enviado a mensagem.
    '''- Token:''' Aconselhado usar o token que foi gerado através da função BuscarToken e não o token permanente.
    '''- Telefone:''' Telefone para qual pretende enviar a mensagem 55 + DDD + Numero de Telefone.
    '''- Template:''' Nome do template cadastrado na meta que será usado para a mensagem que deseja enviar.
    '''- Linguagem:''' Linguagem na qual o template foi gerado. Ao cadastrar um template deve informar a linguagem do mesmo.
    '''- ID:''' Id gerada na função UploadArquivoWhatsApp
    '''- TipoArquivo:''' Se o arquivo enviado é do tipo “Image”, “video”, “document”
    '''- Dados:''' É um vetor de parâmetros. Caso não possuir parâmetros enviar  ‘ ‘.




==Exemplo prático do uso em um Gatilho==
Formatos aceitos:
  p/ Documentos: text/plain, application/pdf, application/vnd.ms-powerpoint, application/msword, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
  p/ Imagem: image/jpeg e image/png
  p/ Audio: audio/aac, audio/mp4, audio/mpeg, audio/amr
  p/ Videos: video/mp4 e video/3gp
 
O tamanho máximo de arquivo de mídia:
  Audio : 16MB
  Document : 100MB
  Image : 5MB
  Video: 16MB 
 
===Requisição===
 
  '''function EnviarMensagemWhatsAppAnexo(Telefone, Template, ID, DescricaoArquivo, TipoArquivo: String; Documento: Integer; Dados: OleVariant): Boolean;'''
 
* Telefone: Telefone para qual pretende enviar a mensagem 55 + DDD + Numero de Telefone.
* Template: Nome do template cadastrado na meta que será usado para a mensagem que deseja enviar.
* ID: Id gerada na função UploadArquivoWhatsApp
* DescricaoArquivo: Nome do arquivo que esta sendo enviado.
* TipoArquivo: Se o arquivo enviado é do tipo “Image”, “video”, “document”.
* Documento: Código do documento que será registrado na tek-system para controle de log e rastreio. Se optar por não enviar pode passar zero(0);
* Dados: É um vetor de parâmetros. Caso não possuir parâmetros enviar null.
 
 
== Envio de Mensagens WhatsApp==
 
Os envios de Mensagens WhatsApp podem ser realizados através de processamentos específicos, agendamentos, gatilhos, entre outros.
 
Serão enviados apenas para pessoas que possuem telefones do tipo igual a C = Celular.
 
=== INTEGRACAO Mensagens WhatsApp: Enviar Mensagem ===
 
Envio de mensagem Mensagens WhatsApp informada pelo usuário através do processamento específico <i>INTEGRACAO WhatsApp: Enviar Mensagem</i> para filtros de pessoas.
 
Ao executar o processamento será apresentado tela com o filtro para que seja selecionado o Template que será usado para envio da mensagem. Será apresentado os Templates na conta da empresa.
 
[[Arquivo:EnvioAvulsoWhasApp1.png]]
 
Após selecionar o Template , será exibido filtros de acordo com o Template selecionado.
Nessa nova tela filtros que será exibida, se o Template "não for do tipo mídia", será exibido os seguintes filtros:
 
[[Arquivo:EnvioAvulsoWhasApp2.png]]
 
Se o Template "for do tipo mídia", será exibido os seguintes filtros:
Tipo de arquivo. Exemplo: Se for arquivo de imagem Jpeg ou Png
Formato do arquivo. Exemplo: Arquivo  ou link do arquivo.
Descrição do Arquivo. Nome para o arquivo enviado.
 
[[Arquivo:EnvioAvulsoWhasApp3.png]]
 
===Observações===
- Os campos de tags, serão exibidos de acordo com a quantidade de tags informada no Template. Se possui 1 tag no tamplate termos 1 campo de tag, se tiver 2 no Template teremos 2 campos no sistema e assim por diante.
- Para os valores informados nas tags serem usados é preciso selecionar as tags no filtro "tags disponíveis de acordo com o endereço do celular". A ordem definida nessa opção será a ordem usada para o Template informado.
- O campo de Mensagem do Template é meramente ilustrativo, esta disponível na tela somente para conferencia das informações. As alterações realizadas nesse campo não serão usadas.
 
Se o Template informado for do tipo mídia, irá apresentar a mensagem e o campo para escolher o arquivo ou para informar o link com base no valor informado no campo Formato do arquivo. Exemplo: Arquivo  ou link do arquivo.
 
[[Arquivo:EnvioAvulsoWhasApp4.png]]
Ao executar, irá apresentar uma tela para selecionar quais pessoas irão receber as mensagens.
 
[[Arquivo:EnvioAvulsoWhasApp5.png]]
 
Nessa tela caso opte, pode informar valores diferentes para os campos de tags e arquivo ou link. Nessa tela as informações passam a ser por pessoa. Se não informar prevalece o informado no filtro anterior.
 
Após confirmação dos filtros, será enviado as mensagens WhatsApp.
 
 
=== INTEGRACAO Mensagens WhatsApp: Enviar Status dos Documentos ===
 
Envio de mensagem Mensagens WhatsApp informada pelo usuário através do processamento específico <i>INTEGRACAO WhatsApp: Enviar Status dos Documentos</i> qpara documentos que tiveram alteração de Status na data atual..
 
Ao executar o processamento será apresentado tela com o filtro para que seja selecionado o Template que será usado para envio da mensagem. Será apresentado os Templates na conta da empresa.
 
[[Arquivo:EnvioAvulsoWhasApp1.png]]
 
Após selecionar o Template , será exibido filtros de acordo com o Template selecionado.
Nessa nova tela filtros que será exibida, se o Template "não for do tipo mídia", será exibido os seguintes filtros:
 
Se o Template "for do tipo mídia", será exibido os seguintes filtros:
Tipo de arquivo. Exemplo: Se for arquivo de imagem Jpeg ou Png
Formato do arquivo. Exemplo: Arquivo  ou link do arquivo.
Descrição do Arquivo. Nome para o arquivo enviado.
 
[[Arquivo:EnvioAvulsoWhasApp6.png]]
 
===Observações===
- Os campos de tags, serão exibidos de acordo com a quantidade de tags informada no Template. Se possui 1 tag no tamplate termos 1 campo de tag, se tiver 2 no Template teremos 2 campos no sistema e assim por diante.
- Para os valores informados nas tags serem usados é preciso selecionar as tags no filtro "tags disponíveis de acordo com o endereço do celular". A ordem definida nessa opção será a ordem usada para o Template informado.
- O campo de Mensagem do Template é meramente ilustrativo, esta disponível na tela somente para conferencia das informações. As alterações realizadas nesse campo não serão usadas.
 
Se o Template informado for do tipo mídia, irá apresentar a mensagem e o campo para escolher o arquivo ou para informar o link com base no valor informado no campo Formato do arquivo. Exemplo: Arquivo  ou link do arquivo.
 
[[Arquivo:EnvioAvulsoWhasApp4.png]]
Ao executar, irá apresentar uma tela para selecionar quais pessoas irão receber as mensagens.
 
[[Arquivo:EnvioAvulsoWhasApp7.png]]
 
Nessa tela caso opte, pode informar valores diferentes para os campos de tags e arquivo ou link. Nessa tela as informações passam a ser por pessoa. Se não informar prevalece o informado no filtro anterior.
 
Após confirmação dos filtros, será enviado as mensagens WhatsApp.
 
 
=== INTEGRACAO Mensagens WhatsApp: Enviar Cobrança ===
 
Envio de mensagem WhatsApp através do processamento específico INTEGRACAO WhatsApp: Enviar Cobrança para duplicatas e cheques de cobrança.
 
Ao executar o processamento será apresentado tela com o filtro para que seja selecionado o Template que será usado para envio da mensagem. Será apresentado os Templates na conta da empresa.
 
[[Arquivo:EnvioAvulsoWhasApp1.png]]
 
Após selecionar o Template , será exibido filtros de acordo com o Template selecionado.
Nessa nova tela filtros que será exibida, se o Template "não for do tipo mídia", será exibido os seguintes filtros:
 
Se o Template "for do tipo mídia", será exibido os seguintes filtros:
Tipo de arquivo. Exemplo: Se for arquivo de imagem Jpeg ou Png
Formato do arquivo. Exemplo: Arquivo  ou link do arquivo.
Descrição do Arquivo. Nome para o arquivo enviado.
 
[[Arquivo:EnvioAvulsoWhasApp8.png]]
 
===Observações===
- Os campos de tags, serão exibidos de acordo com a quantidade de tags informada no Template. Se possui 1 tag no tamplate termos 1 campo de tag, se tiver 2 no Template teremos 2 campos no sistema e assim por diante.
- Para os valores informados nas tags serem usados é preciso selecionar as tags no filtro "tags disponíveis de acordo com o endereço do celular". A ordem definida nessa opção será a ordem usada para o Template informado.
- O campo de Mensagem do Template é meramente ilustrativo, esta disponível na tela somente para conferencia das informações. As alterações realizadas nesse campo não serão usadas.
 
Se o Template informado for do tipo mídia, irá apresentar a mensagem e o campo para escolher o arquivo ou para informar o link com base no valor informado no campo Formato do arquivo. Exemplo: Arquivo  ou link do arquivo.
 
[[Arquivo:EnvioAvulsoWhasApp4.png]]
Ao executar, irá apresentar uma tela para selecionar quais pessoas irão receber as mensagens.
 
[[Arquivo:EnvioAvulsoWhasApp9.png]]
 
Nessa tela caso opte, pode informar valores diferentes para os campos de tags e arquivo ou link. Nessa tela as informações passam a ser por pessoa. Se não informar prevalece o informado no filtro anterior.
 
Após confirmação dos filtros, será enviado as mensagens WhatsApp.
 
 
==Exemplo de Uso Prático no Sistema==
 
Ao gatilho ao cadastrar ou trocar status de um pedido de venda, será enviado mensagem ao cliente


  unit uDocumento_Fatura_AfterUpdServer;
  unit uDocumento_Fatura_AfterUpdServer;
  uses TEK_INTEGRACAO_WHATSAPP;
  uses TEK_INTEGRACAO_WHATSAPP;
  Const
  Const
  Client_ID = 'ID do App';
  Client_Secret = 'Cliente Secreto do APP';
  IDRemetente = 'Informar ID do Remetente correspondente ao Telefone cadastrado no App';
  Token_Permanente = 'Infomar Token Permanente';
   Template = 'Nome do Template cadastrado na Meta';
   Template = 'Nome do Template cadastrado na Meta';
  Linguagem = 'Liguagem do Template. Exemplo: pt_br';
   Link = 'Link de uma imagem da internet';  
   Link = 'Link de uma imagem da internet';  
 
  procedure Main;
  procedure Main;
  var  
  var  
   Telefone, NumeroTelefone, Token, ID, Documento, Valor: String;
   Telefone, NumeroTelefone, TokenAcesso, ID, Documento, Valor, DescricaoArquivo, CaminhoArquivo: String;
  begin           
  begin           
   if (UpdateKind = ukInsert) and (ClassOwner = 'TSMCadPedidoVenda') then
   if (UpdateKind = ukInsert) and (ClassOwner = 'TSMCadPedidoVenda') and (NewValue('STATUS_DOCFAT') <> OldValue('STATUS_DOCFAT')) then
   begin
   begin
     Documento := IntToStr(Value('CODIGO_DOCFAT'));
     Documento := IntToStr(Value('CODIGO_DOCFAT'));
     Valor := FormatFloat(',0.00',Value('VLRLIQUIDO_DOCFAT'));
     NovoStatus := Value('DESCRICAO_STATUS');
      
     CaminhoArquivo := 'C:\Tek-System\Temp\nome do arquio.pdf';
     if Value('VLRLIQUIDO_DOCFAT') < 10000 then
     DescricaoArquivo := ExtractFileName(CaminhoArquivo);  
      Exit;
      
      
    // Pegar o número de celular
     NumeroTelefone := ExecuteScalar(
     NumeroTelefone := ExecuteScalar(
       'select first 1 PESSOA_TELEFONE.TELEFONE_PESSOA_TEL TELEFONE '+#13+
       'select first 1 PESSOA_TELEFONE.TELEFONE_PESSOA_TEL TELEFONE '+#13+
       'from PESSOA_TELEFONE  '+#13+
       'from PESSOA_TELEFONE  '+#13+
       'where PESSOA_TELEFONE.PESSOA_PESSOA_TEL = '+ IntToStr(Value('CLIENTE_DOCFAT'))+' and '+#13+
       'where PESSOA_TELEFONE.PESSOA_PESSOA_TEL = ' + IntToStr(Value('CLIENTE_DOCFAT')) + ' and '+#13+
       '  PESSOA_TELEFONE.TIPOTELEFONE_PESSOA_TEL = ‘C‘  '+#13+
       '  PESSOA_TELEFONE.TIPOTELEFONE_PESSOA_TEL = ‘C‘  '+#13+
       'order by PESSOA_TELEFONE.TELEFONEPADRAO_PESSOA_TEL desc');  
       'order by PESSOA_TELEFONE.TELEFONEPADRAO_PESSOA_TEL desc');  
Linha 130: Linha 271:
        
        
     try  
     try  
       Token := BuscarToken(Client_ID, Client_Secret, Token_Permanente);                       
       {Opção de buscar um novo tokne, toda função atualmente já busca token quando necessário}
      //TokenAcesso:= BuscarToken();                       
      
      
       {Opção 1: Template sem paramentros}
       {Opção 1: Template sem paramentros}
       // EnviarMensagemWhatsApp(IDRemetente, Token, Telefone, Template, Linguagem, VarArrayOf([‘ ‘]));  
       // EnviarMensagemWhatsApp(Telefone, Template, Documento, null));  
        
        
       {Opção 2: Template com um paramentro}
       {Opção 2: Template com um paramentro}
       // EnviarMensagemWhatsApp(IDRemetente, Token, Telefone, Template, Linguagem, VarArrayOf([Documento]));  
       // EnviarMensagemWhatsApp(Telefone, Template, Documento, VarArrayOf([Documento]));  
      
      
       {Opção 3: Template com um ou mais paramentros }
       {Opção 3: Template com um ou mais paramentros }
       // EnviarMensagemWhatsApp(IDRemetente, Token, Telefone, Template, Linguagem, VarArrayOf([Documento, Valor]));  
       // EnviarMensagemWhatsApp(Telefone, Template, Documento, VarArrayOf([Documento, NovoStatus]));  
      
      
       {Opção 4: Enviando link com templates sem paramentros }
       {Opção 4: Enviando link com templates sem paramentros }
       // EnviarMensagemWhatsAppLink(IDRemetente, Token, Telefone, Template, Linguagem, Link, 'image', VarArrayOf([‘ ‘]));  
       // EnviarMensagemWhatsAppLink(Telefone, Template, Documento, Link, ‘‘, 'image', null));  
      
      
       {Opção 5: Enviando link com templates com um ou mais paramentros }
       {Opção 5: Enviando link com templates com um ou mais paramentros }
       // EnviarMensagemWhatsAppLink(IDRemetente, Token, Telefone, Template, Linguagem, Link, 'image', VarArrayOf([Documento, Valor]));   
       // EnviarMensagemWhatsAppLink(Telefone, Template, Documento, Link, 'Nome do Documento', 'Document', VarArrayOf([Documento, NovoStatus]));   
        
        
       {Opção 6: Realizando o Upload de um arquivo,  Enviando o arquivo com templates sem paramentros e  Deletando arquivo enviado }
       {Opção 6: Realizando o Upload de um arquivo,  Enviando o arquivo com templates sem paramentros e  Deletando arquivo enviado }
       // ID := UploadArquivoWhatsApp(IDRemetente, Token, 'C:\Tek-System\Temp\nome do arquio.jpg', 'image/jpeg');  
       // ID := UploadArquivoWhatsApp('C:\Tek-System\Temp\nome do arquio.jpg', 'image/jpeg');  
       // EnviarMensagemWhatsAppAnexo(IDRemetente, Token, Telefone, Template, Linguagem, ID, 'image', VarArrayOf([‘ ‘]));   
       // EnviarMensagemWhatsAppAnexo(Telefone, Template, ID, DescricaoArquivo, 'image', Documento, null));   
       // DeletarArquivoWhatsApp(ID, Token);
       // DeletarArquivoWhatsApp(ID);
          
          
       {Opção 7: Realizando o Upload de um arquivo, Enviando o arquivo com templates com um ou mais paramentros e Deletando arquivo enviado }
       {Opção 7: Realizando o Upload de um arquivo, Enviando o arquivo com templates com um ou mais paramentros e Deletando arquivo enviado }
       // ID := UploadArquivoWhatsApp(IDRemetente, Token, 'C:\Tek-System\Temp\nome do arquio.jpg', 'image/jpeg');  
       // ID := UploadArquivoWhatsApp(CaminhoArquivo, 'application/pdf');  
       // EnviarMensagemWhatsAppAnexo(IDRemetente, Token, Telefone, Template, Linguagem, ID, 'image', VarArrayOf([Documento, Valor]));   
       // EnviarMensagemWhatsAppAnexo(Telefone, Template, ID, DescricaoArquivo, 'document', Documento, VarArrayOf([Documento, NovoStatus]));   
       // DeletarArquivoWhatsApp(ID, Token);
       // DeletarArquivoWhatsApp(ID, Token);
      
      
     except
     except
    on E: Exception do
      on Ex: Exception do
      EnviarMensagemInterna('Nome do Usuario', 'Erro ao enviar Mensagem via WhatsApp', 'O erro ocorreu ao enviar o Pedido: '+ Documento + #13+ E.Message);
        EnviarMensagemInterna('Nome do Usuario', 'Erro ao enviar Mensagem via WhatsApp', 'O erro ocorreu ao enviar o Pedido: '+ Documento + #13+ Ex.Message);
                              
                              
    // EnviarEMail('email do usuario','Erro ao enviar Mensagem via WhatsApp',  'O erro ocorreu ao enviar o Pedido: '+ Documento + #13+ E.Message);             
        // EnviarEMail('email do usuario','Erro ao enviar Mensagem via WhatsApp',  'O erro ocorreu ao enviar o Pedido: '+ Documento + #13+ Ex.Message);             
     end;
     end;
      
      

Edição atual tal como às 20h14min de 4 de agosto de 2023

Necessário realizar previamente as configurações, conforme Cadastro e Configurações

Configurações TekStore

Precisa criar unit TEK_WHATSAPP_CONFIGURACAO_(CODIGO CLIENTE) para usar a funcionalidade do whatssApp.

{
 "CLIENTE_ID":" ID do cliente na meta",
 "CLIENTE_SECRET":" chave secret do cliente na meta",
 "ID_REMETENTE":" ID do remetente na meta",
 "ID_CONTA_WHATSAPP":" ID da conta na meta",
 "TOKEN_PERMANENTE":" token permanente que será usado para gerar token de acesso",
 "LINGUAGEM":" linguem que será usada para envio, padrão pt_br", 
 "TEMPLATE_MSG_AVULSA":"template padrão para mensagens avulsa",
 "TEMPLATE_MSG_COBRANCA":"template padrão para mensagens de cobrança",
 "TEMPLATE_MSG_TROCA_STATUS":"template padrão para mensagens de troca de status"  
}


Buscar Templates

Funcionalidade criada para buscar os templates cadastrados para a empresa na Meta. Retorna no nome, Linguagem, Status, formato, mensagem cadastrada e quantidade de tags utilizadas.

Requisição

 function BuscarTemplates: Olevariant;


Enviar Mensagem Texto

Nessa opção de envio tratará apenas de conteúdo texto, consumindo um template do tipo Texto.

Requisição

  function EnviarMensagemWhatsApp(Telefone, Template: String; Documento: Integer; Dados: OleVariant): Boolean;
  • Telefone: Telefone para qual pretende enviar a mensagem 55 + DDD + Numero de Telefone.
  • Template: Nome do template cadastrado na meta que será usado para a mensagem que deseja enviar.
  • Documento: Código do documento que será registrado na tek-system para controle de log e rastreio. Se optar por não enviar pode passar zero(0);
  • Dados: Vetor de parâmetros variantes. Caso não possuir parâmetros enviar null.


Enviar Mensagem de Mídia

Opção criada para envio de Mídia através de links da internet. O Link também pode ser enviado usando a opção EnviarMensagemWhatsApp, a diferença é que nesse formato será enviado somente o link obrigando o recebedor a abrir para visualizar seu conteúdo. Utilizando a opção EnviarMensagemWhatsAppLink caso o arquivo seja uma imagem a mesma já será carregada, se for um vídeo o mesmo já fica com opção de player e etc...

Para usar essa opção o template tem de ser do tipo mídia.

Informação

Nessa opção, além do link do arquivo enviado pode também enviar as mesmas informações da opção de EnviarMensagemWhatsApp, que são mensagens fixas e mensagens com parâmetros.

Requisição

 function EnviarMensagemWhatsAppLink(Telefone, Template, Link, DescricaoArquivo, TipoArquivo: String; Documento: Integer; Dados: OleVariant): Boolean;
  • Telefone: Telefone para qual pretende enviar a mensagem 55 + DDD + Numero de Telefone.
  • Template: Nome do template cadastrado na meta que será usado para a mensagem que deseja enviar.
  • Link: Link do arquivo. Deve ser respeitado o tópico de Informação importante.
  • DescricaoArquivo: Nome do arquivo que esta sendo enviado.
  • TipoArquivo: Se o arquivo enviado no link é do tipo “Image”, “vídeo”, “document”.
  • Documento: Código do documento que será registrado na tek-system para controle de log e rastreio. Se optar por não enviar pode passar zero(0);
  • Dados: Vetor de parâmetros variantes. Caso não possuir parâmetros enviar null.


Upload de Arquivo

Para conseguir enviar um arquivo de mídia do tipo, imagem, vídeo, documento, áudio entre outros que esteja por exemplo saldo seu HD, Pen drive entre outros é necessário realizar o upload do arquivo para a Meta e com um código de ID retornado realizar o envio da mídia para os destinatários.

Requisição

  function UploadArquivoWhatsApp(FileName, TipoArquivo: String;): String;
  • FileName: Caminho e nome do arquivo que deseja realizar o upload. Exemplo : C:\tek-System\temp\imagem.jpg.
  • TipoArquivo: Se o arquivo enviado no FileName é do tipo “Image” (image/jpeg), “vídeo”(video/mp4), “document”(application/pdf)


Ao executar essa opção será retornado uma ID. Essa ID será usada para enviar o arquivo para os destinatários através da funcionalidade EnviarMensagemWhatsAppAnexo.


Deletar Arquivo

Quando realiza um Upload de um arquivo o mesmo fica disponível por 30 dias na Meta. Após esses 30 dias o mesmo e deletado de forma automática.

Quanto mais arquivos forem realizados Upload e mantido na Meta, atingindo o limite máximo, vai ficando lento o processo e enviar novos arquivos (Não foi especificado qual o limite máximo), para evitar esse problema, foi liberado opção de deletar o arquivo enviado.

Deletando os arquivos a empresa consegue gerenciar o processo.

Requisição

 function DeletarArquivoWhatsApp(ID: String): Boolean;
  • ID: Id gerada na função UploadArquivoWhatsApp.

Enviar Mensagem com Anexo

Nessa opção, além do arquivo de Mídia enviado pode também enviar as mesmas informações da opção de EnviarMensagemWhatsApp, que são mensagens fixas e mensagens com parâmetros

Opção criada para enviar arquivos na qual foi realizado UploadArquivoWhatsApp.


Formatos aceitos:

 p/ Documentos: text/plain, application/pdf, application/vnd.ms-powerpoint, application/msword, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
 p/ Imagem: image/jpeg e image/png
 p/ Audio: audio/aac, audio/mp4, audio/mpeg, audio/amr
 p/ Videos: video/mp4 e video/3gp

O tamanho máximo de arquivo de mídia:

 Audio : 16MB
 Document : 100MB
 Image : 5MB
 Video: 16MB  

Requisição

  function EnviarMensagemWhatsAppAnexo(Telefone, Template, ID, DescricaoArquivo, TipoArquivo: String; Documento: Integer; Dados: OleVariant): Boolean;
  • Telefone: Telefone para qual pretende enviar a mensagem 55 + DDD + Numero de Telefone.
  • Template: Nome do template cadastrado na meta que será usado para a mensagem que deseja enviar.
  • ID: Id gerada na função UploadArquivoWhatsApp
  • DescricaoArquivo: Nome do arquivo que esta sendo enviado.
  • TipoArquivo: Se o arquivo enviado é do tipo “Image”, “video”, “document”.
  • Documento: Código do documento que será registrado na tek-system para controle de log e rastreio. Se optar por não enviar pode passar zero(0);
  • Dados: É um vetor de parâmetros. Caso não possuir parâmetros enviar null.


Envio de Mensagens WhatsApp

Os envios de Mensagens WhatsApp podem ser realizados através de processamentos específicos, agendamentos, gatilhos, entre outros.

Serão enviados apenas para pessoas que possuem telefones do tipo igual a C = Celular.

INTEGRACAO Mensagens WhatsApp: Enviar Mensagem

Envio de mensagem Mensagens WhatsApp informada pelo usuário através do processamento específico INTEGRACAO WhatsApp: Enviar Mensagem para filtros de pessoas.

Ao executar o processamento será apresentado tela com o filtro para que seja selecionado o Template que será usado para envio da mensagem. Será apresentado os Templates na conta da empresa.

EnvioAvulsoWhasApp1.png

Após selecionar o Template , será exibido filtros de acordo com o Template selecionado. Nessa nova tela filtros que será exibida, se o Template "não for do tipo mídia", será exibido os seguintes filtros:

EnvioAvulsoWhasApp2.png

Se o Template "for do tipo mídia", será exibido os seguintes filtros: 
Tipo de arquivo. Exemplo: Se for arquivo de imagem Jpeg ou Png 
Formato do arquivo. Exemplo: Arquivo  ou link do arquivo.
Descrição do Arquivo. Nome para o arquivo enviado.

EnvioAvulsoWhasApp3.png

Observações

- Os campos de tags, serão exibidos de acordo com a quantidade de tags informada no Template. Se possui 1 tag no tamplate termos 1 campo de tag, se tiver 2 no Template teremos 2 campos no sistema e assim por diante.
- Para os valores informados nas tags serem usados é preciso selecionar as tags no filtro "tags disponíveis de acordo com o endereço do celular". A ordem definida nessa opção será a ordem usada para o Template informado.
- O campo de Mensagem do Template é meramente ilustrativo, esta disponível na tela somente para conferencia das informações. As alterações realizadas nesse campo não serão usadas.

Se o Template informado for do tipo mídia, irá apresentar a mensagem e o campo para escolher o arquivo ou para informar o link com base no valor informado no campo Formato do arquivo. Exemplo: Arquivo ou link do arquivo.

EnvioAvulsoWhasApp4.png

Ao executar, irá apresentar uma tela para selecionar quais pessoas irão receber as mensagens.

EnvioAvulsoWhasApp5.png

Nessa tela caso opte, pode informar valores diferentes para os campos de tags e arquivo ou link. Nessa tela as informações passam a ser por pessoa. Se não informar prevalece o informado no filtro anterior.

Após confirmação dos filtros, será enviado as mensagens WhatsApp.


INTEGRACAO Mensagens WhatsApp: Enviar Status dos Documentos

Envio de mensagem Mensagens WhatsApp informada pelo usuário através do processamento específico INTEGRACAO WhatsApp: Enviar Status dos Documentos qpara documentos que tiveram alteração de Status na data atual..

Ao executar o processamento será apresentado tela com o filtro para que seja selecionado o Template que será usado para envio da mensagem. Será apresentado os Templates na conta da empresa.

EnvioAvulsoWhasApp1.png

Após selecionar o Template , será exibido filtros de acordo com o Template selecionado. Nessa nova tela filtros que será exibida, se o Template "não for do tipo mídia", será exibido os seguintes filtros:

Se o Template "for do tipo mídia", será exibido os seguintes filtros: 
Tipo de arquivo. Exemplo: Se for arquivo de imagem Jpeg ou Png 
Formato do arquivo. Exemplo: Arquivo  ou link do arquivo.
Descrição do Arquivo. Nome para o arquivo enviado.

EnvioAvulsoWhasApp6.png

Observações

- Os campos de tags, serão exibidos de acordo com a quantidade de tags informada no Template. Se possui 1 tag no tamplate termos 1 campo de tag, se tiver 2 no Template teremos 2 campos no sistema e assim por diante.
- Para os valores informados nas tags serem usados é preciso selecionar as tags no filtro "tags disponíveis de acordo com o endereço do celular". A ordem definida nessa opção será a ordem usada para o Template informado.
- O campo de Mensagem do Template é meramente ilustrativo, esta disponível na tela somente para conferencia das informações. As alterações realizadas nesse campo não serão usadas.

Se o Template informado for do tipo mídia, irá apresentar a mensagem e o campo para escolher o arquivo ou para informar o link com base no valor informado no campo Formato do arquivo. Exemplo: Arquivo ou link do arquivo.

EnvioAvulsoWhasApp4.png

Ao executar, irá apresentar uma tela para selecionar quais pessoas irão receber as mensagens.

EnvioAvulsoWhasApp7.png

Nessa tela caso opte, pode informar valores diferentes para os campos de tags e arquivo ou link. Nessa tela as informações passam a ser por pessoa. Se não informar prevalece o informado no filtro anterior.

Após confirmação dos filtros, será enviado as mensagens WhatsApp.


INTEGRACAO Mensagens WhatsApp: Enviar Cobrança

Envio de mensagem WhatsApp através do processamento específico INTEGRACAO WhatsApp: Enviar Cobrança para duplicatas e cheques de cobrança.

Ao executar o processamento será apresentado tela com o filtro para que seja selecionado o Template que será usado para envio da mensagem. Será apresentado os Templates na conta da empresa.

EnvioAvulsoWhasApp1.png

Após selecionar o Template , será exibido filtros de acordo com o Template selecionado. Nessa nova tela filtros que será exibida, se o Template "não for do tipo mídia", será exibido os seguintes filtros:

Se o Template "for do tipo mídia", será exibido os seguintes filtros: 
Tipo de arquivo. Exemplo: Se for arquivo de imagem Jpeg ou Png 
Formato do arquivo. Exemplo: Arquivo  ou link do arquivo.
Descrição do Arquivo. Nome para o arquivo enviado.

EnvioAvulsoWhasApp8.png

Observações

- Os campos de tags, serão exibidos de acordo com a quantidade de tags informada no Template. Se possui 1 tag no tamplate termos 1 campo de tag, se tiver 2 no Template teremos 2 campos no sistema e assim por diante.
- Para os valores informados nas tags serem usados é preciso selecionar as tags no filtro "tags disponíveis de acordo com o endereço do celular". A ordem definida nessa opção será a ordem usada para o Template informado.
- O campo de Mensagem do Template é meramente ilustrativo, esta disponível na tela somente para conferencia das informações. As alterações realizadas nesse campo não serão usadas.

Se o Template informado for do tipo mídia, irá apresentar a mensagem e o campo para escolher o arquivo ou para informar o link com base no valor informado no campo Formato do arquivo. Exemplo: Arquivo ou link do arquivo.

EnvioAvulsoWhasApp4.png

Ao executar, irá apresentar uma tela para selecionar quais pessoas irão receber as mensagens.

EnvioAvulsoWhasApp9.png

Nessa tela caso opte, pode informar valores diferentes para os campos de tags e arquivo ou link. Nessa tela as informações passam a ser por pessoa. Se não informar prevalece o informado no filtro anterior.

Após confirmação dos filtros, será enviado as mensagens WhatsApp.


Exemplo de Uso Prático no Sistema

Ao gatilho ao cadastrar ou trocar status de um pedido de venda, será enviado mensagem ao cliente

unit uDocumento_Fatura_AfterUpdServer;
uses TEK_INTEGRACAO_WHATSAPP;
Const
 Template = 'Nome do Template cadastrado na Meta';
 Link = 'Link de uma imagem da internet'; 
procedure Main;
var 
  Telefone, NumeroTelefone, TokenAcesso, ID, Documento, Valor, DescricaoArquivo, CaminhoArquivo: String;
begin           
 if (UpdateKind = ukInsert) and (ClassOwner = 'TSMCadPedidoVenda') and (NewValue('STATUS_DOCFAT') <> OldValue('STATUS_DOCFAT')) then
 begin
   Documento := IntToStr(Value('CODIGO_DOCFAT'));
   NovoStatus := Value('DESCRICAO_STATUS');
   CaminhoArquivo := 'C:\Tek-System\Temp\nome do arquio.pdf';
   DescricaoArquivo := ExtractFileName(CaminhoArquivo); 
   
   // Pegar o número de celular
   NumeroTelefone := ExecuteScalar(
     'select first 1 PESSOA_TELEFONE.TELEFONE_PESSOA_TEL TELEFONE '+#13+
     'from PESSOA_TELEFONE  '+#13+
     'where PESSOA_TELEFONE.PESSOA_PESSOA_TEL = ' + IntToStr(Value('CLIENTE_DOCFAT')) + ' and '+#13+
     '  PESSOA_TELEFONE.TIPOTELEFONE_PESSOA_TEL = ‘C‘  '+#13+
     'order by PESSOA_TELEFONE.TELEFONEPADRAO_PESSOA_TEL desc'); 
   
   Telefone := '55'+ SoNumero(NumeroTelefone);
   if Length(Telefone) < 12 then
     Exit; 
     
   try 
     {Opção de buscar um novo tokne, toda função atualmente já busca token quando necessário}
     //TokenAcesso:= BuscarToken();                       
   
     {Opção 1: Template sem paramentros}
     // EnviarMensagemWhatsApp(Telefone, Template, Documento, null)); 
     
     {Opção 2: Template com um paramentro}
     // EnviarMensagemWhatsApp(Telefone, Template, Documento, VarArrayOf([Documento])); 
   
     {Opção 3: Template com um ou mais paramentros }
     // EnviarMensagemWhatsApp(Telefone, Template, Documento, VarArrayOf([Documento, NovoStatus])); 
   
     {Opção 4: Enviando link com templates sem paramentros }
     // EnviarMensagemWhatsAppLink(Telefone, Template, Documento, Link, ‘‘, 'image', null)); 
   
     {Opção 5: Enviando link com templates com um ou mais paramentros }
     // EnviarMensagemWhatsAppLink(Telefone, Template, Documento, Link, 'Nome do Documento', 'Document', VarArrayOf([Documento, NovoStatus]));  
     
     {Opção 6: Realizando o Upload de um arquivo,  Enviando o arquivo com templates sem paramentros e  Deletando arquivo enviado }
     // ID := UploadArquivoWhatsApp('C:\Tek-System\Temp\nome do arquio.jpg', 'image/jpeg'); 
     // EnviarMensagemWhatsAppAnexo(Telefone, Template, ID, DescricaoArquivo, 'image', Documento, null));  
     // DeletarArquivoWhatsApp(ID);
       
     {Opção 7: Realizando o Upload de um arquivo, Enviando o arquivo com templates com um ou mais paramentros e Deletando arquivo enviado }
     // ID := UploadArquivoWhatsApp(CaminhoArquivo, 'application/pdf'); 
     // EnviarMensagemWhatsAppAnexo(Telefone, Template, ID, DescricaoArquivo, 'document', Documento, VarArrayOf([Documento, NovoStatus]));  
     // DeletarArquivoWhatsApp(ID, Token);
   
   except
     on Ex: Exception do
       EnviarMensagemInterna('Nome do Usuario', 'Erro ao enviar Mensagem via WhatsApp', 'O erro ocorreu ao enviar o Pedido: '+ Documento + #13+ Ex.Message);
                           
       // EnviarEMail('email do usuario','Erro ao enviar Mensagem via WhatsApp',  'O erro ocorreu ao enviar o Pedido: '+ Documento + #13+ Ex.Message);             
   end;
   
 end;
end; 
                                 
end.