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); }
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 { } }
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 })); }
// 将群发回包解析成结果对象 public SmsMultiSenderResult ResponseStrToMultiSenderResult(string str) { SmsMultiSenderResult result = JsonConvert.DeserializeObject <SmsMultiSenderResult>(str); return(result); }
/** * 指定模板群发 * 【注意】海外短信无群发功能 * @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); }