NiazpardazSms 1.0.2
dotnet add package NiazpardazSms --version 1.0.2
NuGet\Install-Package NiazpardazSms -Version 1.0.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NiazpardazSms" Version="1.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NiazpardazSms" Version="1.0.2" />
<PackageReference Include="NiazpardazSms" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NiazpardazSms --version 1.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: NiazpardazSms, 1.0.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package NiazpardazSms@1.0.2
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NiazpardazSms&version=1.0.2
#tool nuget:?package=NiazpardazSms&version=1.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
NiazpardazSms SDK for .NET
کتابخانه رسمی .NET برای کار با API پیامکی نیازپرداز
نصب
Package Manager
Install-Package NiazpardazSms
.NET CLI
dotnet add package NiazpardazSms
شروع سریع
using NiazpardazSms;
// ساخت کلاینت با API Key
var client = new NiazpardazSmsClient("YOUR_API_KEY");
// ارسال پیامک
var result = await client.SendAsync(
fromNumber: "10001234",
toNumber: "09123456789",
message: "سلام از نیازپرداز!"
);
if (result.ResultCode == SendResultCode.SendWasSuccessful)
{
Console.WriteLine($"BatchSmsId: {result.BatchSmsId}");
}
امکانات
ارسال پیامک تکی
var result = await client.SendAsync(
fromNumber: "10001234",
toNumber: "09123456789",
message: "متن پیامک",
isFlash: false,
sendDelay: null
);
Console.WriteLine($"شناسه ارسال: {result.BatchSmsId}");
Console.WriteLine($"وضعیت: {result.ResultCode}");
ارسال گروهی (یک متن به چند شماره)
var result = await client.SendBulkAsync(
fromNumber: "10001234",
toNumbers: new[] { "09123456789", "09198765432" },
message: "پیام گروهی",
isFlash: false
);
Console.WriteLine($"شناسه ارسال: {result.BatchSmsId}");
Console.WriteLine($"وضعیت: {result.ResultCode}");
ارسال LikeToLike (هر شماره پیام مخصوص خودش)
var result = await client.SendSmsLikeToLikeAsync(
fromNumber: "10001234",
toNumbers: new[] { "09123456789", "09198765432" },
messages: new[] { "سلام علی جان", "سلام رضا جان" }
);
Console.WriteLine($"SmsId: {result.SmsId}");
ارسال پیامک صوتی OTP
var result = await client.SendVoiceOtpAsync(
fromNumber: "10001234",
toNumber: "09123456789",
otp: "12345"
);
Console.WriteLine($"شناسه ارسال: {result.BatchSmsId}");
Console.WriteLine($"وضعیت: {result.ResultCode}");
گزارش تحویل ارسال گروهی
var delivery = await client.GetBatchDeliveryAsync(
batchSmsId: 123456,
pageIndex: 1,
pageSize: 100
);
if (delivery.ResultCode == DeliveryResultCode.Success)
{
for (int i = 0; i < delivery.Numbers.Length; i++)
{
Console.WriteLine($"{delivery.Numbers[i]}: {delivery.DeliveryStatus[i]}");
}
}
گزارش تحویل ارسال LikeToLike
var delivery = await client.GetDeliveryLikeToLikeAsync(smsId: 789);
if (delivery.ResultCode == DeliveryResultCode.Success)
{
for (int i = 0; i < delivery.Numbers.Length; i++)
{
Console.WriteLine($"{delivery.Numbers[i]}: {delivery.DeliveryStatus[i]}");
}
}
اعتبار
var credit = await client.GetCreditAsync();
if (credit.ResultCode == CreditResultCode.Success)
{
Console.WriteLine($"اعتبار: {credit.Credit}");
}
شمارههای فرستنده
var senders = await client.GetSenderNumbersAsync();
foreach (var sender in senders.Senders)
{
Console.WriteLine(sender);
}
تعداد پیامکهای دریافتی
var inboxCount = await client.GetInboxCountAsync(isRead: false);
Console.WriteLine($"تعداد: {inboxCount.InboxCount}");
لیست پیامکها
var messageResult = await client.GetMessagesAsync(
messageType: 1,
fromNumbers: "10001234",
pageIndex: 1,
pageSize: 50
);
if (messageResult.ResultCode == 0)
{
foreach (var message in messageResult.Messages)
{
Console.WriteLine($"متن پیامک: {message.Content}");
}
}
دریافت پیامکها
var messageResult = await client.GetMessagesByDateRangeAsync(
messageType: 1,
fromNumbers: "10001234",
fromDate: DateTime.Today.AddDays(-1),
toDate: DateTime.Today
);
if (messageResult.ResultCode == 0)
{
foreach (var message in messageResult.Messages)
{
Console.WriteLine($"متن پیامک: {message.Content}");
}
}
لیست سیاه مخابرات (بررسی یک شماره)
var isBlack = await client.NumberIsInTelecomBlacklistAsync("09123456789");
Console.WriteLine($"در لیست سیاه: {isBlack.IsBlack}");
لیست سیاه مخابرات (استخراج شمارههای لیست سیاه از یک لیست)
var blacklist = await client.ExtractTelecomBlacklistNumbersAsync(
new[] { "09123456789", "09198765432", "09351234567" }
);
if (blacklist.ResultCode == BlacklistResultCode.Success)
{
foreach (var number in blacklist.BlackListNumbers)
{
Console.WriteLine(number);
}
}
بررسی محتوای پیامک
var check = await client.CheckSmsContentAsync("متن پیامک تست");
Console.WriteLine($"متن معتبر است: {check.IsValid}");
کدهای نتیجه
کدهای نتیجه ارسال (SendResultCode)
| کد | مقدار | توضیحات |
|---|---|---|
| 0 | SendWasSuccessful | ارسال موفق ✅ |
| 1 | InvalidUserNameOrPassword | نام کاربر یا رمز نامعتبر |
| 2 | UserBlocked | کاربر مسدود |
| 3 | InvalidSenderNumber | شماره فرستنده نامعتبر |
| 4 | LimitationInDailySend | محدودیت روزانه |
| 5 | LimitationInRecieverCount | حداکثر 1000 گیرنده |
| 6 | SenderLineIsInactive | خط غیرفعال |
| 7 | SmsContentFilteredWordsIsIncluded | کلمات فیلتر شده |
| 8 | NoCredit | اعتبار ناکافی |
| 9 | SystemBeingUpdated | در حال بروزرسانی |
| 10 | WebServiceNoActive | وب سرویس غیرفعال |
| 11 | NotImplemented | پیاده سازی نشده |
| 12 | LikeToLikeSendReceiverAndMessageCountShouldEqual | تعداد پیام و شماره نابرابر |
| 13 | LimitationInMesssageContentCount | حداکثر 100 پیام |
| 14 | UserTariffNotDetermined | تعرفه تعریف نشده |
| 15 | DuplicateSendSms | ارسال تکراری |
| 16 | InvalidNumberEmptyOrBlackList | شماره نامعتبر یا بلاک لیست |
| 17 | TextNotFound | متن خالی |
| 18 | NotValidTemplateFound | مغایرت با قالب |
| 19 | UserExpired | کاربر منقضی |
| 20 | UserIsNotActive | کاربر غیرفعال |
| 21 | InvalidParameters | پارامتر نامعتبر |
| 22 | IpBlocked | آی پی بلاک شده |
| 23 | EnqueueFailed | خطا در صف ارسال |
| 24 | DuplicateRequestThreshold | درخواست تکراری |
| 25 | InvalidApiKey | ApiKey نامعتبر |
| 26 | ErrorCreateVoiceFile | خطا در ساخت فایل صوتی |
کدهای نتیجه گزارش تحویل (DeliveryResultCode)
| کد | مقدار | توضیحات |
|---|---|---|
| 0 | Success | موفق ✅ |
| -1 | ServiceConnectionError | خطا در ارتباط با سرویس دهنده |
| -2 | InvalidBatchSmsId | پیام با این کد وجود ندارد |
| -3 | ReportExpired | مهلت یک هفته ای گزارش پایان یافته |
| -4 | MessageInQueue | پیام در صف ارسال مخابرات است |
| -5 | TooEarly | حداقل یک دقیقه بعد از ارسال اقدام نمایید |
| -6 | IpBlocked | آی پی بلاک شده |
| -7 | InvalidApiKey | ApiKey نامعتبر |
وضعیت تحویل پیامک (SmsDeliveryStatus)
| کد | مقدار | توضیحات |
|---|---|---|
| 0 | SentToTelecom | ارسال شده به مخابرات |
| 1 | Delivered | رسیده به گوشی ✅ |
| 2 | NotDelivered | نرسیده به گوشی |
| 3 | SmsFailed | خطای مخابراتی |
| 4 | UnknownError | خطای نامشخص |
| 5 | ReceivedByTelecom | رسیده به مخابرات |
| 6 | NotReceivedByTelecom | نرسیده به مخابرات |
| 7 | BlackListed | مسدود شده توسط مقصد |
| 8 | Unknown | نامشخص |
| 9 | RejectedByTelecom | مخابرات پیام را مردود اعلام کرد |
| 10 | Canceled | کنسل شده توسط اپراتور |
| 11 | NotSent | ارسال نشده |
| 12 | NoTelegram | تلگرام ندارد |
| 13 | InQueue | در صف ارسال |
کدهای نتیجه اعتبار (CreditResultCode)
| کد | مقدار | توضیحات |
|---|---|---|
| 0 | Success | موفق ✅ |
| -1 | InvalidCredentials | نام کاربری و رمز عبور صحیح نمی باشد |
| -2 | UserDisabled | کاربر غیرفعال می باشد |
| -6 | IpBlocked | آی پی بلاک شده |
| -7 | InvalidApiKey | ApiKey نامعتبر |
کدهای نتیجه لیست سیاه (BlacklistResultCode)
| کد | مقدار | توضیحات |
|---|---|---|
| 0 | Success | موفق ✅ |
| -1 | InvalidCredentials | نام کاربری و رمز عبور صحیح نمی باشد |
| -2 | UserDisabled | کاربر غیرفعال می باشد |
| -3 | EmptyNumbersArray | آرایه شماره ها خالی می باشد |
| -4 | MaxNumbersExceeded | حداکثر 1000 شماره |
| -6 | IpBlocked | آی پی بلاک شده |
| -7 | InvalidApiKey | ApiKey نامعتبر |
مدیریت خطا
using NiazpardazSms.Exceptions;
try
{
var result = await client.SendAsync("10001234", "09123456789", "تست");
if (result.ResultCode != SendResultCode.SendWasSuccessful)
{
Console.WriteLine($"خطا: {result.ResultCode}");
}
}
catch (NiazpardazApiException ex)
{
Console.WriteLine($"خطای API: {ex.Message}");
Console.WriteLine($"کد خطا: {ex.ErrorCode}");
}
catch (HttpRequestException ex)
{
Console.WriteLine($"خطای شبکه: {ex.Message}");
}
تنظیمات پیشرفته
استفاده از HttpClient سفارشی
var httpClient = new HttpClient();
httpClient.Timeout = TimeSpan.FromSeconds(30);
var client = new NiazpardazSmsClient("YOUR_API_KEY", httpClient);
Dependency Injection
// Program.cs
services.AddHttpClient<NiazpardazSmsClient>();
services.AddSingleton(sp =>
{
var httpClient = sp.GetRequiredService<IHttpClientFactory>()
.CreateClient(nameof(NiazpardazSmsClient));
return new NiazpardazSmsClient("YOUR_API_KEY", httpClient);
});
سازگاری
- .NET Framework 4.6.1+
- .NET Core 2.0+
- .NET 5/6/7/8/9/10+
- Xamarin
- Unity
مجوز
MIT License
پشتیبانی
- 📚 مستندات: https://niazpardaz-sms.com/webservice
- 🐛 گزارش باگ: GitHub Issues
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Newtonsoft.Json (>= 13.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.