Ejemplo n.º 1
0
        private static TencentSmsSendResponseData Convert(SmsMultiSenderResult response)
        {
            var ret = new TencentSmsSendResponseData
            {
                Result = response.result,
                ErrMsg = response.errMsg,
                Ext    = response.ext,
                Detail = new List <TencentSmsSendResult>()
            };


            foreach (var item in response.details)
            {
                ret.Detail.Add(new TencentSmsSendResult
                {
                    Result     = item.result,
                    ErrMsg     = item.errmsg,
                    Sid        = item.sid,
                    Fee        = item.fee,
                    Mobile     = item.mobile,
                    NationCode = item.nationcode
                });
            }

            return(ret);
        }
Ejemplo n.º 2
0
        public void sendMsm()
        {
            try
            {
                int    sdkappid     = 1400136127;
                string appkey       = "d5fb98e2f3219e3f59ed0efd2acad62a";
                string phoneNumber1 = "18549921992";
                //string phoneNumber2 = "15062522528";
                //string phoneNumber3 = "18006130891";
                string         phoneNumber4 = "19905129030";
                SmsMultiSender multiSender  = new SmsMultiSender(sdkappid, appkey);
                List <string>  phoneNumbers = new List <string>();
                phoneNumbers.Add(phoneNumber1);
                //phoneNumbers.Add(phoneNumber2);
                //phoneNumbers.Add(phoneNumber3);
                phoneNumbers.Add(phoneNumber4);

                //SmsSingleSender singleSender = new SmsSingleSender(sdkappid, appkey);
                //SmsSingleSenderResult singleResult = singleSender.Send(0, "86", phoneNumber1, "测测额", "", "");
                // 普通群发
                var msmName = name;
                if (name.Length > 11)
                {
                    msmName = name.Substring(0, 11);
                }
                SmsMultiSenderResult multiResult = multiSender.Send(0, "86", phoneNumbers, string.Format("恭喜发财:{0}:now:{1},old:{2}", msmName, now, old), "", "");
            }
            catch
            {
            }
        }
Ejemplo n.º 3
0
        public JsonResult SendSmsCode(int sendType, string mobiles, int tempId, string parameters)
        {
            try
            {
                var appId  = CommonVariable.SmsAppId;
                var appKey = CommonVariable.SmsAppKey;

                List <string> templParams  = parameters.Split(',').ToList();
                List <string> phoneNumbers = mobiles.Split(',').ToList();
                if (sendType == 1)
                {
                    MemoryCacheManager cache     = new MemoryCacheManager();
                    LoginUser          loginUser = cache.Get <LoginUser>(phoneNumbers[0]);
                    if (loginUser == null)
                    {
                        loginUser = new LoginUser(phoneNumbers[0], 0);
                    }
                    if (loginUser.smsSendTimes >= 5)
                    {
                        return(Json(new { result = 1 }));
                    }
                    SmsSingleSender       singleSender = new SmsSingleSender(appId, appKey);
                    SmsSingleSenderResult singleResult = singleSender.SendWithParam("86", phoneNumbers[0], tempId, templParams, "", "", "");
                    loginUser.smsSendTimes += 1;
                    //记录该用户今日发短信验证码的次数
                    cache.Set(phoneNumbers[0], loginUser, 60 * 24);
                    return(Json(singleResult));
                }
                else if (sendType == 2)
                {
                    SmsMultiSender       multiSender = new SmsMultiSender(appId, appKey);
                    SmsMultiSenderResult multiResult = multiSender.SendWithParam("86", phoneNumbers, tempId, templParams, "", "", "");
                    return(Json(multiResult));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            return(Json(new { result = -1 }));
        }
Ejemplo n.º 4
0
            // 将群发回包解析成结果对象
            public SmsMultiSenderResult ResponseStrToMultiSenderResult(string str)
            {
                SmsMultiSenderResult result = JsonConvert.DeserializeObject <SmsMultiSenderResult>(str);

                return(result);
            }
Ejemplo n.º 5
0
            /**
             * 指定模板群发
             * 【注意】海外短信无群发功能
             * @param nationCode 国家码,如 86 为中国
             * @param phoneNumbers 不带国家码的手机号列表
             * @param templId 模板 id
             * @param params 模板参数列表
             * @param sign 签名,如果填空,系统会使用默认签名
             * @param extend 扩展码,可以填空
             * @param ext 服务端原样返回的参数,可以填空
             * @return SmsMultiSenderResult
             */
            public SmsMultiSenderResult SendWithParam(
                String nationCode,
                List <string> phoneNumbers,
                int templId,
                List <string> templParams,
                string sign,
                string extend,
                string ext)
            {
                /*
                 * 请求包体
                 * {
                 *  "tel": [
                 *      {
                 *          "nationcode": "86",
                 *          "mobile": "13788888888"
                 *      },
                 *      {
                 *          "nationcode": "86",
                 *          "mobile": "13788888889"
                 *      }
                 *  ],
                 *  "type": 0,
                 *  "msg": "你的验证码是1234",
                 *  "sig": "fdba654e05bc0d15796713a1a1a2318c",
                 *  "time": 1479888540,
                 *  "extend": "",
                 *  "ext": ""
                 * }
                 * 应答包体
                 * {
                 *  "result": 0,
                 *  "errmsg": "OK",
                 *  "ext": "",
                 *  "detail": [
                 *      {
                 *          "result": 0,
                 *          "errmsg": "OK",
                 *          "mobile": "13788888888",
                 *          "nationcode": "86",
                 *          "sid": "xxxxxxx",
                 *          "fee": 1
                 *      },
                 *      {
                 *          "result": 0,
                 *          "errmsg": "OK",
                 *          "mobile": "13788888889",
                 *          "nationcode": "86",
                 *          "sid": "xxxxxxx",
                 *          "fee": 1
                 *      }
                 *  ]
                 * }
                 */
                if (null == sign)
                {
                    sign = "";
                }
                if (null == extend)
                {
                    extend = "";
                }
                if (null == ext)
                {
                    ext = "";
                }

                long random  = util.GetRandom();
                long curTime = util.GetCurTime();

                // 按照协议组织 post 请求包体
                JObject data = new JObject();

                data.Add("tel", util.PhoneNumbersToJSONArray(nationCode, phoneNumbers));
                data.Add("sig", util.CalculateSigForTempl(appkey, random, curTime, phoneNumbers));
                data.Add("tpl_id", templId);
                data.Add("params", util.SmsParamsToJSONArray(templParams));
                data.Add("sign", sign);
                data.Add("time", curTime);
                data.Add("extend", extend);
                data.Add("ext", ext);

                string         wholeUrl = url + "?sdkappid=" + sdkappid + "&random=" + random;
                HttpWebRequest request  = util.GetPostHttpConn(wholeUrl);

                byte[] requestData = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(data));
                request.ContentLength = requestData.Length;
                Stream requestStream = request.GetRequestStream();

                requestStream.Write(requestData, 0, requestData.Length);
                requestStream.Close();

                // 接收返回包
                HttpWebResponse response       = (HttpWebResponse)request.GetResponse();
                Stream          responseStream = response.GetResponseStream();
                StreamReader    streamReader   = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
                string          responseStr    = streamReader.ReadToEnd();

                streamReader.Close();
                responseStream.Close();
                SmsMultiSenderResult result;

                if (HttpStatusCode.OK == response.StatusCode)
                {
                    result = util.ResponseStrToMultiSenderResult(responseStr);
                }
                else
                {
                    result        = new SmsMultiSenderResult();
                    result.result = -1;
                    result.errmsg = "http error " + response.StatusCode + " " + responseStr;
                }
                return(result);
            }