اگر سایت یا نرمافزار شما با C# توسعه داده شده، برای ارسال خودکار پیامکهایی مثل کد تأیید، ثبت سفارش و تغییر وضعیت به وبسرویس پیامکی نیاز دارید.
با تهیۀ پنل و اتصال API کنسول ملی پیامک به برنامه، این فرایند را بدون ارسال دستی پیامک انجام دهید!
با فعالسازی دسترسی وبسرویس، امکان ارسال پیامک از داخل برنامه فراهم میشود.
اتصال C# به کنسول ملی پیامک و ارسال پیامک در ۳ مرحله
برای اضافه کردن قابلیت ارسال پیامک به سایت یا نرمافزار C#، میتوانید از API کنسول ملی پیامک استفاده کنید.
در سه مرحلۀ زیر، روش انجام این کار و بررسی پاسخ API را بررسی میکنیم:
۱. دریافت توکن API برای اتصال C# به کنسول ملی پیامک
وارد کنسول ملی پیامک شوید و توکن API حساب خود را دریافت کنید.
افشای توکن API یا رمز عبور، راه دسترسی غیرمجاز به پنل شما را باز میکند و ممکن است باعث ارسال پیامک و تحمیل هزینه به حساب شما شود. اطلاعات ورود را در کد عمومی یا گزارش خطا قرار ندهید!
۲. ارسال پیامک با C# از طریق API کنسول
کد زیر را در فایل Program.cs یک پروژه Console App قرار دهید. مقدار YOUR_API_TOKEN، شماره فرستنده و شماره گیرنده را با اطلاعات خود جایگزین کنید.
using System;
using System.Net.Http;
using System.Net.Http.Json;
using var client = new HttpClient
{
BaseAddress = new Uri("https://console.melipayamak.com/")
};
using var result = await client.PostAsJsonAsync(
"api/send/simple/YOUR_API_TOKEN",
new
{
from = "5000xxx",
to = "09123456789",
text = "سفارش شما ثبت شد."
}
);
var response = await result.Content.ReadAsStringAsync();
Console.WriteLine(response);
Console.WriteLine($"HTTP: {(int)result.StatusCode}");در این درخواست، from شماره فرستنده، to شماره گیرنده و text متن پیامک است. متد PostAsJsonAsync اطلاعات را در قالب JSON ارسال میکند.
این متد در نسخههای جدید .NET از فضای نام System.Net.Http.Json در دسترس است.
اگر پروژۀ شما از نسخۀ قدیمیتری استفاده میکند، سازگاری فریمورک و روش ارسال JSON را بررسی کنید.
۳. بررسی پاسخ API و وضعیت HTTP در C#
پس از اجرای برنامه، متن پاسخ API و کد وضعیت HTTP را بررسی کنید.
کد HTTP وضعیت درخواست در سطح ارتباط را نشان میدهد؛ برای تشخیص نتیجۀ عملیات پیامکی نیز باید محتوای پاسخ API را بررسی کنید.
پذیرفته شدن درخواست بهتنهایی تحویل پیامک به گوشی مخاطب را تأیید نمیکند.

امنیت در وبسرویسها شوخیبردار نیست؛ افشای توکن API یعنی واگذاری کلید اصلی پنل پیامکیتان به دیگران.
ارسال پیامک با C# از طریق REST
برای مشاهدۀ روش اتصال و ارسال پیامک از طریق REST، به نمونه کدهای C# ملی پیامک در گیتهاب مراجعه کنید.
ارسال پیامک با C# از طریق SOAP
برای استفاده از SOAP، سرویس را با WSDL به پروژه اضافه کنید و کلاینت آن را بسازید. آدرس سرویس ارسال پیامک:
حتماً بخوانید: بهترین افزونه پیامکی وردپرس در سال 1405 (مقایسۀ جامع + امکانات 41 پلاگین پیامکی)
https://api.payamak-panel.com/post/Send.asmx
پس از ایجاد کلاینت، نمونه فراخوانی متد SendSimpleSMS2 به این شکل است:
var soapClient = new SendSoapClient();
var result = soapClient.SendSimpleSMS2(
"YOUR_USERNAME",
"YOUR_PASSWORD",
"09123456789",
"5000xxx",
"سفارش شما ثبت شد.",
false
);
Console.WriteLine(result);اطلاعات ورود و شماره فرستنده را با مقادیر حساب خود جایگزین کنید.
نام SendSoapClient هم به نحوۀ تولید کلاینت بستگی دارد.
قابلیتهای کاربردی وبسرویس ملی پیامک در C#
با توجه به نیاز نرمافزار، از متدهای مناسب برای ارسال پیامک، پیگیری وضعیت، دریافت پیامهای ورودی یا بررسی اعتبار حساب استفاده کنید.
ارسال پیامک با وبسرویس خدماتی پترن به زبان C#
برای ارسال کد ورود یا شماره سفارش با استفاده از قابلیت ارسال پیامک پترن، ابتدا الگو را در پنل ثبت و تأیید کنید. سپس با متد SendByBaseNumber، مقدار متغیر، شماره گیرنده و شناسۀ الگو را ارسال کنید.
برای مثال،متن اصلی الگو در پنل:
{نام کاربر} عزیز، کد ورود شما {کد ورود} است.
melipayamak.com
متن الگو برای وبسرویس:
نمونه پیامک دریافتی:
در نمونهکدهای رسمی، متد SendByBaseNumber برای REST و SendByBaseNumber2 برای SOAP معرفی شدهاند. نمونه فراخوانی متد REST:
var result = restClient.SendByBaseNumber(
$"{name},{code}",
phoneNumber,
524
);
Console.WriteLine(result);
برای آشنایی با مراحل ثبت الگو و پارامترهای ارسال، مستندات ثبت پترن و ارسال پیامک با پترن را ببینید.
پیگیری وضعیت ارسال و دریافت پیامک با C#
برای بررسی وضعیت ارساولیل، شناسه ارسال (recId) را از پاسخ سرویس بگیرید و به متد GetDelivery بدهید:
var result = restClient.GetDelivery(recId);
Console.WriteLine(result.Value);
Console.WriteLine(result.RetStatus);
Console.WriteLine(result.StrRetStatus);متد GetDelivery نتیجۀ بررسی وضعیت ارسال را در قالب فیلدهای Value، RetStatus و StrRetStatus برمیگرداند.
برای مشاهدۀ نمونه کد C# برای بررسی وضعیت ارسال، فایل RestClient.cs را در مخزن رسمی ملی پیامک در گیتهاب ببینید.
برای دریافت فهرست پیامکها نیز از متد GetMessages استفاده کنید:
var result = restClient.GetMessages(location, index, count, from);
Console.WriteLine(result.Value);پارامترهای این متد عبارتاند از:
حتماً بخوانید: برنامههای ارسال پیامک گروهی در اپل و آیفون
- location: نوع پیامک یا محل دریافت پیامها بر اساس مقادیر تعریفشده در وبسرویس.
- index: شاخص شروع دریافت رکوردها.
- count: تعداد رکوردهای درخواستی.
- from: شمارۀ خط موردنظر.
متد GetMessages اطلاعات پیامکها را در خروجی RestResponse برمیگرداند. برای استفاده از جزئیات پیامکها، مقدار Value را بررسی کنید.
بررسی اعتبار حساب و تعرفه پیامک با وبسرویس ملی پیامک در C#
متد GetCredit اعتبار حساب و متد GetBasePrice تعرفۀ پایۀ پیامک را برمیگرداند:
var credit = restClient.GetCredit();
var basePrice = restClient.GetBasePrice();
Console.WriteLine(credit);
Console.WriteLine(basePrice);تعرفۀ پایه لزوماً با هزینه نهایی ارسال برابر نیست. همچنین دریافت شناسۀ ارسال به معنی تحویل پیامک به گوشی گیرنده نیست.
خطاهای رایج اتصال C# به وبسرویس ملی پیامک
اگر پیامک ارسال نمیشود، ابتدا پاسخ وبسرویس را بررسی کنید. سپس موارد زیر را کنترل کنید:
| خطا در پروژه C# | روش رفع خطا |
| خطای کامپایل متد PostAsJsonAsync | فضای نام System.Net.Http.Json و سازگاری نسخه .NET را بررسی کنید. |
| خطای احراز هویت API | صحت توکن کنسول یا اطلاعات ورود وبسرویس را بررسی کنید. |
| خطای اتصال به API | نشانی سرویس، اتصال شبکه و دسترسی سرور به HTTPS را بررسی کنید. |
| خطا در ارسال پیامک | شماره فرستنده، شماره گیرنده، متن پیام و اعتبار پنل را بررسی کنید. |
| خطا در ارسال پیامک الگویی | شناسه الگو و مقادیر متغیرها را با الگوی تأییدشده تطبیق دهید. |
| دریافت پاسخ HTTP ناموفق | کد وضعیت HTTP و متن پاسخ API را برای تشخیص علت بررسی کنید. |
| دریافت پاسخ موفق بدون تحویل پیامک | وضعیت ارسال پیامک را جداگانه پیگیری کنید؛ پاسخ موفق API به معنی تحویل پیامک نیست. |
اگر درخواست ارسال با خطای Timeout روبهرو شد، پیش از ارسال دوبارۀ آن، نتیجۀ درخواست قبلی را بررسی کنید. ممکن است سرویس پیامک درخواست را دریافت کرده باشد، اما پاسخ به برنامه نرسیده باشد؛ در این حالت، ارسال مجدد میتواند باعث تکرار پیامک شود.
انتخاب روش اتصال به وبسرویس ملی پیامک در پروژۀ C#
برای انتخاب روش اتصال به وبسرویس ملی پیامک در C#، به ساختار پروژه و نوع سرویس مورد نیازتان توجه کنید:
- پکیجهای گیتهاب ملی پیامک: برای استفاده از کدها و کلاسهای آمادۀ اتصال به وبسرویس.
- پکیج NuGet ملی پیامک: برای نصب و استفاده از کتابخانههای منتشرشده در این مخزن (در صورت سازگاری با پروژه).
- نمونهکدهای وبسرویس: برای پیادهسازی مستقیم درخواستها و آشنایی با پارامترها و پاسخ سرویس.
- کنسول ملی پیامک: برای ارسال پیامک با API کنسول و استفاده از توکن دسترسی.
سادهترین راه ارسال پیامک با C#، استفاده از REST کنسول و توکن API است.
قبل از راهاندازی در پروژۀ اصلی، ارسال آزمایشی انجام دهید و پاسخ API و وضعیت تحویل پیامک را بررسی کنید.
جمعبندی
در این مقاله، روش اتصال سایت یا نرمافزار C# به وبسرویس ملی پیامک و استفاده از قابلیتهای ارسال و دریافت پیامک را با کمک کنسول و وبسرویس بررسی کردیم.
اگر برای انتخاب روش اتصال یا پیادهسازی وبسرویس ملی پیامک در پروژه C# به راهنمایی نیاز دارید، با کارشناسان ملی پیامک تماس بگیرید تا متناسب با نیاز نرمافزار شما، مسیر مناسب را انتخاب کنید.




