Files
GreenHomeBack/src/GreenHome.Sms.Ippanel/README.md

3.8 KiB

GreenHome.Sms.Ippanel

سرویس ارسال پیامک IPPanel برای پروژه GreenHome

نصب و راه‌اندازی

1. اضافه کردن Reference به پروژه

در فایل .csproj پروژه خود:

<ItemGroup>
  <ProjectReference Include="..\GreenHome.Sms.Ippanel\GreenHome.Sms.Ippanel.csproj" />
</ItemGroup>

2. ثبت سرویس در Program.cs

using GreenHome.Sms.Ippanel;

// روش 1: استفاده از Configuration (پیشنهادی)
builder.Services.AddIppanelSms(builder.Configuration);

// روش 2: استفاده از Configuration Section
builder.Services.AddIppanelSms(builder.Configuration.GetSection("IppanelSms"));

// روش 3: تنظیم دستی
builder.Services.AddIppanelSms(options =>
{
    options.BaseUrl = "https://edge.ippanel.com/v1";
    options.AuthorizationToken = "YOUR_TOKEN_HERE";
    options.DefaultSender = "10001001"; // اختیاری
});

3. تنظیمات در appsettings.json

{
  "IppanelSms": {
    "BaseUrl": "https://edge.ippanel.com/v1",
    "AuthorizationToken": "YOUR_IPPANEL_TOKEN_HERE",
    "DefaultSender": "10001001"
  }
}

استفاده

تزریق سرویس

public class MyController : ControllerBase
{
    private readonly ISmsService smsService;

    public MyController(ISmsService smsService)
    {
        this.smsService = smsService;
    }
}

ارسال Webservice SMS

var request = new WebserviceSmsRequest
{
    Sender = "10001001",
    Recipient = "09123456789", // یا چند شماره با کاما: "09123456789,09187654321"
    Message = "سلام، این یک پیامک تست است"
};

var result = await smsService.SendWebserviceSmsAsync(request);
// result.BulkId برای ردیابی پیامک استفاده می‌شود

ارسال Pattern SMS

var request = new PatternSmsRequest
{
    PatternCode = "your-pattern-code",
    Recipient = "09123456789",
    Variables = new Dictionary<string, string>
    {
        { "code", "12345" },
        { "name", "کاربر" }
    },
    Originator = "10001001" // اختیاری، اگر نباشد از DefaultSender استفاده می‌شود
};

var result = await smsService.SendPatternSmsAsync(request);

ساختار پروژه

GreenHome.Sms.Ippanel/
├── IppanelSmsService.cs      # پیاده‌سازی سرویس
├── IppanelSmsOptions.cs      # تنظیمات
└── ServiceCollectionExtensions.cs  # Extension Methods برای ثبت سرویس

نکات مهم

  1. توکن IPPanel: حتماً توکن معتبر خود را از پنل IPPanel دریافت و در تنظیمات قرار دهید
  2. Webservice SMS: می‌توانید چند گیرنده را با کاما جدا کنید
  3. Pattern SMS: معمولاً یک گیرنده در هر درخواست پشتیبانی می‌شود
  4. خطاها: تمام خطاها لاگ می‌شوند و به صورت Exception پرتاب می‌شوند

استفاده در پروژه‌های دیگر

این پروژه مستقل است و می‌توانید آن را در هر پروژه .NET دیگری استفاده کنید:

  1. پروژه را به Solution خود اضافه کنید
  2. Reference را اضافه کنید
  3. GreenHome.Application را نیز Reference کنید (برای Interface و DTOs)
  4. سرویس را ثبت کنید

تغییر سرویس SMS

اگر بخواهید از سرویس SMS دیگری استفاده کنید:

  1. یک پیاده‌سازی جدید از ISmsService ایجاد کنید
  2. در Program.cs به جای AddIppanelSms از متد ثبت سرویس جدید استفاده کنید

Interface و DTOs در GreenHome.Application باقی می‌مانند و نیازی به تغییر کدهای استفاده‌کننده نیست.