add voice service call service and more
This commit is contained in:
130
src/GreenHome.Sms.Ippanel/README.md
Normal file
130
src/GreenHome.Sms.Ippanel/README.md
Normal file
@@ -0,0 +1,130 @@
|
||||
# GreenHome.Sms.Ippanel
|
||||
|
||||
سرویس ارسال پیامک IPPanel برای پروژه GreenHome
|
||||
|
||||
## نصب و راهاندازی
|
||||
|
||||
### 1. اضافه کردن Reference به پروژه
|
||||
|
||||
در فایل `.csproj` پروژه خود:
|
||||
|
||||
```xml
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\GreenHome.Sms.Ippanel\GreenHome.Sms.Ippanel.csproj" />
|
||||
</ItemGroup>
|
||||
```
|
||||
|
||||
### 2. ثبت سرویس در Program.cs
|
||||
|
||||
```csharp
|
||||
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
|
||||
|
||||
```json
|
||||
{
|
||||
"IppanelSms": {
|
||||
"BaseUrl": "https://edge.ippanel.com/v1",
|
||||
"AuthorizationToken": "YOUR_IPPANEL_TOKEN_HERE",
|
||||
"DefaultSender": "10001001"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## استفاده
|
||||
|
||||
### تزریق سرویس
|
||||
|
||||
```csharp
|
||||
public class MyController : ControllerBase
|
||||
{
|
||||
private readonly ISmsService smsService;
|
||||
|
||||
public MyController(ISmsService smsService)
|
||||
{
|
||||
this.smsService = smsService;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### ارسال Webservice SMS
|
||||
|
||||
```csharp
|
||||
var request = new WebserviceSmsRequest
|
||||
{
|
||||
Sender = "10001001",
|
||||
Recipient = "09123456789", // یا چند شماره با کاما: "09123456789,09187654321"
|
||||
Message = "سلام، این یک پیامک تست است"
|
||||
};
|
||||
|
||||
var result = await smsService.SendWebserviceSmsAsync(request);
|
||||
// result.BulkId برای ردیابی پیامک استفاده میشود
|
||||
```
|
||||
|
||||
### ارسال Pattern SMS
|
||||
|
||||
```csharp
|
||||
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` باقی میمانند و نیازی به تغییر کدهای استفادهکننده نیست.
|
||||
|
||||
Reference in New Issue
Block a user