S M S A F Z A R
تلفن تماس

031-34369080

آدرس ایمیل

Info@SMSAfzar.com

آدرس

اصفهان، خیابان 5 آذر، مجتمع آذر

تلفن تماس
031-34369080
آدرس ایمیل
Info@SMSAfzar.com
آدرس
اصفهان، خیابان 5 آذر، مجتمع آذر

وب سرویس ارسال و دریافت پیامک

ارسال پیام تکی
نام متد : messages/send
از این متد جهت ارسال یک پیام به یک شماره گیرنده استفاده می شود.
آدرس فراخوانی متد : https://api.smsafzar.ir/messages/send
روش فراخوانی متد با Http : POST
پارامترهای ورودی :
senderNumber شماره فرستنده
recipientNumber شماره گیرنده
content متن پیام
sendTimestamp این پارامتر اختیاری می باشد و جهت تعیین تاریخ و زمان ارسال پیام مورد استفاده قرار می گیرد. مقدار این پارامتر می بایست بر اساس Unix Time (تعداد ثانیه از 00:00:00 01-01-1970 UTC) ارائه گردد و مقدار تاریخ و زمان ارسالی می بایست بزرگتر از تاریخ و زمان جاری سیستم باشد. جهت استعلام وضعیت ارسال پیام زمان بندی شده از متد messages/status (گزارش وضعیت پیام های ارسالی بر اساس شناسه یکتای مجموعه پیام های ارسالی (batchId)) اسنفاده نمایید.
مقدار پارامتر senderNumber (شماره فرستنده) می تواند به یکی از صورت های زیر باشد :

1000xxxx
00981000xxxx
+981000xxxx
981000xxxx

مقدار پارامتر recipientNumber (شماره گیرنده) می تواند به یکی از صورت های زیر باشد :

09xxxxxxxxx
9xxxxxxxxx
00989xxxxxxxxx
+989xxxxxxxxx
989xxxxxxxxx

پارامتر content (متن پیام) می بایست حاوی مقدار باشد و ارسال مقادیری که تنها شامل فاصله خالی (space) باشد معتبر نمی باشند. به عنوان مثال مقادیر زیر برای پارامتر content (متن پیام ) معتبر نمی باشند :
{
  "senderNumber": "10001000",
  "recipientNumber": "09100000000",
  "content": ""
}
{
  "senderNumber": "10001000",
  "recipientNumber": "09100000000",
  "content": "    "
}
نحوه ی ارسال پارامترهای ورودی در قالب Json و به صورت ذیل می باشد :
{
  "senderNumber": "10001000",
  "recipientNumber": "09100000000",
  "content": "Your message content"
}
{
  "senderNumber": "10001000",
  "recipientNumber": "09100000000",
  "content": "Your message content",
  "sendTimestamp": 1770181567
}
خروجی :
کد های وضعیت که در پاسخ Http توسط این متد بازگشت داده می شوند عبارتند از :
400 درخواست ارسالی صحیح نمی باشد. در صورتی که مقادیر پارامترهای ارسالی معتبر نباشند و یا فراخوانی متد با خطای منطقی متناسب با سیستم و یا تنظیمات سیستم مواجه شود کد وضعیت پاسخ Http برابر با ۴۰۰ خواهد بود. مقدار پارامتر errorCode در خروجی، برابر با کد خطای مربوطه و مقدار پارامتر errorMessage شرح خطای مربوطه می باشد. در صورتی که مقادیر پارامترهای ارسالی معتبر نباشند، پارامتر validationErrors، آرایه ای شامل نام پارامتر (field) و شرح خطای مربوط به نامعتبر بودن مقدار پارامتر (errorMessage) می باشد. ( لیست کدهای خطا )
نمونه های مختلف خروجی :
{
  "errorCode": 1001,
  "errorMessage": ".مقادیر پارامترهای ارسالی معتبر نمی باشند",
  "validationErrors": [
    {
      "field": "senderNumber",
      "errorMessage": ".فیلد [ شماره فرستنده ] را وارد نمایید"
    },
    {
      "field": "recipientNumber",
      "errorMessage": ".فیلد [ شماره گیرنده ] را وارد نمایید"
    },
    {
      "field": "content",
      "errorMessage": ".فیلد [ متن پیام ] را وارد نمایید"
    }
  ]
}
{
  "errorCode": 1053,
  "errorMessage": ".شماره خط فرستنده در حساب کاربر تعریف نشده است"
}
401 خطای اهراز هویت رخ داده است. (Api Key یا توکن ارسالی معتبر نمی باشد.) (مقدار پارامتر errorCode در خروجی، برابر با عدد ۴۰۱ و مقدار پارامتر errorMessage شرح خطای مربوطه می باشد.)
نمونه خروجی :
{
  "errorCode": 401,
  "errorMessage": ".خطای احراز هویت رخ داده است"
}
403
مجوز دسترسی به متد برای حساب کاربری تعریف نشده است. (مقدار پارامتر errorCode در خروجی، برابر با عدد ۱۰۰۵ و مقدار پارامتر errorMessage شرح خطای مربوطه می باشد.)
آدرس IP جهت دسترسی به سرویس معتبر نمی باشد. (مقدار پارامتر errorCode در خروجی، برابر با عدد ۱۰۰۶ و مقدار پارامتر errorMessage علت عدم دسترسی کاربر به سرویس می باشد.)
نمونه خروجی :
{
  "errorCode": 1005,
  "errorMessage": ".مجوز دسترسی به متد برای حساب کاربری تعریف نشده است"
}
{
  "errorCode": 1006,
  "errorMessage": ".آدرس آی پی جهت دسترسی به سرویس معتبر نمی باشد"
}
500 خطایی در سرور رخ داده است. (مقدار پارامتر errorCode در خروجی، برابر با کد خطای مربوطه جهت ارائه به بخش پشتیبانی و مقدار پارامتر errorMessage شرح خطای مربوطه می باشد.)
نمونه خروجی :
{
  "errorCode": 1000011011,
  "errorMessage": "خطایی در سرور رخ داده است. | شناسه خطا : 1000011011"
}
200 اجرای موفقیت آمیز عملیات و خروجی حاوی یک شناسه یکتا برای مجموعه پیام ارسالی (batchId) و یک شی حاوی اطلاعات پیام ارسالی به نام message می باشد. پارامترهای شی message عبارتند از :
sentMessageId شناسه پیام
senderNumber شماره فرستنده
recipientNumber شماره گیرنده
content متن پیام
language زبان متن پیام
operator اپراتور شماره گیرنده
parts تعداد بخش متن پیام
cost هزینه ارسال پیام
messageStatus وضعیت پیام
errorCode در صورتی که پیام با خطای منطقی متناسب با سیستم و یا تنظیمات سیستم مواجه شود، کد خطای مربوطه توسط این پارامتر نمایش داده می شود.
errorMessage در صورتی که پیام با خطای منطقی متناسب با سیستم و یا تنظیمات سیستم مواجه شود، شرح خطای مربوطه توسط این پارامتر نمایش داده می شود.
پارامتر messageStatus (وضعیت پیام) حاوی یکی از مقادیر ذیل می باشد :
0 در انتظار ارسال
1 ارسال شده به درگاه اپراتور
2 رسیده به مخاطب
3 نرسیده به مخاطب
4 ارسال نشده
نمونه خروجی :
{
  "batchId": "03bd52ed-8cb0-4a43-b9e7-dafff83c9565",
  "message": {
    "sentMessageId": "ec28329d-503f-4e9e-be82-c88bbd6f88d6",
    "senderNumber": "10001000",
    "recipientNumber": "09100000000",
    "content": "Your message content",
    "language": "English",
    "operator": "Mci",
    "parts": "1",
    "cost": "1,800",
    "messageStatus": 1
  }
}
نمونه کدها :

Api Key
curl -X POST "https://api.smsafzar.ir/messages/send" \
-H "Authorization: Bearer YourToken" \
-H "Cache-Control: no-cache" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"senderNumber": "10001000",
"recipientNumber": "09100000000",
"content": "Your message content"
}'
JWT Token
curl -X POST "https://api.smsafzar.ir/messages/send" \
-H "Authorization: Bearer YourToken" \
-H "Cache-Control: no-cache" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"senderNumber": "10001000",
"recipientNumber": "09100000000",
"content": "Your message content"
}'

Api Key
using RestSharp;

var apiBaseUrl = "https://api.smsafzar.ir";
var apiKey = "YourApiKey";

// Options
var options = new RestSharp.RestClientOptions(apiBaseUrl);

// Client
var client = new RestSharp.RestClient(options);

// Request

var messageJson = new
{
  senderNumber = "10001000",
  recipientNumber = "09100000000",
  content = "Your message content"
};
var request = new RestSharp.RestRequest("messages/send");
request.AddHeader("X-Api-Key", apiKey);
request.AddHeader("Cache-Control", "no-cache");
request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "application/json");
request.AddJsonBody(messageJson);

// Call
var response = await client.PostAsync(request);

// Response
Console.WriteLine($"Response Status Code: {(int)response.StatusCode}");
Console.WriteLine($"Response Content: {response.Content}");
JWT Token
using RestSharp;

var apiBaseUrl = "https://api.smsafzar.ir";
var jwtToken = "YourToken";

// Options
var options = new RestClientOptions(apiBaseUrl);

// Client
var client = new RestClient(options);

// Request

var messageJson = new
{
  senderNumber = "10001000",
  recipientNumber = "09100000000",
  content = "Your message content"
};
var request = new RestRequest("messages/send");
request.AddHeader("Authorization", $"Bearer {jwtToken}");
request.AddHeader("Cache-Control", "no-cache");
request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "application/json");
request.AddJsonBody(messageJson);

// Call
var response = await client.PostAsync(request);

// Response
Console.WriteLine($"Response Status Code: {(int)response.StatusCode}");
Console.WriteLine($"Response Content: {response.Content}");

Api Key
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import com.fasterxml.jackson.databind.ObjectMapper;

try {
String apiBaseUrl = "https://api.smsafzar.ir";
String apiKey = "YourApiKey";

Map<String, String> message = new HashMap<>();
messageJson.put("senderNumber", "10001000");
messageJson.put("recipientNumber", "09100000000");
messageJson.put("content", "Your message content");

ObjectMapper objectMapper = new ObjectMapper();
String requestBody = objectMapper.writeValueAsString(message);

// Client
HttpClient client = HttpClient.newHttpClient();

//Request
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(apiBaseUrl + "/messages/send"))
.header("X-Api-Key", apiKey)
.header("Cache-Control", "no-cache")
.header("Accept", "application/json")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();

// Call
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

//Response
int responseStatusCode = response.statusCode();
String responseContent = response.body();

System.out.println("Response Status Code: " + responseStatusCode);
System.out.println("Response Content: " + responseContent);
} catch (Exception e) {
e.printStackTrace();
}
JWT Token
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import com.fasterxml.jackson.databind.ObjectMapper;

try {
String apiBaseUrl = "https://api.smsafzar.ir";
String jwtToken = "YourToken";

Map<String, String> message = new HashMap<>();
messageJson.put("senderNumber", "10001000");
messageJson.put("recipientNumber", "09100000000");
messageJson.put("content", "Your message content");

ObjectMapper objectMapper = new ObjectMapper();
String requestBody = objectMapper.writeValueAsString(message);

// Client
HttpClient client = HttpClient.newHttpClient();

//Request
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(apiBaseUrl + "/messages/send"))
.header("Authorization", "Bearer " + jwtToken)
.header("Cache-Control", "no-cache")
.header("Accept", "application/json")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();

// Call
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

//Response
int responseStatusCode = response.statusCode();
String responseContent = response.body();

System.out.println("Response Status Code: " + responseStatusCode);
System.out.println("Response Content: " + responseContent);
} catch (Exception e) {
e.printStackTrace();
}

Api Key
import requests

api_base_url = "https://api.smsafzar.ir"
api_key = "YourApiKey"

message_json = {
"senderNumber": "10001000",
"recipientNumber": "09100000000",
"content": "Your message content"
}

headers = {
"X-Api-Key": api_key,
"Cache-Control": "no-cache",
"Accept": "application/json",
"Content-Type": "application/json"
}

# Call
response = requests.post(f"{api_base_url}/messages/send", json=message_json, headers=headers)

# Response
print("Response Code:", response.status_code)
print("Response Content:", response.json())
JWT Token
import requests

api_base_url = "https://api.smsafzar.ir"
jwt_token = "YourToken"

message_json = {
"senderNumber": "10001000",
"recipientNumber": "09100000000",
"content": "Your message content"
}

headers = {
"Authorization": f"Bearer {jwt_token}",
"Cache-Control": "no-cache",
"Accept": "application/json",
"Content-Type": "application/json"
}

# Call
response = requests.post(f"{api_base_url}/messages/send", json=message_json, headers=headers)

# Response
print("Response Code:", response.status_code)
print("Response Content:", response.json())

Api Key
<?php
$apiBaseUrl = "https://api.smsafzar.ir";
$apiKey = "YourApiKey";

$messageJson = json_encode([
'senderNumber' => '10001000',
'recipientNumber' => '09100000000',
'content' => 'Your message content'
]);

// Initialize CURL session
$ch = curl_init();

// Set CURL options
curl_setopt($ch, CURLOPT_URL, "{$apiBaseUrl}/messages/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $messageJson);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "X-Api-Key: $apiKey",
    "Cache-Control: no-cache",
    "Accept: application/json",
    "Content-Type: application/json"
]);

// Call
$response = curl_exec($ch);

// Response
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
} else {
$httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo "Response Status Code: " . $httpStatusCode . "\n";
echo "Response Content: " . $response . "\n";
}

// Close the CURL session
curl_close($ch);
?>
JWT Token
<?php
$apiBaseUrl = "https://api.smsafzar.ir";
$jwtToken = "YourToken";

$messageJson = json_encode([
'senderNumber' => '10001000',
'recipientNumber' => '09100000000',
'content' => 'Your message content'
]);

// Initialize CURL session
$ch = curl_init();

// Set CURL options
curl_setopt($ch, CURLOPT_URL, "{$apiBaseUrl}/messages/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $messageJson);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer $jwtToken",
    "Cache-Control: no-cache",
    "Accept: application/json",
    "Content-Type: application/json"
]);

// Call
$response = curl_exec($ch);

// Response
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
} else {
$httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo "Response Status Code: " . $httpStatusCode . "\n";
echo "Response Content: " . $response . "\n";
}

// Close the CURL session
curl_close($ch);
?>

Api Key
const axios = require('axios');

const apiBaseUrl = 'https://api.smsafzar.ir';
const apiKey = 'YourApiKey';

const messageJson = {
                  senderNumber: '10001000',
                  recipientNumber: '09100000000',
                  content: 'Your message content'
};

const headers = {
'X-Api-Key': apiKey,
'Cache-Control': 'no-cache',
'Accept': 'application/json',
'Content-Type': 'application/json'
};

// Request
axios.post(`${apiBaseUrl}/messages/send`, messageJson, { headers })
.then(response => {
// Response
console.log('Response Status Code:', response.status);
console.log('Response Content:', response.data);
})
.catch(error => {
// Error
console.error('Error:', error.response ? error.response.data : error.message);
});
JWT Token
const axios = require('axios');

const apiBaseUrl = 'https://api.smsafzar.ir';
const jwtToken = 'YourToken';

const messageJson = {
                  senderNumber: '10001000',
                  recipientNumber: '09100000000',
                  content: 'Your message content'
};

const headers = {
'Authorization': `Bearer ${jwtToken}`,
'Cache-Control': 'no-cache',
'Accept': 'application/json',
'Content-Type': 'application/json'
};

// Request
axios.post(`${apiBaseUrl}/messages/send`, messageJson, { headers })
.then(response => {
// Response
console.log('Response Status Code:', response.status);
console.log('Response Content:', response.data);
})
.catch(error => {
// Error
console.error('Error:', error.response ? error.response.data : error.message);
});

Api Key
let httpClient= inject(HttpClient);

let apiBaseUrl = 'https://api.smsafzar.ir';
let apiKey = 'YourApiKey';

let messageJson = {
senderNumber: '10001000',
recipientNumber: '09100000000',
content: 'Your message content'
};

let headers = new System.Net.Http.Headers.HttpHeaders({
'X-Api-Key': apiKey,
'Cache-Control': 'no-cache',
'Accept': 'application/json',
'Content-Type': 'application/json'
});

// Request
this.http.post(`${apiBaseUrl}/messages/send`, messageJson, { headers , observe: 'response' })
.subscribe(response => {
// Response
console.log('Response Status Code:', response.status);
console.log('Response Content:', response.body);
}, error => {
console.error('Error:', error);
});
JWT Token
let httpClient= inject(HttpClient);

let apiBaseUrl = '{{ restFulApiBaseUrl }}';
let jwtToken = 'YourToken';

let messageJson = {
senderNumber: '10001000',
recipientNumber: '09100000000',
content: 'Your message content'
};

let headers = new HttpHeaders({
'Authorization': `Bearer ${jwtToken}`,
'Cache-Control': 'no-cache',
'Accept': 'application/json',
'Content-Type': 'application/json'
});

// Request
this.http.post(`${apiBaseUrl}/messages/send`, messageJson, { headers , observe: 'response' })
.subscribe(response => {
// Response
console.log('Response Status Code:', response.status);
console.log('Response Content:', response.body);
}, error => {
console.error('Error:', error);
});

Api Key
import React, { useState } from 'react';

const [responseStatusCode, setResponseStatusCode] = useState(null);
const [responseContent, setResponseContent] = useState('');

const apiBaseUrl = 'https://api.smsafzar.ir';
const apiKey = 'YourApiKey';

let messageJson = {
senderNumber: '10001000',
recipientNumber: '09100000000',
content: 'Your message content'
};

try {
// Request
const response = await fetch(`${apiBaseUrl}/messages/send`, {
method: 'POST',
headers: {
'X-Api-Key': apiKey,
'Cache-Control': 'no-cache',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(messageJson),
});

// Response
const content = await response.json();
setResponseStatusCode(response.status);
setResponseContent(content);

console.log('Response Status Code:', response.status);
console.log('Response Content:', content);
} catch (error) {
console.error('Error:', error);
}
JWT Token
import React, { useState } from 'react';

const [responseStatusCode, setResponseStatusCode] = useState(null);
const [responseContent, setResponseContent] = useState('');

const apiBaseUrl = 'https://api.smsafzar.ir';
const jwtToken = 'YourToken';

let messageJson = {
senderNumber: '10001000',
recipientNumber: '09100000000',
content: 'Your message content'
};

try {
// Request
const response = await fetch(`${apiBaseUrl}/messages/send`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${jwtToken}`,
'Cache-Control': 'no-cache',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(messageJson),
});

// Response
const content = await response.json();
setResponseStatusCode(response.status);
setResponseContent(content);

console.log('Response Status Code:', response.status);
console.log('Response Content:', content);
} catch (error) {
console.error('Error:', error);
}