دسته بندی ها
01:44 1399/07/11

ارسال sms از طریق وب سرویس در Asp.net Core

مشخصات سوال کننده :
کاربر : hamid_b     امتیاز کاربر : 510     رتبه کاربر : 4
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 6982
پاسخ دهنده : Hamidyeza 11:59 1399/07/11

از شرکتی که وب سرویس رو خریداری میکنین، خودشون کدهایی که باید استفاده کنین رو در اختیارتون میذارن.

من خودم از شرکت کاوه نگار وب سرویس رو گرفتم. 

1000 تومان هم اعتبار آزمایشی رایگان در اختیارتون میذارن تا سرویس رو تست کنین

ویرایش شده در جمعه 11 مهر 1399 ساعت 13:11:04
به این پاسخ امتیاز بدهید    1
امتیاز: 15 رتبه: 48
پاسخ دهنده : saedbfd 13:33 1399/07/11

ارسال sms از طریق وب سرویس در Asp.net Core

 

ارسال پیامک در Asp

 

برای ارسال پیامک در Asp.net Core ابتدا نیاز هست که از شرکتهای ارائه دهنده یک پنل پیامکی خریداری کنید. برای این منظور سایتهای زیادی هستن که خدمات پیامکی ارائه میدن. مثل کاوه نگار، sms.ir، و ... که با یک سرچ ساده در گوگل میتونید لیستی از اونها رو پیدا کنید.

 

ارسال sms از طریق وب سرویس در Asp.net Core به صورت عملی

خب حالا یک مثال عملی از ارسال پیامک در Asp.net Core رو با هم می بینیم. در ابتدا شما باید یک پروژه از نوع وب و با Asp.net Core ایجاد کرده باشید. فرض می کنیم که از سایت کاوه نگار هم یک پنل تهیه کرده اید.

 

  • ابتدا یک پوشه به نام CommonServices در پروژه خود ایجاد کنید. در این پوشه یک کلاس به نام SmsSender و یک Interface به نام ISmsSender ایجاد کنید.

ارسال پیامک

 

  • در کلاس SmsSender برای ارسال پیامک کدهای زیر را بنویسید.
public class SmsSender : ISmsSender
{
    public async Task<string> SendSmsAsync(string message, string PhoneNumber)
    {
        try
        {
           HttpClient httpClient = new HttpClient();
           var httpResponse = await httpClient.GetAsync($"https://api.kavenegar.com/v1/YourCode/sms/send.json?receptor={PhoneNumber}&sender=YourNumber&message={message}");
        if (httpResponse.StatusCode == HttpStatusCode.OK)
              return "Success";
        else
              return "Failed";
        }
        catch
        {
           return "Error";
        }
    }
}

در قسمتی از کدهای بالا YourCode باید رشته مخصوص خودتون رو که از سایت دریافت می کنید رو قرار بدید. در بخش YourNumber هم باید شماره خطی که قرار است با آن پیامک ارسال شود و از پنل خود دریافت کرده اید را بنویسید.

 

  •  در اینترفیس ISmsSender هم کدهای زیر را بنویسید.
public interface ISmsSender
{
   Task<string> SendSmsAsync(string message, string PhoneNumber);
}

 

  • خب در اینجا یک کلاس و یک اینترفیس داریم که تشکیل یک Service را می دهند. بنابراین باید در کلاس startup این سرویس را تعریف و راه اندازی کنیم. در کلاس startup و در متد ConfigureService کد زیر را قرار دهید:
public void ConfigureServices(IServiceCollection services)
{
    services.AddScoped<ISmsSender, SmsSender>();
    services.AddControllersWithViews();
}
  • خب در حال حاضر شما به راحتی میتوانید از ارسال پیامک در پروژه خودتون استفاده کنید. کافیه که در هر کنترلی که میخواید پیامک ارسال کنید یک نمونه از Interface رو ایجاد کنید و پیامک خودتون رو ارسال کنید:
public class HomeController : Controller
{
    private readonly ISmsSender _smsSender;
    public HomeController(ISmsSender smsSender)
    {
        _smsSender = smsSender;
    }

    [HttpPost]
    public async Task<IActionResult> Register(string message, string PhoneNumber)
    {
        //
        await _smsSender.SendAuthSmsAsync(message, PhoneNumber);
    }

}

 

به این ترتیب شما میتونید عملیات ارسال sms از طریق وب سرویس در Asp.net Core رو به راحتی انجام بدید.

ویرایش شده در پنج شنبه 25 دی 1399 ساعت 14:06:49
به این پاسخ امتیاز بدهید    4
امتیاز: 1654 رتبه: 1
2 نظر
vahideh : با سلام اگه پنل خودمون رو از یه سایت دیگه گرفته باشیم مثل sibsms اون موقع در کلاس SmsSender خط 6 چی باید بنویسیم؟ ممنون

امتیاز کاربر : ‎−1   رتبه کاربر : 7059   تاریخ ثبت : 10:21 1400/03/31
mahmoodi : ممنونم توضیحات این قسمت کامل بود. میشه مرحله بعد رو هم توضیح بدهید بعد از اینکه پیام اومد و کاربر باید کد رو وارد کنه, این کد چگونه در سمت سرور تایید میشود؟

امتیاز کاربر : 0   رتبه کاربر : 7020   تاریخ ثبت : 02:04 1401/09/29
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود