コード例 #1
0
ファイル: SmsService.cs プロジェクト: Hamedlq/m_CoreApiPlus
        public string SendSmsMessages(string mobileBrief, string smsBody)
        {
            List <SMSirSentAndReceivedMessages.WebServiceSmsSend> sendDetails = new List <SMSirSentAndReceivedMessages.WebServiceSmsSend>();

            sendDetails.Add(new SMSirSentAndReceivedMessages.WebServiceSmsSend()
            {
                IsFlash     = false,
                MessageBody = smsBody,
                MobileNo    = long.Parse(mobileBrief)
            });
            SMSirSentAndReceivedMessages.SendReceiveSoapClient ws = new SMSirSentAndReceivedMessages.SendReceiveSoapClient();
            DateTime    sendSince = DateTime.Now;
            string      message   = string.Empty;
            ArrayOfLong result    = ws.SendMessage(UserName, UserPassword, sendDetails.ToArray(), 47370, sendSince, ref message);

            if (!string.IsNullOrWhiteSpace(message))
            {
                throw new Exception(message);
            }
            StringBuilder sbResult = new StringBuilder();

            foreach (var current in result)
            {
                sbResult.Append(current + ",");
            }
            var res = sbResult.ToString();

            return(res);
        }
コード例 #2
0
        public static async Task <string> SendSmsAsync(string to, string content)
        {
            var reciver = new ArrayOfString();
            var status  = new ArrayOfbyte();
            var smsId   = new ArrayOfLong();

            reciver.Add(to);

            var sendResult = await new SendSoapClient().SendSmsAsync(_username, _password, reciver, _senderId, content, false, null, smsId, status);

            return($"{sendResult.Body.recId[0]}:{sendResult.Body.SendSmsResult}:{sendResult.Body.status[0]}");
        }
コード例 #3
0
        //public string SendSms(long[] telDestArr, string testoSMS, string alias = null, string IdSMS = null, bool InviaConAlias = false) {
        //public string SendSms(IList<SmsHQL> telDestArr, string testoSMS, string alias = null, string IdSMS = null, bool InviaConAlias = false) {
        public string SendSms(IList telDestArr, string testoSMS, string alias = null, string IdSMS = null, bool InviaConAlias = false)
        {
            var bRet = "FALSE";

            ArrayOfLong numbers = new ArrayOfLong();

            foreach (Hashtable tel in telDestArr)
            {
                numbers.Add(Convert.ToInt64(GetPhoneNumber(tel)));
            }

            //numbers.AddRange(telDestArr.Select(x => Convert.ToInt64(x.SmsPrefix + x.SmsNumber)).ToArray());

            try {
                var smsSettings = _orchardServices.WorkContext.CurrentSite.As <SmsSettingsPart>();

                // Imposto Guid univoco se la richiesta non arriva da SmsGateway
                if (String.IsNullOrEmpty(IdSMS))
                {
                    IdSMS = new Guid().ToString();
                }

                if (InviaConAlias)
                {
                    if (String.IsNullOrEmpty(alias))
                    {
                        alias = smsSettings.SmsFrom;
                    }
                }
                else
                {
                    alias = null;
                }

                SmsServiceReference.Sms sms = new SmsServiceReference.Sms {
                    DriverId          = smsSettings.MamDriverIdentifier,
                    SmsFrom           = (_orchardServices.WorkContext.CurrentUser != null?_orchardServices.WorkContext.CurrentUser.UserName:"******"),
                    MamHaveAlias      = InviaConAlias,
                    Alias             = alias,
                    SmsPrority        = smsSettings.SmsPrority ?? 0,
                    SmsValidityPeriod = smsSettings.SmsValidityPeriod ?? 3600,
                    ExternalId        = IdSMS,
                    SmsBody           = testoSMS,
                    SmsTipoCodifica   = 0,
                    SmsNumber         = numbers,
                };

                SmsServiceReference.SmsWebServiceSoapClient _service = CreateSmsService(smsSettings);

                // Place Holder
                List <SmsServiceReference.PlaceHolderMessaggio> listPH         = GetPlaceHolder(telDestArr, testoSMS);
                SmsServiceReference.PlaceHolderMessaggio[]      SmsPlaceHolder = null;
                if (listPH != null && listPH.Count > 0)
                {
                    SmsPlaceHolder = listPH.ToArray();
                }

                // Login
                SmsServiceReference.Login login = new SmsServiceReference.Login();
                login.User     = smsSettings.WsUsername;
                login.Password = smsSettings.WsPassword;
                login.DriverId = smsSettings.MamDriverIdentifier;

                var result = _service.SendSMS(login, sms, SmsPlaceHolder);

                //Log.Info(Metodo + " Inviato SMS ID: " + idSmsComponent);
                bRet = result;
            } catch (Exception ex) {
                Logger.Error(ex, ex.Message + " :: " + ex.StackTrace);
            }

            return(bRet);
        }
コード例 #4
0
ファイル: HomeController.cs プロジェクト: mostapha13/School
        private async Task <string> SendMessage(string mobile)
        {
            Random rnd  = new Random();
            var    code = rnd.Next(100000, 999999);

            verifications.Add(new VerificationCode()
            {
                Mobile = mobile,
                Code   = code.ToString(),
                Expire = DateTime.Now.AddSeconds(65)
            });

            SMSOnline.SendSoapClient client = new SMSOnline.SendSoapClient();

            var time = new TimeSpan(0, 50, 0);

            client.Endpoint.Binding.CloseTimeout   = time;
            client.Endpoint.Binding.OpenTimeout    = time;
            client.Endpoint.Binding.ReceiveTimeout = time;
            client.Endpoint.Binding.SendTimeout    = time;

            ArrayOfString mobiles = new ArrayOfString();

            mobiles.AddRange(new string[] { mobile });

            ArrayOfLong recId  = new ArrayOfLong();
            ArrayOfbyte status = new ArrayOfbyte();

            var result = await client.SendSmsAsync("int1", "int123", mobiles, "50001450", $"سامانه به روز رسانی اطلاعات مدارس\n {code}", false, "", recId, status);

            var id = result?.Body?.SendSmsResult;

            switch (id)
            {
            case 0:
                return("نام کاربری یا رمز عبور صحیح نمی باشد");

            case 1:
                return("");

            //return "پیامک ارسال شد";
            case 2:
                return("اعتبار کافی نیست");

            case 3:
                return("محدودیت در ارسال روزانه");

            case 4:
                return("محدودیت در حجم ارسال");

            case 5:
                return("شماره فرستنده معتبر نیست و یا غیرفعال می باشد");

            case 6:
                return("شماره موبایل صحیح جهت ارسال وجود ندارد");

            case 7:
                return("متن پیامک خالی می باشد");

            case 8:
                return("کاربر ارسال کننده و یا سازنده ی آن غیر فعال می باشد");

            case 9:
                return("تعداد شماره موبایل ها بیشتر از حد مجاز می باشد");

            case 100:
                return("شما مجاز به استفاده از وب سرویس نمی باشید");

            default:
                return("");
            }
        }