14 lines
1.0 KiB
Python
14 lines
1.0 KiB
Python
import requests
|
|
from django.conf import settings
|
|
from .base import SMSProvider,SMSResult
|
|
class HTTPSMSProvider(SMSProvider):
|
|
def send_message(self,mobile,message):
|
|
if not settings.SMS_API_URL: return SMSResult(False,error="SMS_API_URL تنظیم نشده است.")
|
|
headers={"Accept":"application/json","Content-Type":"application/json"}
|
|
if settings.SMS_API_TOKEN: headers["Authorization"]=f"Bearer {settings.SMS_API_TOKEN}"
|
|
try:
|
|
response=requests.post(settings.SMS_API_URL,json={"to":mobile,"message":message,"sender":settings.SMS_SENDER},headers=headers,timeout=settings.INTEGRATION_HTTP_TIMEOUT_SECONDS); response.raise_for_status(); data=response.json() if response.content else {}
|
|
if data.get("success") is False: return SMSResult(False,error=str(data.get("error","Provider rejected SMS")))
|
|
return SMSResult(True,str(data.get("id") or data.get("message_id") or "http"))
|
|
except requests.RequestException as exc: return SMSResult(False,error=str(exc))
|