payam sms

This commit is contained in:
Sayyid Hamid Mahdavi 2025-04-08 11:39:43 +03:30
parent ddddbf8c24
commit 23544600c7
3 changed files with 56 additions and 0 deletions

View file

@ -252,3 +252,9 @@ JALALI_DATE_DEFAULTS = {
'datetime': '%H:%M:%S _ %Y/%m/%d',
}
}
PAYAM_SMS_SYSTEM_NAME = config('PAYAM_SMS_SYSTEM_NAME')
PAYAM_SMS_USERNAME = config('PAYAM_SMS_USERNAME')
PAYAM_SMS_PASSWORD = config('PAYAM_SMS_PASSWORD')
PAYAM_SMS_CLIENT_ID = config('PAYAM_SMS_CLIENT_ID')
PAYAM_SMS_CLIENT_SECRET = config('PAYAM_SMS_CLIENT_SECRET')

View file

@ -12,6 +12,7 @@ from django.utils import timezone
from django.utils.translation import gettext_lazy as _
import uuid
from utils.clients.payam_sms import send_sms
from .provinces_and_cities import state
# from .tasks import send_notification
@ -214,6 +215,8 @@ class User(AbstractUser):
self.notify(body=str(self.otp), title='OTP')
def notify(self, body, title=None, notification_type='sms'):
message = "رمزیکبارمصرف: " + body
send_sms(self.phone_number.strip('+'), message)
return
# TODO: enable celery
send_notification(phone_number=self.phone_number,

View file

@ -0,0 +1,47 @@
# TODO: this is time fourced code. refactor
import requests
from django.conf import settings
def get_access_token():
payam_sms_system_name = settings.PAYAM_SMS_SYSTEM_NAME
payam_sms_username = settings.PAYAM_SMS_USERNAME
payam_sms_password = settings.PAYAM_SMS_PASSWORD
payam_sms_client_id = settings.PAYAM_SMS_CLIENT_ID
payam_sms_client_secret = settings.PAYAM_SMS_CLIENT_SECRET
auth = (payam_sms_client_id, payam_sms_client_secret)
url = f"https://www.payamsms.com/auth/oauth/token?systemName={payam_sms_system_name}&username={payam_sms_username}&password={payam_sms_password}&scope=webservice&grant_type=password"
response_object = requests.post(url, auth=auth, json={})
response = response_object.json()
return response["access_token"]
def send_sms(phone_number, message):
url = "https://www.payamsms.com/panel/webservice/send"
# access_token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJzb2JhbiIsInNjb3BlIjpbIndlYnNlcnZpY2UiXSwiZXhwIjoxNzQ0MTAyMDU5LCJ1c2VyRGV0YWlscyI6eyJpZCI6MjU0MCwidXNlck5hbWUiOiJzb2JhbiIsInJvbGUiOiJVU0VSIiwiZW5hYmxlZCI6dHJ1ZSwic3lzdGVtSWQiOjcyMiwiYWNjZXNzIjp7InJvbGUiOlsiYWRkIiwiZWRpdCIsImdldCIsImRlbGV0ZSJdLCJwaG9uZUJvb2siOlsiYWRkIiwiZWRpdCIsImdldExvY2FsIiwiZ2V0R2xvYmFsIiwiZGVsZXRlIl0sInNtcyI6WyJzaW5nbGUiLCJnZXRMb2NhbCIsImdldEdsb2JhbCIsImJ1bGsiLCJkYiJdLCJyZXBvcnQiOlsiZ2V0TW9HbG9iYWwiLCJnZXREYWlseUxvY2FsIiwiZ2V0TW9Mb2NhbCIsImdldERhaWx5R2xvYmFsIl0sIndzIjpbIndzIl0sInVzZXIiOlsiYWRkIiwiZWRpdCIsImdldExvY2FsIiwiZ2V0IiwiZ2V0R2xvYmFsIiwiZGVsZXRlIl0sInRvb2xzIjpbInJhY2UiLCJwZXJpb2RpYyIsInBvbGxpbmciLCJzZWNyZXRvcnkiLCJhdXRvYW5zd2VyIl0sImZpbmFuY2UiOlsidGRyIiwiY2hhcmdlIl19LCJyb2xlSWQiOjQ0NDAsImNoaWxkcmVuSWRzIjpbXSwic3lzdGVtVHlwZSI6Ik5PUk1BTCIsInN5c3RlbVBheW1lbnRUeXBlIjoiREVCSVQiLCJzeXN0ZW1OYW1lIjoic29iYW4iLCJzZW5kV2l0aE91dFBlcm1pc3Npb25TeXN0ZW0iOmZhbHNlLCJtaXNDdXN0b21lciI6Itio2YbYr9in2LEg2LPZiNio2KfZhiDYs9in2YXYp9mG2YciLCJwYXJlbnRVc2VyTmFtZSI6bnVsbCwicGFyZW50SWQiOm51bGwsImFkbWluIjp0cnVlfSwiYXV0aG9yaXRpZXMiOlsiVVNFUiJdLCJqdGkiOiJNeU5vTml2RURmc3YxUDR3U20tbTR2Y2NHODgiLCJjbGllbnRfaWQiOiJzb2JhbiJ9.9mdneDduK4OVH2zsXvRqvXt2qwpLvs0vCuseLaB-LCo'
access_token = get_access_token()
body = [
{
"sender": "98200000443295",
"recipient": phone_number,
"body": message,
# "customerId": "1",
# "sendDate": "2024-03-04 10:17:00"
}
]
headers = {
'Authorization': f'Bearer {access_token}',
'Content-Type': 'application/json',
'Accept': 'application/json',
}
response_object = requests.post(url, headers=headers, json=body)
print(response_object.text)
# send_sms("989106853582", "تست")