Exemplo n.º 1
0
        /// <summary>
        /// 查询发送记录
        /// </summary>
        /// <param name="bizId"></param>
        /// <returns></returns>
        public QuerySendDetailsResponse querySendDetails(YaeherSendMsm sendMsmInfo)
        {
            //初始化acsClient,暂不支持region化
            IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);

            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
            IAcsClient acsClient = new DefaultAcsClient(profile);
            //组装请求对象
            QuerySendDetailsRequest request = new QuerySendDetailsRequest();

            //必填-号码
            request.PhoneNumber = sendMsmInfo.PhoneNumbers;
            //必填-发送日期 支持30天内记录查询,格式yyyyMMdd
            request.SendDate = DateTime.Now.ToString("yyyyMMdd");
            //必填-页大小
            request.PageSize = 10;
            //必填-当前页码从1开始计数
            request.CurrentPage = 1;
            QuerySendDetailsResponse querySendDetailsResponse = null;

            try
            {
                querySendDetailsResponse = acsClient.GetAcsResponse(request);
            }
            catch (ServerException e)
            {
                throw e;
            }
            catch (ClientException e)
            {
                throw e;
            }
            return(querySendDetailsResponse);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 发送短信
        /// add by fruitchan
        /// update liuyu 2018/03/19
        /// 2016-12-18 00:12:30
        /// </summary>
        /// <param name="recNum">目标手机号,多个手机号可以逗号分隔</param>
        /// <param name="templateCode">管理控制台中配置的审核通过的短信模板的模板CODE(状态必须是验证通过)</param>
        /// <param name="paramString">短信模板中的变量;数字需要转换为字符串;个人用户每个变量长度必须小于15个字符。 例如:短信模板为:“接受短信验证码${no}”,此参数传递{“no”:”123456”},用户将接收到[短信签名]接受短信验证码123456</param>
        /// <returns>发送结果</returns>
        private static string SendSMS(string recNum, string templateCode, string paramString)
        {
            IClientProfile profile = DefaultProfile.GetProfile(regionIdForPop, AccessKeyID, AccessKeySecret);

            DefaultProfile.AddEndpoint(regionIdForPop, regionIdForPop, product, domain);
            IAcsClient client = new DefaultAcsClient(profile);
            // SingleSendSmsRequest request = new SingleSendSmsRequest();
            SendSmsRequest request = new SendSmsRequest();

            try
            {
                request.SignName     = "我要去度假";
                request.TemplateCode = templateCode;
                //request.RecNum = recNum;
                //request.ParamString = paramString;
                //SingleSendSmsResponse httpResponse = client.GetAcsResponse(request);
                request.PhoneNumbers  = recNum;
                request.TemplateParam = paramString;
                SendSmsResponse httpResponse = client.GetAcsResponse(request);
                if (httpResponse.HttpResponse.Status == 200)
                {
                    return("ok");
                }
            }
            catch (ServerException se)
            {
                return("发送短信频繁,请1小时后再试!");
            }
            catch (ClientException ce)
            {
                return("发送短信频繁,请1小时后再试!");
            }

            return("发送短信失败!");
        }
Exemplo n.º 3
0
        /// <summary>
        /// 发送验证码
        /// </summary>
        /// <param name="phoneNumber">手机号</param>
        /// <param name="SMSCode">验证码</param>
        public static string SendMessage(string phoneNumber, string SMSCode)
        {
            string         Result  = string.Empty;
            IClientProfile profile = DefaultProfile.GetProfile("cn-hanghzou", accessKeyId, accessKeySeret);

            DefaultProfile.AddEndpoint("cn-hanghzou", "cn-hanghzou", product, domain);
            IAcsClient     acsClient = new DefaultAcsClient(profile);
            SendSmsRequest request   = new SendSmsRequest();

            try
            {
                //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
                request.PhoneNumbers = phoneNumber;
                //必填:短信签名-可在短信控制台中找到
                request.SignName = "正品汇";
                //必填:短信模板-可在短信控制台中找到
                request.TemplateCode = "SMS_67206006";
                //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
                request.TemplateParam = "{\"code\":\"" + SMSCode + "\"}";
                //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
                //request.OutId = "yourOutId";
                //请求失败这里会抛ClientException异常
                SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request);
                Result = sendSmsResponse.Code;
            }
            catch (Exception)
            {
                throw;
            }

            return(Result);
        }
Exemplo n.º 4
0
        public String accessKeySecret = "hNHBRsNbOCbyyK0XVyVnj64Xv9OwHN"; //阿里短信accessKeySecret,

        /// <summary>
        /// 发送短信
        /// </summary>
        public String SendMsm(YaeherSendMsm sendMsmInfo)
        {
            IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);

            //初始化ascClient,暂时不支持多region(请勿修改)
            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
            IAcsClient     acsClient = new DefaultAcsClient(profile);
            SendSmsRequest request   = new SendSmsRequest();

            try
            {
                //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式,发送国际/港澳台消息时,接收号码格式为00+国际区号+号码,如“0085200000000”
                request.PhoneNumbers = sendMsmInfo.PhoneNumbers;
                //必填:短信签名-可在短信控制台中找到
                request.SignName = "深圳怡禾健康管理有限公司";
                //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版
                request.TemplateCode = MsnTemplateCode(sendMsmInfo.MessageType);
                //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
                request.TemplateParam = sendMsmInfo.TemplateParam;
                //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
                request.OutId = sendMsmInfo.OutId;
                //请求失败这里会抛ClientException异常
                SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request);
                return(sendSmsResponse.Message);
            }
            catch (ServerException e)
            {
                return(e.ToString());
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// 短信查询
        /// </summary>
        /// <param name="phoneNumber">手机号</param>
        /// <param name="SMSCode">验证码</param>
        public static string querySendDetails(string phoneNumber)
        {
            //初始化acsClient,暂不支持region化
            IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySeret);

            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
            IAcsClient acsClient = new DefaultAcsClient(profile);
            //组装请求对象
            QuerySendDetailsRequest request = new QuerySendDetailsRequest();

            //必填-号码
            request.PhoneNumber = phoneNumber;
            //可选-流水号
            //request.BizId = bizId;
            //必填-发送日期 支持30天内记录查询,格式yyyyMMdd
            request.SendDate = DateTime.Now.ToString("yyyyMMdd");
            //必填-页大小
            request.PageSize = 10;
            //必填-当前页码从1开始计数
            request.CurrentPage = 1;
            QuerySendDetailsResponse querySendDetailsResponse = null;

            try
            {
                querySendDetailsResponse = acsClient.GetAcsResponse(request);
            }
            catch (ServerException e)
            {
            }
            catch (ClientException e)
            {
            }
            return(querySendDetailsResponse.TotalCount);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 短信发送记录查询接口
        /// 用于查询短信发送的状态,是否成功到达终端用户手机
        /// </summary>
        /// <param name="phone">手机号</param>
        /// <param name="bizId">发送流水号,从调用发送接口返回值中获取</param>
        /// <param name="date">短信发送日期格式yyyyMMdd,支持最近30天记录查询</param>
        /// <param name="currentPage">当前页码</param>
        /// <returns></returns>
        public QuerySendDetailsResponse QuerySendDetails(string phone, string bizId, DateTime date, int currentPage = 1)
        {
            //初始化acsClient,暂不支持region化
            IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", AccessKeyId, AccessKeySecret);

            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", Product, Domain);
            IAcsClient acsClient = new DefaultAcsClient(profile);
            //组装请求对象
            var request = new QuerySendDetailsRequest();

            //必填-号码
            request.PhoneNumber = phone;
            //可选-流水号
            request.BizId = bizId;
            //必填-发送日期 支持30天内记录查询,格式yyyyMMdd
            request.SendDate = date.ToString("yyyyMMdd");
            //必填-页大小
            request.PageSize = 50;
            //必填-当前页码从1开始计数
            request.CurrentPage = currentPage;
            QuerySendDetailsResponse querySendDetailsResponse = null;

            try
            {
                querySendDetailsResponse = acsClient.GetAcsResponse(request);
            }
            catch (ServerException)
            {
            }
            catch (ClientException)
            {
            }
            return(querySendDetailsResponse);
        }
Exemplo n.º 7
0
        public bool SendSms(string mobile, string code)
        {
            try
            {//产品名称:云通信短信API产品,开发者无需替换
                const String product = "Dysmsapi";
                //产品域名,开发者无需替换
                const String domain = "dysmsapi.aliyuncs.com";

                // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
                const String   accessKeyId     = "LTAISo5urmb4p9OA";
                const String   accessKeySecret = "6dQblI0XUTXIOheTZnvAive2g2hEss";
                IClientProfile profile         = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);
                DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
                IAcsClient      acsClient = new DefaultAcsClient(profile);
                SendSmsRequest  request   = new SendSmsRequest();
                SendSmsResponse response  = null;
                //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
                request.PhoneNumbers = mobile;
                //必填:短信签名-可在短信控制台中找到
                request.SignName = "校园之星原创文艺作品争霸";
                //必填:短信模板-可在短信控制台中找到
                request.TemplateCode = "SMS_148350075";
                //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
                request.TemplateParam = "{\"code\":\"" + code + "\"}";
                //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
                request.OutId = "yourOutId";
                //请求失败这里会抛ClientException异常
                response = acsClient.GetAcsResponse(request);
                return(true);
            }
            catch (Exception e)
            {
                return(false);
            }
        }
Exemplo n.º 8
0
        // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
        //const String accessKeyId = "LTAIUUvOWA7LmOVz";
        //const String accessKeySecret = "nIpEkq1SEvRndAcyGIqsLiisIQLo6e";
        public static SendSmsResponse sendSms(String accessKeyId, String accessKeySecret, SendSmsRequest request)
        {
            IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);

            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
            IAcsClient acsClient = new DefaultAcsClient(profile);
            //SendSmsRequest request = new SendSmsRequest();
            SendSmsResponse response = null;

            try
            {
                ////必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
                //request.PhoneNumbers = "13918416905";
                ////必填:短信签名-可在短信控制台中找到
                //request.SignName = "晟湾国际";
                ////必填:短信模板-可在短信控制台中找到
                //request.TemplateCode = "SMS_127515001";
                ////可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
                //request.TemplateParam = "{\"code\":\"123456\"}";
                ////可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
                //request.OutId = System.DateTime.Now.ToLongTimeString(); //"yourOutId";
                //请求失败这里会抛ClientException异常
                response = acsClient.GetAcsResponse(request);
            }
            catch (ServerException e)
            {
                throw e;
            }
            catch (ClientException e)
            {
                throw e;
            }
            return(response);
        }
Exemplo n.º 9
0
        static void Main(string[] args)
        {
            //以下字段换成自己的
            string regionId        = "cn-hangzhou";
            string accessKeyId     = "xxxxxxxx";
            string accessKeySecret = "xxxxxxxxxxxxxxxxxxxxxxxx";
            string signName        = "xxxxxxxxxx";
            string phoneNumbers    = "15xxxxxxxxx";
            string templateCode    = "SMS_73985016";
            string templateParam   = "{\"code\":\"123456\", \"product\":\"MyProduct\"}";


            IClientProfile clientProfile = DefaultProfile.GetProfile(regionId, accessKeyId, accessKeySecret);

            DefaultProfile.AddEndpoint(regionId, regionId, "Dysmsapi", "dysmsapi.aliyuncs.com");

            IAcsClient acsClient = new DefaultAcsClient(clientProfile);

            SendSmsRequest request = new SendSmsRequest();

            request.SignName      = signName;
            request.TemplateCode  = templateCode;
            request.PhoneNumbers  = phoneNumbers;
            request.TemplateParam = templateParam;

            try
            {
                SendSmsResponse response = acsClient.GetAcsResponse(request);
            }
            catch (Exception ex)
            {
            }
        }
Exemplo n.º 10
0
        private static SendSmsResponse SendSingleSms(string phoneNo, string name)
        {
            IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);

            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
            IAcsClient      acsClient = new DefaultAcsClient(profile);
            SendSmsRequest  request   = new SendSmsRequest();
            SendSmsResponse response  = null;

            try
            {
                //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
                request.PhoneNumbers = phoneNo;
                //必填:短信签名-可在短信控制台中找到
                request.SignName = "杨健";
                //必填:短信模板-可在短信控制台中找到
                request.TemplateCode = "SMS_142145674";
                //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
                request.TemplateParam = JsonHelper.Serialize(new { name = name, time = "2018-09-24" });
                //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
                request.OutId = "yourOutId";
                //请求失败这里会抛ClientException异常
                response = acsClient.GetAcsResponse(request);
            }
            catch (ServerException e)
            {
                Console.WriteLine(e.ErrorCode);
            }
            catch (ClientException e)
            {
                Console.WriteLine(e.ErrorCode);
            }
            return(response);
        }
Exemplo n.º 11
0
        public void SendSms(string destMobile, string code)
        {
            String         product         = "Dysmsapi";                                   //短信API产品名称
            String         domain          = "dysmsapi.aliyuncs.com";                      //短信API产品域名
            String         accessKeyId     = MiddleTier.BusinessConfig.SmsAccessKeyId;
            String         accessKeySecret = MiddleTier.BusinessConfig.SmsAccessKeySecret; //你的accessKeySecret
            IClientProfile profile         = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);

            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
            IAcsClient     acsClient = new DefaultAcsClient(profile);
            SendSmsRequest request   = new SendSmsRequest();

            try
            {
                //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为20个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
                request.PhoneNumbers = destMobile;
                //必填:短信签名-可在短信控制台中找到
                request.SignName = MiddleTier.BusinessConfig.SmsSignName;
                //必填:短信模板-可在短信控制台中找到
                request.TemplateCode = MiddleTier.BusinessConfig.SmsTemplateCode;
                //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
                request.TemplateParam = JsonUtilities.Serialize(new { code = code });
                //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
                request.OutId = "0";
                //请求失败这里会抛ClientException异常
                SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request);
            }
            catch (Exception e)
            {
                MiddleTier.LogManager.Error(e);
            }
        }
Exemplo n.º 12
0
        /// <summary>
        /// time: 2020-7-2
        ///  message:发送短信封装方法
        ///  author:Thomars
        /// </summary>
        /// <param name="PhoneNumbers">手机号码</param>
        /// <param name="SignName">短信签名</param>
        /// <param name="TemplateCode">模版编号</param>
        /// <param name="TemplateParam">模版</param>
        /// <returns></returns>
        public string SendSms(string PhoneNumbers, string SignName, string TemplateCode, string TemplateParam)
        {
            try
            {
                String         product         = "Dysmsapi";                       //短信API产品名称(短信产品名固定,无需修改)
                String         domain          = "dysmsapi.aliyuncs.com";          //短信API产品域名(接口地址固定,无需修改)
                String         accessKeyId     = "LTAI4GDFrkcmPmLMV9mPbrxa";       //"LTAIYcJupvlyI3Wj";//你的accessKeyId,参考本文档步骤2
                String         accessKeySecret = "g8LY92a1cFv0eDHJVOOq7IVMIu2A0E"; //"wwWGIV226n7O0Hmxyrah4zDqRq70RO";//你的accessKeySecret,参考本文档步骤2
                IClientProfile profile         = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);
                //IAcsClient client = new DefaultAcsClient(profile);
                // SingleSendSmsRequest request = new SingleSendSmsRequest();
                //初始化ascClient,暂时不支持多region(请勿修改)
                DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
                IAcsClient     acsClient = new DefaultAcsClient(profile);
                SendSmsRequest request   = new SendSmsRequest();

                //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式,发送国际/港澳台消息时,接收号码格式为00+国际区号+号码,如“0085200000000”
                request.PhoneNumbers = PhoneNumbers;
                //必填:短信签名-可在短信控制台中找到
                request.SignName = SignName;
                //必填:短信模板-可在短信控制台中找到
                request.TemplateCode = TemplateCode;
                //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
                request.TemplateParam = TemplateParam;      // "{\"name\":\"Tom\", \"code\":\"123\"}";
                                                            //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
                request.OutId = "yourOutId";                //可以忽略
                                                            //请求失败这里会抛ClientException异常
                SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request);
                return(sendSmsResponse.Message);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 13
0
        static void Main(string[] args)
        {
            DefaultProfile profile = DefaultProfile.GetProfile(regionIdForPop, accessId, accessSecret);

            profile.AddEndpoint(regionIdForPop, regionIdForPop, product, domain);
            IAcsClient     acsClient = new DefaultAcsClient(profile);
            SendSmsRequest request   = new SendSmsRequest();

            try
            {
                //request.SignName = "上云预发测试";//"管理控制台中配置的短信签名(状态必须是验证通过)"
                //request.TemplateCode = "SMS_71130001";//管理控制台中配置的审核通过的短信模板的模板CODE(状态必须是验证通过)"
                //request.RecNum = "13567939485";//"接收号码,多个号码可以逗号分隔"
                //request.ParamString = "{\"name\":\"123\"}";//短信模板中的变量;数字需要转换为字符串;个人用户每个变量长度必须小于15个字符。"
                //SingleSendSmsResponse httpResponse = client.GetAcsResponse(request);
                request.PhoneNumbers  = "18843406621";
                request.SignName      = "李华明";
                request.TemplateCode  = "SMS_140275003";
                request.TemplateParam = "{\"code\":\"dazhutizi\"}";
                request.OutId         = "xxxxxxxx";
                //请求失败这里会抛ClientException异常
                SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request);
                System.Console.WriteLine(sendSmsResponse.Message);
            }
            catch (ServerException e)
            {
                System.Console.WriteLine("ServerException");
            }
            catch (ClientException e)
            {
                System.Console.WriteLine("ClientException");
            }
        }
Exemplo n.º 14
0
        public static void SendMsg()
        {
            IClientProfile profile = DefaultProfile.GetProfile(regionIdForPop, accessId, accessSecret);

            DefaultProfile.AddEndpoint(regionIdForPop, regionIdForPop, product, domain);
            IAcsClient     acsClient = new DefaultAcsClient(profile);
            SendSmsRequest request   = new SendSmsRequest();

            try
            {
                //request.SignName = "上云预发测试";//"管理控制台中配置的短信签名(状态必须是验证通过)"
                //request.TemplateCode = "SMS_71130001";//管理控制台中配置的审核通过的短信模板的模板CODE(状态必须是验证通过)"
                //request.RecNum = "13567939485";//"接收号码,多个号码可以逗号分隔"
                //request.ParamString = "{\"name\":\"123\"}";//短信模板中的变量;数字需要转换为字符串;个人用户每个变量长度必须小于15个字符。"
                //SingleSendSmsResponse httpResponse = client.GetAcsResponse(request);
                request.PhoneNumbers  = "1350000000";
                request.SignName      = "xxxxxx";
                request.TemplateCode  = "SMS_xxxxxxx";
                request.TemplateParam = "{\"code\":\"123\"}";
                request.OutId         = "xxxxxxxx";
                //请求失败这里会抛ClientException异常
                SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request);
                //todo 接口错误码 https://help.aliyun.com/knowledge_detail/57717.html?spm=5176.doc56189.6.582.Emujs1
                //System.Console.WriteLine(sendSmsResponse.Message);
            }
            catch (ServerException e)
            {
                System.Console.WriteLine("ServerException");
            }
            catch (ClientException e)
            {
                System.Console.WriteLine("ClientException");
            }
        }
Exemplo n.º 15
0
    public static SendSmsResponse sendSms()
    {
        IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);

        DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
        IAcsClient      acsClient = new DefaultAcsClient(profile);
        SendSmsRequest  request   = new SendSmsRequest();
        SendSmsResponse response  = null;

        try
        {
            //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限�?1000个手机号�?,批量调用相对于单条调用及时�?�稍有延�?,验证码类型的短信推荐使用单条调用的方�?
            request.PhoneNumbers = "19940867612";
            //必填:短信签名-可在短信控制台中找到
            request.SignName = "小龙�?123";
            //必填:短信模板-可在短信控制台中找到
            request.TemplateCode = "SMS_135027712";
            //可�??:模板中的变量替换JSON�?,如模板内容为"亲爱�?${name},您的验证码为${code}"�?,此处的�?�为
            request.TemplateParam = "{\"code\":\"123456\"}";
            //可�??:outId为提供给业务方扩展字�?,�?终在短信回执消息中将此�?�带回给调用�?
            request.OutId = "yourOutId";
            //请求失败这里会抛ClientException异常
            response = acsClient.GetAcsResponse(request);
        }
        catch (ServerException e)
        {
            Console.WriteLine(e.ErrorCode);
        }
        catch (ClientException e)
        {
            Console.WriteLine(e.ErrorCode);
        }
        return(response);
    }
        public static string querySendDetailsByMobile(string mobile)
        {
            //初始化acsClient,暂不支持region化
            IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);

            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
            IAcsClient acsClient = new DefaultAcsClient(profile);
            //组装请求对象
            QuerySendDetailsRequest request = new QuerySendDetailsRequest();

            //必填-号码
            request.PhoneNumber = mobile;
            //可选-流水号
            // request.BizId = bizId;
            //必填-发送日期 支持30天内记录查询,格式yyyyMMdd
            request.SendDate = DateTime.Now.ToString("yyyyMMdd");
            //必填-页大小
            request.PageSize = 10;
            //必填-当前页码从1开始计数
            request.CurrentPage = 1;
            QuerySendDetailsResponse querySendDetailsResponse = null;

            try
            {
                querySendDetailsResponse = acsClient.GetAcsResponse(request);
            }
            catch (ServerException e)
            {
                return("查询出错!");
            }
            string json = "";

            json = "{\"data\":\"" + querySendDetailsResponse.SmsSendDetailDTOs[0].Content + "\"}";
            return(json);
        }
Exemplo n.º 17
0
    public static SendSmsResponse sendSms(string phone, string verCode)
    {
        IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);

        DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
        IAcsClient      acsClient = new DefaultAcsClient(profile);
        SendSmsRequest  request   = new SendSmsRequest();
        SendSmsResponse response  = null;

        try
        {
            //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
            request.PhoneNumbers = phone;
            //必填:短信签名-可在短信控制台中找到
            request.SignName = "大富豪";
            //必填:短信模板-可在短信控制台中找到
            request.TemplateCode = "SMS_133510033";
            //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
            request.TemplateParam = "{\"code\":\"" + verCode + "\"}";
            //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
            request.OutId = "yourOutId";
            //请求失败这里会抛ClientException异常
            response = acsClient.GetAcsResponse(request);
        }
        catch (Aliyun.Acs.Core.Exceptions.ServerException e)
        {
            Debug.Log(e.ErrorCode);
        }
        catch (ClientException e)
        {
            Debug.Log(e.ErrorCode);
        }
        return(response);
    }
Exemplo n.º 18
0
        public string Send(string name, string info, params string[] phoneNumbers)
        {
            IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", _configure.Id, _configure.Secret);

            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);

            IAcsClient     acsClient = new DefaultAcsClient(profile);
            SendSmsRequest request   = new SendSmsRequest();

            try
            {
                //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
                request.PhoneNumbers = string.Join(",", phoneNumbers);
                //必填:短信签名-可在短信控制台中找到
                request.SignName = "一幕";
                //必填:短信模板-可在短信控制台中找到
                request.TemplateCode = _configure.SmsType[name];
                //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
                request.TemplateParam = info;
                //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
                request.OutId = outId;
                //请求失败这里会抛ClientException异常
                SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request);
                return(sendSmsResponse.BizId);
            }
            catch (ServerException e)
            {
                throw e;
            }
            catch (ClientException e)
            {
                throw e;
            }
        }
Exemplo n.º 19
0
        public static bool VcodeIsSuccess(string session, string sig, string token, string scene)
        {
            bool result = false;
            //YOUR ACCESS_KEY、YOUR ACCESS_SECRET请替换成您的阿里云accesskey id和secret
            IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", "", "");
            IAcsClient     client  = new DefaultAcsClient(profile);

            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", "jaq", "jaq.aliyuncs.com");

            AfsCheckRequest request = new AfsCheckRequest();

            request.Platform = 3;       //必填参数,请求来源: 1:Android端; 2:iOS端; 3:PC端及其他
            request.Session  = session; // 必填参数,从前端获取,不可更改
            request.Sig      = sig;     // 必填参数,从前端获取,不可更改
            request.Token    = token;   // 必填参数,从前端获取,不可更改
            request.Scene    = scene;   // 必填参数,从前端获取,不可更改

            try
            {
                AfsCheckResponse response = client.GetAcsResponse(request);
                // TODO
                result = (bool)response.Data;
            }
            catch (Exception ex)
            {
                //Console.WriteLine(e.ToString());
                //throw new Exception(ex.Message);
                result = false;
            }

            return(result);
        }
Exemplo n.º 20
0
        public AliyunSmsClient()
        {
            var aliyunSmsSettting = AliyunSmsHelper.GetSettingsFunc();

            if (aliyunSmsSettting == null)
            {
                throw new SmsException("请配置短信服务相关配置!");
            }
            if (string.IsNullOrWhiteSpace(aliyunSmsSettting.SignName))
            {
                throw new SmsException("签名不能为空!");
            }
            try
            {
                AliyunSmsHelper.LoggerAction("Debug", "SmsSettings:" + JsonConvert.SerializeObject(aliyunSmsSettting));
                this.AliyunSmsSettting = aliyunSmsSettting;
                var product         = aliyunSmsSettting.Product;         //短信API产品名称(短信产品名固定,无需修改)
                var domain          = aliyunSmsSettting.Domain;          //短信API产品域名(接口地址固定,无需修改)
                var accessKeyId     = aliyunSmsSettting.AccessKeyId;     //你的accessKeyId,参考本文档步骤2
                var accessKeySecret = aliyunSmsSettting.AccessKeySecret; //你的accessKeySecret,参考本文档步骤2

                var profile = DefaultProfile.GetProfile(aliyunSmsSettting.RegionId, accessKeyId, accessKeySecret);
                DefaultProfile.AddEndpoint(aliyunSmsSettting.EndpointName, aliyunSmsSettting.RegionId, product, domain);
                AcsClient = new DefaultAcsClient(profile);
                AliyunSmsHelper.LoggerAction("Debug", "已创建AcsClient。");
            }
            catch (Exception ex)
            {
                AliyunSmsHelper.LoggerAction("Error", ex.ToString());
                throw new SmsException("配置出错,请检查配置!");
            }
        }
Exemplo n.º 21
0
        /// <summary>
        /// 发送短信验证码
        /// </summary>
        /// <returns></returns>
        private SendSmsResponse RequestSendFromApi(string phone)
        {
            IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", AccessKeyId, AccessKeySecret);

            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", Product, Domain);
            IAcsClient      acsClient = new DefaultAcsClient(profile);
            var             request   = new SendSmsRequest();
            SendSmsResponse response;

            try
            {
                //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
                request.PhoneNumbers = phone;
                //必填:短信签名-可在短信控制台中找到
                request.SignName = SignName;
                //必填:短信模板-可在短信控制台中找到
                request.TemplateCode = TemplateCode;
                //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
                request.TemplateParam = _templatePattern;
                //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
                request.OutId = OutId;
                //请求失败这里会抛ClientException异常
                response = acsClient.GetAcsResponse(request);
            }
            catch
            {
                return(null);
            }

            return(response);
        }
Exemplo n.º 22
0
        public static SendSmsResponse sendSms(AliyunSendMsgModel msg)
        {
            IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);

            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
            IAcsClient      acsClient = new DefaultAcsClient(profile);
            SendSmsRequest  request   = new SendSmsRequest();
            SendSmsResponse response  = null;

            try
            {
                //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
                request.PhoneNumbers = msg.PhoneNumbers;
                //必填:短信签名-可在短信控制台中找到
                request.SignName = msg.SignName;
                //必填:短信模板-可在短信控制台中找到
                request.TemplateCode = msg.TemplateCode;
                //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
                request.TemplateParam = msg.TemplateParam;
                //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
                request.OutId = msg.OutId;
                //请求失败这里会抛ClientException异常
                response = acsClient.GetAcsResponse(request);
            }
            catch (ServerException e)
            {
                Console.WriteLine(e.ErrorCode);
            }
            catch (ClientException e)
            {
                Console.WriteLine(e.ErrorCode);
            }
            return(response);
        }
Exemplo n.º 23
0
        private static string accessKeySecret = "NuW1BiPbBRxGTYvyB6zASvjUccaDOd"; //你的accessKeySecret

        private bool Send(string mobile, string template, string param)
        {
            var            result  = true;
            IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);

            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
            IAcsClient     acsClient = new DefaultAcsClient(profile);
            SendSmsRequest request   = new SendSmsRequest();

            try
            {
                //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为20个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
                request.PhoneNumbers = mobile;
                //必填:短信签名-可在短信控制台中找到
                request.SignName = "五福天下";
                //必填:短信模板-可在短信控制台中找到
                request.TemplateCode = template;
                //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
                request.TemplateParam = param;
                //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
                request.OutId = "21212121211";
                //请求失败这里会抛ClientException异常
                SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request);
            }
            catch (ServerException e)
            {
                result = false;
            }
            catch (ClientException e)
            {
                result = false;
            }

            return(result);
        }
Exemplo n.º 24
0
        internal static AliYunSmsResponse SMSRequest(SendSmsRequest request)
        {
            AliYunSmsResponse rsp     = new AliYunSmsResponse();
            IClientProfile    profile = DefaultProfile.GetProfile("cn-hangzhou", Config.accessKeyId, Config.accessKeySecret);

            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", Config.product, Config.domain);
            IAcsClient acsClient = new DefaultAcsClient(profile);

            try
            {
                SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request);
                rsp = CheckSMSCode.CheckResponse(sendSmsResponse.Code);
            }
            catch (ServerException e)
            {
                rsp.IsSuccess = false;
                rsp.ErrorMsg  = e.Message;
            }
            catch (ClientException e)
            {
                rsp.IsSuccess = false;
                rsp.ErrorMsg  = e.Message;
            }
            return(rsp);
        }
Exemplo n.º 25
0
        public AliyunSms(CloudAccess access) : base(access)
        {
            DefaultProfile.AddEndpoint(access.Endpoint, access.Endpoint, "Dysmsapi", "dysmsapi.aliyuncs.com");

            var profile = DefaultProfile.GetProfile(access.Endpoint, access.AccessKeyId, access.AccessKeySecret);

            Client = new DefaultAcsClient(profile);
        }
Exemplo n.º 26
0
        public static DefaultAcsClient getAliApiClient(string accessKey, string accessSecret)
        {
            DefaultProfile.AddEndpoint("cn-shanghai", "cn-shanghai", "Iot", "iot.cn-shanghai.aliyuncs.com");
            IClientProfile   clientProfile = DefaultProfile.GetProfile("cn-shanghai", accessKey, accessSecret);
            DefaultAcsClient client        = new DefaultAcsClient(clientProfile);

            return(client);
        }
Exemplo n.º 27
0
        public bool SmsMessage111(List <string> listReceipts, string content, out string msg, string smsTemplateCode = "")
        {
            msg = "";
            //产品名称:云通信短信API产品,开发者无需替换
            string product = "Dysmsapi";
            //产品域名,开发者无需替换
            string domain = "dysmsapi.aliyuncs.com";
            // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
            String        accessKeyId     = AliSmsConfig.AliAppKey;
            String        accessKeySecret = AliSmsConfig.AliAppSecret;
            StringBuilder mphone          = new StringBuilder();

            foreach (var item in listReceipts)
            {
                if (!string.IsNullOrEmpty(mphone.ToString()))
                {
                    mphone.Append(",");
                }
                mphone.Append(item);
            }

            IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);

            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
            IAcsClient      acsClient = new DefaultAcsClient(profile);
            SendSmsRequest  request   = new SendSmsRequest();
            SendSmsResponse response  = null;
            bool            rst       = false;

            try
            {
                //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
                request.PhoneNumbers = mphone.ToString();                                                                      //"13710218209,18824867279";
                //必填:短信签名-可在短信控制台中找到
                request.SignName = AliSmsConfig.AliSignName;                                                                   // "感知万物";
                //必填:短信模板-可在短信控制台中找到
                request.TemplateCode = string.IsNullOrEmpty(smsTemplateCode) ? AliSmsConfig.AliTemplateCode : smsTemplateCode; //"SMS_137410645";
                //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
                request.TemplateParam = content;                                                                               //"{\"moduleName\":\"测试\"}";
                //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
                request.OutId = "yourOutId";
                //请求失败这里会抛ClientException异常
                response = acsClient.GetAcsResponse(request);
                rst      = response.Code.ToLower().Equals("ok") ? true : false;
                msg      = rst == false ? "发送短信失败" : "";
            }
            catch (ServerException e)
            {
                msg = e.ErrorMessage;
                //Console.WriteLine(e.ErrorCode);
            }
            catch (ClientException e)
            {
                msg = e.ErrorMessage;
                //Console.WriteLine(e.ErrorCode);
            }
            return(rst);
        }
Exemplo n.º 28
0
        public static IAcsClient InitAcsClient(String regionIdForPop, String accessId, String accessSecret, String productName, String domainForPop)
        {
            IClientProfile profile = DefaultProfile.GetProfile(regionIdForPop, accessId, accessSecret);

            DefaultProfile.AddEndpoint(regionIdForPop, regionIdForPop, productName, domainForPop);
            IAcsClient acsClient = new DefaultAcsClient(profile);

            return(acsClient);
        }
Exemplo n.º 29
0
        public SMSMessageService(ISettingService settingService)
        {
            this._settingService = settingService;
            this.accessKeyId     = settingService.GetSettingByKey <string>(MediaSettingNames.AccessKeyId);
            this.accessKeySecret = settingService.GetSettingByKey <string>(MediaSettingNames.AccessKeySecret);

            _clientProfile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);
            DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", "Dysmsapi", "dysmsapi.aliyuncs.com");
        }
Exemplo n.º 30
0
        /// <summary>
        /// 初始化vod获取客户端信息
        /// </summary>
        /// <param name="regionId">如果是外国的源可以用这个方法</param>
        /// <returns></returns>
        public DefaultAcsClient InitVodClient(string regionId)
        {
            IClientProfile profile = DefaultProfile.GetProfile(regionId, AliyunAccessConfigInfo.AccessKeyId, AliyunAccessConfigInfo.AccessKeySecret);

            DefaultProfile.AddEndpoint(regionId, regionId, "vod", "vod." + regionId + ".aliyuncs.com");
            var client = new DefaultAcsClient(profile);

            return(client);
        }