Пример #1
0
        /// <summary>
        /// 发送短信
        /// </summary>
        /// <param name="leXinData">提交给短信API的参数</param>
        /// <param name="receipt">是否推送短信回执 true/false</param>
        /// <param name="timeOut">超时时间</param>
        /// <returns>成功时返回调用结果,其他抛异常</returns>
        public LeXinData Send(LeXinData leXinData, bool receipt = false, int timeOut = 6)
        {
            string url = "http://sdk.lx198.com/sdk/send";

            //检测必填参数
            if (leXinData.IsSet("aimcodes"))//手机号码(多个手机号码之间用英文半角“,”隔开,单次最多支持5000个号码)
            {
                throw new LeXinException("提交发送短信API接口中,缺少必填参数手机号码【aimcodes】!");
            }
            else if (leXinData.IsSet("content")) //内容(内容长度请参照乐信(http://sdk.lx198.com)发送短信页面提示),注意:在内容的最后需要加上在乐信(http://sdk.lx198.com)设置并通过审核的签名。如:公司定于1月25日召开今年的企业年会,请务必安排好时间。【动力思维】
            {
                throw new LeXinException("提交发送短信API接口中,缺少必填参数内容【content】!");
            }
            else if (receipt)
            {
                if (leXinData.IsSet("msgId"))//提交短信包的唯一id(15位以内数字),推送短信回执时,会推送此值,用此值和手机号码来匹配短信的状态,如需要接受回执则必须提交此参数,单次提交只需要提交一个即可
                {
                    throw new LeXinException("提交发送短信API接口中,缺少必填短信包唯一id【msgId】!");
                }
            }

            if (leXinData.IsSet("accName"))//用户名(乐信登录账号)
            {
                leXinData.SetValue("accName", LeXinConfig.GetLeXinConfig().GetAccName());
            }
            if (leXinData.IsSet("accPwd"))//密码(乐信登录密码32位MD5加密后转大写,如123456加密完以后为:E10ADC3949BA59ABBE56E057F20F883E)
            {
                leXinData.SetValue("accPwd", LeXinConfig.GetLeXinConfig().GetAccPassword());
            }
            if (leXinData.IsSet("schTime")) //定时时间(格式为: 如为空则为即时短信, 如需定时时间格式为“yyyy - mm - dd hh24: mi:ss”。如果是GET提交,需要 转码)
            {
                leXinData.SetValue("schTime", "");
            }
            if (leXinData.IsSet("dataType"))//返回的数据(类型支持:json/xml/string 三种形式 不传默认string)
            {
                leXinData.SetValue("dataType", LeXinConfig.GetLeXinConfig().GetDataType());
            }

            leXinData.SetValue("content", leXinData.AppendSign(leXinData.GetValue("content").ToString()));
            string xml = leXinData.ToXml();

            string response = Post(xml, url, timeOut);//调用HTTP通信接口以提交数据到API

            //将xml格式的结果转换为对象以返回
            LeXinData result = new LeXinData();

            result.FromXml(response);
            return(result);
        }
Пример #2
0
 /// <summary>
 /// 签名生成算法
 /// </summary>
 /// <param name="signType">签名方式</param>
 /// <returns>签名, sign字段不参加签名</returns>
 public string MakeSign(string content)
 {
     return(content += "【" + LeXinConfig.GetLeXinConfig().GetSign() + "】");
 }