128 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			128 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 
								 | 
							
								using APT.BaseData.Domain.Entities.FM;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Domain.IServices.OP;
							 | 
						|||
| 
								 | 
							
								using APT.Infrastructure.Api;
							 | 
						|||
| 
								 | 
							
								using APT.Infrastructure.Core;
							 | 
						|||
| 
								 | 
							
								using Newtonsoft.Json;
							 | 
						|||
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Net;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace APT.BaseData.Services.Services.OP
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    public class OPSmsService : CommonService, IOPSmsService
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        public OPSmsService(IRepository repository) : base(repository)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public bool SendNote(T_FM_NOTICE note)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            try
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                //Random r = new Random();
							 | 
						|||
| 
								 | 
							
								                //JSMSClient _smsClient = new JSMSClient("1cad1e6d2e226662f6388989", "692e9b7d38266a4f7220252d");
							 | 
						|||
| 
								 | 
							
								                //if (string.IsNullOrEmpty(note.MESSAGE_TEMPLATE_ID))
							 | 
						|||
| 
								 | 
							
								                //{
							 | 
						|||
| 
								 | 
							
								                //    JSMSResult result = _smsClient.SendTemplateMessage(new TemplateMessage
							 | 
						|||
| 
								 | 
							
								                //    {
							 | 
						|||
| 
								 | 
							
								                //        Mobile = note.TEL,
							 | 
						|||
| 
								 | 
							
								                //        TemplateId = 148580,//模板id是在极光平台上申请的
							 | 
						|||
| 
								 | 
							
								                //        TemplateParameters = new Dictionary<string, string>
							 | 
						|||
| 
								 | 
							
								                //        {
							 | 
						|||
| 
								 | 
							
								                //            { "date", note.CREATE_TIME.GetValueOrDefault().ToString("MM-dd HH:mm") },//报警时间
							 | 
						|||
| 
								 | 
							
								                //            { "msg",note.MESSAGE},
							 | 
						|||
| 
								 | 
							
								                //            { "msgid",r.Next(1,100).ToString()},//描述
							 | 
						|||
| 
								 | 
							
								                //            { "server","optiEnergy"}//报警端
							 | 
						|||
| 
								 | 
							
								                //        }
							 | 
						|||
| 
								 | 
							
								                //    });
							 | 
						|||
| 
								 | 
							
								                //    return result.Succeeded;
							 | 
						|||
| 
								 | 
							
								                //}
							 | 
						|||
| 
								 | 
							
								                //else
							 | 
						|||
| 
								 | 
							
								                //{
							 | 
						|||
| 
								 | 
							
								                //    JSMSResult result = _smsClient.SendTemplateMessage(new TemplateMessage
							 | 
						|||
| 
								 | 
							
								                //    {
							 | 
						|||
| 
								 | 
							
								                //        Mobile = note.TEL,
							 | 
						|||
| 
								 | 
							
								                //        TemplateId = Convert.ToInt32(note.MESSAGE_TEMPLATE_ID),//模板id是在极光平台上申请的
							 | 
						|||
| 
								 | 
							
								                //        TemplateParameters = new Dictionary<string, string>
							 | 
						|||
| 
								 | 
							
								                //        {
							 | 
						|||
| 
								 | 
							
								                //            { "code",note.MESSAGE}
							 | 
						|||
| 
								 | 
							
								                //        }
							 | 
						|||
| 
								 | 
							
								                //    });
							 | 
						|||
| 
								 | 
							
								                //    return result.Succeeded;
							 | 
						|||
| 
								 | 
							
								                //}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            catch (Exception ex)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                this.ThrowError("010001", $"{ex.Message};{ex.Source};{ex.StackTrace};{ex.InnerException}");
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            return true;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        public bool SendMessage(string phoneNumber, string code)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            //try
							 | 
						|||
| 
								 | 
							
								            //{
							 | 
						|||
| 
								 | 
							
								            //    T_FM_NOTICE notice = new T_FM_NOTICE()
							 | 
						|||
| 
								 | 
							
								            //    {
							 | 
						|||
| 
								 | 
							
								            //        ORG_ID = new Guid(LibUtils.ToString(ConfigurationManager.WexinSettings["OrgId"]).ToString()),
							 | 
						|||
| 
								 | 
							
								            //        MESSAGE = $"您的手机验证码:{code},有效期1分钟,请勿泄露。如非本人操作,请忽略此短信。谢谢!",
							 | 
						|||
| 
								 | 
							
								            //        TEL = phoneNumber,
							 | 
						|||
| 
								 | 
							
								            //        NOTICE_TYPE = 0,
							 | 
						|||
| 
								 | 
							
								            //        //MESSAGE_TEMPLATE_ID = "148580"
							 | 
						|||
| 
								 | 
							
								            //    };
							 | 
						|||
| 
								 | 
							
								            //    this.AddEntity(notice);
							 | 
						|||
| 
								 | 
							
								            //}
							 | 
						|||
| 
								 | 
							
								            //catch (Exception ex)
							 | 
						|||
| 
								 | 
							
								            //{
							 | 
						|||
| 
								 | 
							
								            //    throw ex;
							 | 
						|||
| 
								 | 
							
								            //}
							 | 
						|||
| 
								 | 
							
								            return true;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 极光短信返回实体类。
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        private class JSMSResult
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            //{\"msg_id\":605999989525}
							 | 
						|||
| 
								 | 
							
								            //{"error":{"code":50013,"message":"invalid temp_id"}}
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 发送成功消息Id。
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            public long Msg_Id { get; set; }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 错误信息。
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            public ErrorResult Error { get; set; }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 是否发送成功。
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            public bool Succeeded { get; private set; }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            //public static implicit operator JSMSResult(HttpResponse response)
							 | 
						|||
| 
								 | 
							
								            //{
							 | 
						|||
| 
								 | 
							
								            //    var result = JsonConvert.DeserializeObject<JSMSResult>(response.Content);
							 | 
						|||
| 
								 | 
							
								            //    result.Succeeded = response.StatusCode == HttpStatusCode.OK;
							 | 
						|||
| 
								 | 
							
								            //    return result;
							 | 
						|||
| 
								 | 
							
								            //}
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 极光短信错误实体类
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        private class ErrorResult
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 错误编码。
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            public int Code { get; set; }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 错误消息
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            public string Message { get; set; }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |