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))