Envio de SMS
Hoje é possível realizar o envio de SMS pelo NFS para um celular de terceiro, antes de qualquer coisa é necessário avaliar junto ao Tiago Pinheiro essa necessidade e ele deve aprovar, porque usamos o Zenvia ou Allcance, que geram custo adicional.
Envio de SMS pelo Zenvia no NFS
Foi criada uma opção de envio de SMS para um terceiro através do Zenvia. Para isso é necessário configurar o parâmetro SMS_ZENVIA_CONFIG na nfs_core_par_parametros sendo um json com from e token:
{ "from": "meu_user", "token" : "meu_token"}
Esses dados vão servir para autenticar junto a API do Zenvia e para enviar um sms basta usar o entry point abaixo:
$zenvia = new ZenviaSmsService();
$smsData = new SmsData('CODIGOPais_DDD_NUMERO', 'Last test');
$result = $zenvia->send($smsData);
print_r($result);
SmSData é um modelo de dados que no seu construtor espera no primeiro parâmetro o número completo do usuário que vai receber a mensagem, sendo assim com o código do país, ddd e número e o segundo parâmetro é a mensagem.
No serviço ZenviaSmsService, ao instancia temos como parâmetro o modelo SmsData que contém os dados necessário para envio.
Para saber mais: https://zenvia.github.io/zenvia-openapi-spec/v2/#tag/SMS
Envio de SMS pelo Allcance no NFS
Foi criada uma opção de envio de SMS para um terceiro através do Allcance. Para isso é necessário configurar o parâmetro SMS_ALLCANCE_CONFIG na nfs_core_par_parametros sendo um json com usuário e senha na chave "login", e, um token na chave "token", caso o cliente tenha disponível um token personalizado sem data de expiração:
{
"login": {
"username": "email",
"password": "senha"
},
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIU..."
}
Obs: Em caso de preenchimento da chave "token", essa será priorizada em relação ao uso dos dados de "login"!
Caso seja para testes preliminares é possível você mesmo fazer um cadastro para testes, se não me engano tem direito de 10 sms por dia no horário comercial.
Cada SMS é composto por 152 caracteres, logo se enviar mais do que isso será considerado mais de um, um ponto importante é que para caracteres unicode a cobrança é diferente, sendo 72 representando um SMS, com isso a cobranã pode sair de 2 para 5, eleveando o custo.
Para saber mais entre no site deles: Allcance
Estão disponíveis no CORE dois métodos para uso da classe AllcanceSmsService:
/**
* Envia um texto SMS simples definindo o destino e o texto da mensagem.
*
* @param SmsData $smsData Entidade modelo contendo o destino e o conteúdo do SMS
*/
public function send(SmsData $smsData): string {...}
/**
* Retorna o saldo de todos os serviços habilitados para a conta/token configurado.
*/
public function getCredits(): string {...}
No entry point o código será algo similar a:
//Envio do SMS
$allcanceService = new AllcanceSmsService();
$smsData = new SmsData('DDD_NUMERO', 'Last test');
$result = $allcanceService->send($smsData);
print_r($result);
//Consulta ao SALDO
$allcanceService = new AllcanceSmsService();
$result = $allcanceService->getCredits();
print_r($result);
SmSData é um modelo de dados que no seu construtor espera no primeiro parâmetro o número completo do usuário que vai receber a mensagem, sendo assim com o ddd e número e o segundo parâmetro é a mensagem.