Exemplo completo de integração da SMSGo com Django: settings, service de envio, views de OTP e webhook assinado, e testes com chave
test_.
- Configuração do cliente SMSGo via Django settings.
- Geração e validação de código OTP de 6 dígitos com TTL de 5 minutos no Redis.
- Envio de SMS OTP através de funções de serviço.
- Recebimento de webhooks de entrega (DLR) assinados com HMAC-SHA256.
- Testes unitários com chave de teste, sem gastar créditos reais.
smsgo-django-example/
├── smsgo_sms/
│ ├── __init__.py
│ ├── settings.py # Configuração SMSGO_API_KEY e Redis
│ ├── urls.py # Rotas /otp/request, /otp/verify, /webhooks/smsgo
│ ├── wsgi.py
│ ├── services.py # Cliente SMSGo e funções de envio
│ ├── views.py # Views de OTP e webhook
│ └── tests.py # Testes com chave test_
├── manage.py
├── requirements.txt
├── .env.example
├── .github/workflows/ci.yml
└── LICENSE
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .envConfigure o .env:
SMSGO_KEY="test_sua_chave_aqui"
SMSGO_WEBHOOK_SECRET="whsec_..."
REDIS_URL="redis://localhost:6379/0"Inicie o Redis localmente (ou use Docker):
docker run -d -p 6379:6379 redis:7-alpine- O usuário solicita OTP via
POST /otp/requestinformando o telefone. - A view gera um código de 6 dígitos e armazena no Redis com TTL de 5 minutos.
- O serviço
send_otpenvia o SMS pelo cliente SMSGo. - A SMSGo entrega o status de entrega (DLR) via
POST /webhooks/smsgo, assinado com HMAC-SHA256.
| Método | Rota | Descrição |
|---|---|---|
| POST | /otp/request |
Solicita envio de OTP |
| POST | /otp/verify |
Verifica código de OTP |
| POST | /webhooks/smsgo |
Recebe callback de status da SMSGo |
# Solicitar OTP
curl -X POST http://localhost:8000/otp/request \
-H "Content-Type: application/json" \
-d '{"phone":"+5511999990000"}'
# Verificar OTP
curl -X POST http://localhost:8000/otp/verify \
-H "Content-Type: application/json" \
-d '{"phone":"+5511999990000","code":"123456"}'python manage.py testpython manage.py runserver- SDK Python: https://github.com/sms-go/smsgo-sdk-python
- API completa: https://smsgo.apidog.io
- Painel SMSGo: https://smsgo.com.br
MIT © SMSGo