承接 inovanti-bank/messaging 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

inovanti-bank/messaging

Composer 安装命令:

composer require inovanti-bank/messaging

包简介

Componente para integração com serviços de mensageria com APIs externas como Twilio, SendGrid, AWS SES, etc.

README 文档

README

Latest Stable Version Total Downloads License PHP Version Require

O inovanti-messaging é um pacote desenvolvido para facilitar a troca de mensagens e a integração com serviços externos de envio (SMS, e-mail, notificações, etc.) em projetos Laravel 11. O objetivo é fornecer uma API simples para gerenciar provedores de envio, rastreamento de mensagens e logs, sem complicar o fluxo de desenvolvimento.

graph TD;
    A["📱 **Aplicação Laravel**"] -->|"📤 Cria MessageData"| B["🔧 **MessageService**"]

    B -->|"📩 Tipo: SMS"| C["📨 **TwilioSmsService**"]
    B -->|"💬 Tipo: WhatsApp"| D["🟢 **TwilioWhatsAppService**"]
    B -->|"📧 Tipo: Email"| E[✉️ **SendGridEmailService**]

    C -->|"🔄 Envia para"| F["📡 **Twilio API (SMS)**"]
    D -->|"🔄 Envia para"| G["📡 **Twilio API (WhatsApp)**"]
    E -->|"🔄 Envia para"| H["📡 **SendGrid API**"]

    F -->|"✅ Resposta"| I["📊 **Retorna Status**"]
    G -->|"✅ Resposta"| I["📊 **Retorna Status**"]
    H -->|"✅ Resposta"| I["📊 **Retorna Status**"]

    I -->|"🚀 Dispara Evento"| J["📢 **MessageSent ou MessageFailed**"]

    J -->|"📜 Notifica Aplicação"| K["📝 **Callback/Log**"]
Loading

📌 Índice

  1. Instalação
  2. Configuração
  3. APIs Suportadas
  4. Uso
  5. Testes
  6. Contribuindo
  7. Licença

🚀 Instalação

Para instalar este pacote via Composer, utilize o seguinte comando:

composer require inovanti-bank/messaging

⚙️ Configuração

Service Provider

Se você estiver usando o Laravel 11, o próprio framework já pode descobrir automaticamente o provider e a facade. Porém, caso queira registrar manualmente, adicione no array de providers do arquivo config/app.php:

'providers' => [
    // ...
    InovantiBank\Messaging\Providers\MessagingServiceProvider::class,
],

Publicar Configurações (opcional)

Este pacote pode conter um arquivo de configuração que você pode publicar para customizar:

php artisan vendor:publish --provider="InovantiBank\Messaging\Providers\MessagingServiceProvider" --tag="config"

Após isso, edite o arquivo config/messaging.php conforme necessário.

Adicione as seguintes variáveis no .env:

# Twilio
TWILIO_ACCOUNT_SID=your_account_sid
TWILIO_AUTH_TOKEN=your_auth_token
TWILIO_SMS_FROM=+1234567890
TWILIO_WHATSAPP_FROM=+1234567890

# SendGrid
SENDGRID_API_KEY=your_sendgrid_api_key
SENDGRID_FROM_EMAIL=no-reply@seu-dominio.com

🌐 APIs Suportadas

Atualmente, a versão 1.0.0 do inovanti-messaging suporta as seguintes plataformas de envio de mensagens:

API Tipo de Mensagem Serviços Disponíveis
Twilio SMS TwilioSmsService
Twilio WhatsApp TwilioWhatsAppService
SendGrid E-mail SendGridEmailService

Estamos constantemente adicionando novos provedores de envio ao pacote. Para obter a lista mais atualizada das APIs suportadas e instruções sobre como configurá-las, consulte o repositório no GitHub.

Se houver suporte a novos provedores, a documentação será atualizada para incluir instruções específicas sobre como utilizá-los.

📩 Uso

Agora o envio de mensagens é feito através de serviços específicos (TwilioSmsService, TwilioWhatsAppService, SendGridEmailService), que são gerenciados pelo MessageService.

Exemplo de Envio de SMS

use InovantiBank\Messaging\Services\MessageService;
use InovantiBank\Messaging\Services\TwilioSmsService;
use InovantiBank\Messaging\Providers\TwilioProvider;
use InovantiBank\Messaging\DTOs\MessageData;
use Illuminate\Events\Dispatcher;

$twilioProvider = new TwilioProvider(
    env('TWILIO_ACCOUNT_SID'),
    env('TWILIO_AUTH_TOKEN')
);

$smsService = new TwilioSmsService($twilioProvider);

$messageService = new MessageService([
    'sms' => $smsService,
], new Dispatcher());

$messageData = new MessageData(
    type: 'sms',
    to: '+5511987654321',
    from: env('TWILIO_SMS_FROM'),
    content: 'Mensagem SMS de teste via Twilio.'
);

// Enviando mensagem
$response = $messageService->send($messageData);

print_r($response);

Exemplo de Envio de WhatsApp

use InovantiBank\Messaging\Services\MessageService;
use InovantiBank\Messaging\Services\TwilioWhatsAppService;
use InovantiBank\Messaging\Providers\TwilioProvider;
use InovantiBank\Messaging\DTOs\MessageData;
use Illuminate\Events\Dispatcher;

$twilioProvider = new TwilioProvider(
    env('TWILIO_ACCOUNT_SID'),
    env('TWILIO_AUTH_TOKEN')
);

$whatsappService = new TwilioWhatsAppService($twilioProvider);

$messageService = new MessageService([
    'whatsapp' => $whatsappService,
], new Dispatcher());

$messageData = new MessageData(
    type: 'whatsapp',
    to: '+5511987654321',
    from: env('TWILIO_WHATSAPP_FROM'),
    content: 'Mensagem de teste via WhatsApp Twilio.'
);

$response = $messageService->send($messageData);

print_r($response);

Exemplo de Envio de E-mail

use InovantiBank\Messaging\Services\MessageService;
use InovantiBank\Messaging\Services\SendGridEmailService;
use InovantiBank\Messaging\Providers\SendGridProvider;
use InovantiBank\Messaging\DTOs\MessageData;
use Illuminate\Events\Dispatcher;

$sendGridProvider = new SendGridProvider(env('SENDGRID_API_KEY'));

$emailService = new SendGridEmailService($sendGridProvider);

$messageService = new MessageService([
    'email' => $emailService,
], new Dispatcher());

$messageData = new MessageData(
    type: 'email',
    to: 'destinatario@example.com',
    from: env('SENDGRID_FROM_EMAIL'),
    content: 'Este é um e-mail de teste enviado via SendGrid.',
    metadata: ['subject' => 'Teste de E-mail via SendGrid'],
    addCC: ['destinatario2@example.com', 'destinatario3@example.com'],
    addBCC: ['destinatario.oculto@example.com', 'destinatario.oculto1@example.com']
);

$response = $messageService->send($messageData);

print_r($response);

🧪 Testes

O pacote vem com testes unitários simulada para garantir que tudo funcione conforme o esperado. Você pode executar os testes usando PHPUnit:

vendor/bin/phpunit
composer test

Para testes unit:

vendor/bin/phpunit --testsuite=Unit
composer unit

🤝 Contribuindo

Contribuições são bem-vindas! Se você deseja reportar um bug, solicitar um novo recurso ou contribuir com código, fique à vontade para abrir uma issue ou enviar um Pull Request.

  1. Faça um Fork do projeto
  2. Crie sua feature branch: git checkout -b minha-nova-feature
  3. Commit suas mudanças: git commit -m 'Adiciona nova feature'
  4. Faça o push para a branch: git push origin minha-nova-feature
  5. Crie um novo Pull Request

📜 Licença

Este projeto está licenciado sob a MIT license.

inovanti-bank/messaging 适用场景与选型建议

inovanti-bank/messaging 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2.05k 次下载、GitHub Stars 达 1, 最近一次更新时间为 2025 年 01 月 17 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「phpunit」 「messaging」 「twilio」 「laravel」 「sendgrid」 「eloquent」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 inovanti-bank/messaging 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 inovanti-bank/messaging 我们能提供哪些服务?
定制开发 / 二次开发

基于 inovanti-bank/messaging 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 2.05k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 8
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-01-17