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 برای ثبت سرویس
نکات مهم
- توکن IPPanel: حتماً توکن معتبر خود را از پنل IPPanel دریافت و در تنظیمات قرار دهید
- Webservice SMS: میتوانید چند گیرنده را با کاما جدا کنید
- Pattern SMS: معمولاً یک گیرنده در هر درخواست پشتیبانی میشود
- خطاها: تمام خطاها لاگ میشوند و به صورت Exception پرتاب میشوند
استفاده در پروژههای دیگر
این پروژه مستقل است و میتوانید آن را در هر پروژه .NET دیگری استفاده کنید:
- پروژه را به Solution خود اضافه کنید
- Reference را اضافه کنید
GreenHome.Applicationرا نیز Reference کنید (برای Interface و DTOs)- سرویس را ثبت کنید
تغییر سرویس SMS
اگر بخواهید از سرویس SMS دیگری استفاده کنید:
- یک پیادهسازی جدید از
ISmsServiceایجاد کنید - در
Program.csبه جایAddIppanelSmsاز متد ثبت سرویس جدید استفاده کنید
Interface و DTOs در GreenHome.Application باقی میمانند و نیازی به تغییر کدهای استفادهکننده نیست.