برای راه اندازی پنل پیامکی در ابتدا باید یکی از سامانه های پیامکی زیر گرفته شود
سرویس دهندگان
پارسا (قاصدك)
در مورد اكانت اين شركت ، بايستي ارسال وب سرويس توسط پشتيباني آنها ابتدا فعال شود تا خروجي مناسب گرفته شود
(*) با توجه به اینکه برای مشتریان جدید از این سرویس دهنده استفاده شده اولویت با این سرویس دهنده می باشد
اطلاعات مورد نیاز جهت راه اندازی پنل
- شماره خط SmsNumber
- اپراتور وب سرویس SmsOperator
- یوزر وب سرویس SmsUsername
- پسورد وب سرویس SmsPassword
نصب برنامه SMSSender
برنامه SMSSender.rar را دانلود کرده و در سرور مشتري قرار داده
و دسترسی به پوشه را everyone میکنیم و در فایل کانفیگ مشابه زیر مقادیر و کانکشن استرینگ را تنظیم می کنیم
تنظیمات جدول CRM.SmsConfig
در اين جدول بايستي تنظيمات مربوط به سرويس دهنده وارد شود
معمولا این سه رکورد وجود دارند ، همیشه باید در رکورد آخر اطلاعاتی که از مشتری دریافت کرده ایم ثبت شود - می توان از آپدیت زیر برای این رکورد استفاده کرد :
update [CRM].[SmsConfig] set SmsUsername='Uname',SmsOperator='asanak',SmsPassword='110110110',SmsNumber='123456789' where SmsConfig_ID=3
ایجاد جاب ده دقیقه ای برای ارسال پیامک
در کد زیر باید مسیر فایل اجرایی smssender را در خط 39 مشخص کنیم
همینطور نام دیتابیس در خط بعدی آن باید تنظیم شود
USE [msdb]
GO
/****** Object: Job [SmsSender] Script Date: 27/04/2019 5:37:21 PM ******/
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** Object: JobCategory [[Uncategorized (Local)]] Script Date: 27/04/2019 5:37:21 PM ******/
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'[Uncategorized (Local)]' AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'[Uncategorized (Local)]'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
END
DECLARE @jobId BINARY(16)
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'SmsSender',
@enabled=1,
@notify_level_eventlog=2,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N'No description available.',
@category_name=N'[Uncategorized (Local)]',
@owner_login_name=N'sa', @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [Exec FileRecept] Script Date: 27/04/2019 5:37:21 PM ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Exec FileRecept',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=N'TSQL',
@command=N'EXEC master..xp_CMDShell ''D:\ShareFolder\SMSSender\iMaster.ERP.SmsSender.Console.exe''',
@database_name=N'iMaster_Danlex_SAM',
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'timerq',
@enabled=1,
@freq_type=4,
@freq_interval=1,
@freq_subday_type=4,
@freq_subday_interval=10,
@freq_relative_interval=0,
@freq_recurrence_factor=0,
@active_start_date=20120722,
@active_end_date=99991231,
@active_start_time=80000,
@active_end_time=235959,
@schedule_uid=N'814b1260-0bfb-446e-8776-3909a5adf373'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:
GO
اجراي دستور زير (برای اجرای جاب)
-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO
تست نصب و ارسال
رکوردهایی که برای ارسال پیامک در جدول [CRM].[Sms] ثبت می شوند ، در صورت اجرای برنامه سندر به وب سرویس منتقل می شوند
در صورتی که پیامک توسط برنامه ارسال شود ، فیلد IsSended مقدار یک می گیرد
در صورتی که با موفقیت ارسال شود ، از طرف وب سرویس کدی را دریافت می کند که در فیلد SendID با مقداری غیر صفر ثبت می شود
دقت شود كه ستون SmsConfig_ID مشخص مي كند كه بر اساس كدام سرويس دهنده ارسال انجام شود که طبق بندهای قبلی روی 3 باید تنظیم شود
در فیلد SmsText متن مورد نظر و در SmsNumber شماره شخصی که باید پیامک ارسال شود
بنابراین باید پس از ایجاد یک رکورد در این جدول ،یا برنامه را به صورت دستی یک بار اجرا کرد ، یا جاب ایجاد شده را به صورت دستی اجرا کنیم
پس از اجرا باید متن وارد شده به شماره مورد نظر پیامک شود
INSERT INTO [CRM].[Sms]
(
[IsDeleted],
[CreateUserID],
[CreateDate],
[UpdateUserID],
[Contacts_ID],
[SmsText],
[SmsNumber],
[SendDate],
[ExpDate],
[IsSended],
[IsEditable],
[SmsKey],
[SmsConfig_ID],
[UpdateDate],
[PosCustomers_ID],
[DeprowID],
[DepartmentInfo_ID],
[WithOutSendTimeLimit],
[PlanSendDate],
[DeletedDate]
)
VALUES
(
0, NULL, GETDATE(), NULL, NULL,
'Test sms Sender 1'
, '0936915915',GETDATE(), GETDATE()+1, 0, 0, '',3,
GETDATE(), NULL, NULL, NULL, 0, GETDATE(), NULL
);
تست ارتباط با وب سرویس با نرم افزار Postman
وب سرویس آسانک
https://panel.asanak.com/webservice/v1rest/sendsms
نکته : در تب Body باید از تب x-www-form-urlencoded استفاده کنید و برای ورود مقادیر نیازی به نقل قول نیست :
username:Uname
password:110110110
Source:123456789
Message:Test For Send Message
destination:0936915915
در صورتی که با موفقیت ارسال شود ، کدی را در ریسپانس برمی گرداند که آیدی ثبت پیامک می باشد ؛ این کد همان کدی هست که در هنگام ارسال با برنامه سندر در فیلد SendID ثبت می شود
نکات
- سروری که برنامه سندر روی آن اجرا می شود باید دسترسی اینترنت داشته باشد
- در صورت نیاز به محدودیت بیشتر و مسایل امنیتی می توان تنها دسترسی به آدرس url وب سرویس را آزاد کرد
- در صورتی که نیاز به اجرای برنامه سندر روی سرور دیگری که اینترنت دارد داشته باشیم ، باید نصب برنامه روی سرور مورد نظر انجام گیرد
و فایل کانفیک آن برای دیتابیس تنظیم شود
و بعد هم در جاب مسیر فایل سندر را در سرور دیگر به درستی تعیین کنیم (مسیری که از سرور دیتابیس بتوان فایل سندر را اجرا کرد)
برای این کار باید فولدر مربوط به برنامه شیر شود
1 Comment
Naser Omidvar
ارسال پيامك به مشتريان
SMS
PTCSMSSender
نصب smsSender