نحوه ارسال پیامک با C# در وب‌سرویس ملی پیامک

Engagements Icon
0
نحوه ارسال پیامک با C# در وب‌سرویس ملی پیامک

اگر سایت یا نرم‌افزار شما با C# توسعه داده شده، برای ارسال خودکار پیامک‌هایی مثل کد تأیید، ثبت سفارش و تغییر وضعیت به وب‌سرویس پیامکی نیاز دارید.

با تهیۀ پنل و اتصال API کنسول ملی پیامک به برنامه، این فرایند را بدون ارسال دستی پیامک انجام دهید!

با فعال‌سازی دسترسی وب‌سرویس، امکان ارسال پیامک از داخل برنامه فراهم می‌شود.

اتصال C# به کنسول ملی پیامک و ارسال پیامک در ۳ مرحله

برای اضافه کردن قابلیت ارسال پیامک به سایت یا نرم‌افزار C#، می‌توانید از API کنسول ملی پیامک استفاده کنید.

در سه مرحلۀ زیر، روش انجام این کار و بررسی پاسخ API را بررسی می‌کنیم:

۱. دریافت توکن API برای اتصال C# به کنسول ملی پیامک

وارد کنسول ملی پیامک شوید و توکن API حساب خود را دریافت کنید.

افشای توکن API یا رمز عبور، راه دسترسی غیرمجاز به پنل شما را باز می‌کند و ممکن است باعث ارسال پیامک و تحمیل هزینه به حساب شما شود. اطلاعات ورود را در کد عمومی یا گزارش خطا قرار ندهید!
برای آشنایی با محیط کنسول و مراحل دریافت توکن، راهنمای کنسول ملی پیامک را ببینید.

۲. ارسال پیامک با C# از طریق API کنسول

کد زیر را در فایل Program.cs یک پروژه Console App قرار دهید. مقدار YOUR_API_TOKEN، شماره فرستنده و شماره گیرنده را با اطلاعات خود جایگزین کنید.

C
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 را بررسی کنید.

پذیرفته شدن درخواست به‌تنهایی تحویل پیامک به گوشی مخاطب را تأیید نمی‌کند.

دیاگرام معماری اتصال وب‌سایت و اپلیکیشن به وب‌سرویس و پنل پیامکی ملی‌پيامک با متدهای REST و SOAP.

امنیت در وب‌سرویس‌ها شوخی‌بردار نیست؛ افشای توکن API یعنی واگذاری کلید اصلی پنل پیامکی‌تان به دیگران.

ارسال پیامک با C# از طریق REST

برای مشاهدۀ روش اتصال و ارسال پیامک از طریق REST، به نمونه کدهای C# ملی پیامک در گیت‌هاب مراجعه کنید.

ارسال پیامک با C# از طریق SOAP

برای استفاده از SOAP، سرویس را با WSDL به پروژه اضافه کنید و کلاینت آن را بسازید. آدرس سرویس ارسال پیامک:

بهترین افزونه پیامکی وردپرس در سال 1405 (مقایسۀ جامع + امکانات 41 پلاگین پیامکی)حتماً بخوانید: بهترین افزونه پیامکی وردپرس در سال 1405 (مقایسۀ جامع + امکانات 41 پلاگین پیامکی) https://api.payamak-panel.com/post/Send.asmx

پس از ایجاد کلاینت، نمونه فراخوانی متد SendSimpleSMS2 به این شکل است:

C
var soapClient = new SendSoapClient();

var result = soapClient.SendSimpleSMS2(
"YOUR_USERNAME",
"YOUR_PASSWORD",
"09123456789",
"5000xxx",
"سفارش شما ثبت شد.",
false
);

Console.WriteLine(result);

اطلاعات ورود و شماره فرستنده را با مقادیر حساب خود جایگزین کنید.

نام SendSoapClient هم به نحوۀ تولید کلاینت بستگی دارد.

قابلیت‌های کاربردی وب‌سرویس ملی پیامک در C#

با توجه به نیاز نرم‌افزار، از متدهای مناسب برای ارسال پیامک، پیگیری وضعیت، دریافت پیام‌های ورودی یا بررسی اعتبار حساب استفاده کنید.

ارسال پیامک با وب‌سرویس خدماتی پترن به زبان C#

برای ارسال کد ورود یا شماره سفارش با استفاده از قابلیت ارسال پیامک پترن، ابتدا الگو را در پنل ثبت و تأیید کنید. سپس با متد SendByBaseNumber، مقدار متغیر، شماره گیرنده و شناسۀ الگو را ارسال کنید.

برای مثال،متن اصلی الگو در پنل:

{نام کاربر} عزیز، کد ورود شما {کد ورود} است.

melipayamak.com

متن الگو برای وب‌سرویس:


{0} عزیز، کد ورود شما {1} است.
melipayamak.com

نمونه پیامک دریافتی:


هستی عزیز، کد ورود شما 583214 است.
melipayamak.com

در نمونه‌کدهای رسمی، متد SendByBaseNumber برای REST و SendByBaseNumber2 برای SOAP معرفی شده‌اند. نمونه فراخوانی متد REST:

C
var result = restClient.SendByBaseNumber(
$"{name},{code}",
phoneNumber,
524
);

Console.WriteLine(result);

در این نمونه، name نام کاربر، code کد ورود و phoneNumber شماره گیرنده است. عدد 524 شناسه الگو (bodyId) است که باید با شناسه الگوی تأییدشدۀ خود جایگزین کنید.
برای آشنایی با مراحل ثبت الگو و پارامترهای ارسال، مستندات ثبت پترن و ارسال پیامک با پترن را ببینید.

پیگیری وضعیت ارسال و دریافت پیامک با C#

برای بررسی وضعیت ارساولیل، شناسه ارسال (recId) را از پاسخ سرویس بگیرید و به متد GetDelivery بدهید:

C
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 استفاده کنید:

C
var result = restClient.GetMessages(location, index, count, from);
Console.WriteLine(result.Value);

پارامترهای این متد عبارت‌اند از: 

برنامه‌های ارسال پیامک گروهی در اپل و آیفونحتماً بخوانید: برنامه‌های ارسال پیامک گروهی در اپل و آیفون
  • location: نوع پیامک یا محل دریافت پیام‌ها بر اساس مقادیر تعریف‌شده در وب‌سرویس.
  • index: شاخص شروع دریافت رکوردها.
  • count: تعداد رکوردهای درخواستی.
  • from: شمارۀ خط موردنظر.

متد GetMessages اطلاعات پیامک‌ها را در خروجی RestResponse برمی‌گرداند. برای استفاده از جزئیات پیامک‌ها، مقدار Value را بررسی کنید.

بررسی اعتبار حساب و تعرفه پیامک با وب‌سرویس ملی پیامک در C#

متد GetCredit اعتبار حساب و متد GetBasePrice تعرفۀ پایۀ پیامک را برمی‌گرداند:

C
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# به راهنمایی نیاز دارید، با کارشناسان ملی پیامک تماس بگیرید تا متناسب با نیاز نرم‌افزار شما، مسیر مناسب را انتخاب کنید.

سوالات متداول

آیا پاسخ موفق API به معنی تحویل پیامک است؟
شناسه ارسال را دریافت کنید و با متد بررسی وضعیت تحویل، نتیجه ارسال را پیگیری کنید. پاسخ موفق HTTP به‌تنهایی رسیدن پیامک به دست مخاطب را تأیید نمی‌کند.
اگر توکن API در کد C# قرار نگیرد، چطور آن را به برنامه بدهیم؟
توکن را در متغیر محیطی یا تنظیمات امن سرور ذخیره کنید و هنگام ارسال درخواست، آن را از همان محل بخوانید.
به‌دنبال رشد کسب و کارتان هستید؟ ملی پیامک به شما امکان جذب، نگهداری و تعامل با مشتری را می‌دهد.
ثبت نام و ارسال پیامک ثبت نام در کمتر از 1 دقیقه
بحث دربارۀ این مقاله را شما آغاز کنید! ارسال دیدگاه

تیم تحریریۀ ملی پیامک

هر آن‌چه در ملی پیامک می‌خوانید، حاصل یک کوشش تیمی است؛ کوششی در جهت یافتن درست‌ترین پاسخ به مسائل و انتقال آن به شما. ما امیدواریم تلاش‌های مجموعۀ ما بتواند تأثیری هر چند کوچک در بهبود کیفیت فضای دیجیتال ایران داشته باشد.
دربارۀ تیم ما بیشتر بدانید.
بدون دیدگاه
بحث درباره این مقاله را شما آغاز کنید!
ارسال دیدگاه

ارسال پیامک از اینترنت

ارسال و دریافت پیامک تکی و انبوه با شماره‌های اینترنتی
مشاهده تعرفه‌ها فعالسازی در کمتر از 1 دقیقه

ثبت نام

در کمتر از 1 دقیقه ارسال پیامک را شروع کنید.

شرایط و قوانین را مطالعه کرده و قبول دارم.

پنل خود را انتخاب کنید