Esempio n. 1
0
        /**
         * <h1>获取短链接统计 only v2</h1>
         * <p>
         * <p>
         * 参数名 类型 是否必须 描述 示例
         * </p>
         * <p>
         * apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526
         * </p>
         * <p>
         * sid String 是 短链接唯一标识 ckAclC
         * </p>
         * <p>
         * start_time String 否 开始时间,默认一个小时前 2017-03-29 11:30:00
         * </p>
         * <p>
         * end_time String 否 结束时间,默认当前时间 2017-03-29 12:10:00
         * </p>
         *
         * @param param
         * @return
         */
        public Result <Dictionary <string, long> > Stat(Dictionary <string, string> param)
        {
            var r = new Result <Dictionary <string, long> >();

            r = CheckParam(ref param, r, Const.Apikey, Const.Sid);

            if (!r.IsSucc())
            {
                return(r);
            }
            var data = UrlEncode(ref param);

            var h = new MapResultHandler <Dictionary <string, long> >(Version, rsp =>
            {
                switch (Version)
                {
                case Const.VersionV2:
                    return(rsp[Const.Stat].ToObject <Dictionary <string, long> >());

                default: return(null);
                }
            });

            try
            {
                Path = "stat.json";
                return(Post(ref data, h, r));
            }
            catch (Exception e)
            {
                return(h.CatchExceptoin(e, r));
            }
        }
Esempio n. 2
0
        /**
         * <h1>添加语音通知模版</h1>
         *
         * <p>
         * 参数名 类型 是否必须 描述 示例
         * </p>
         * <p>
         * apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526
         * </p>
         * <p>
         * tpl_content String 是 模板内容,必须以带符号【】的签名开头 【云片网】您的验证码是#code#
         * </p>
         * <p>
         * notify_type Integer 否 审核结果短信通知的方式: 0表示需要通知,默认; 1表示仅审核不通过时通知; 2表示仅审核通过时通知;
         * 3表示不需要通知 1
         * </p>
         *
         * @param param
         * @return
         */
        public Result <Template> AddVoiceNotify(Dictionary <string, string> param)
        {
            var r = new Result <Template>();

            r = CheckParam(ref param, r, Const.Apikey, Const.TplContent);

            if (!r.IsSucc())
            {
                return(r);
            }
            var data = UrlEncode(ref param);

            var h = new MapResultHandler <Template>(Version, rsp =>
            {
                switch (Version)
                {
                case Const.VersionV2:
                    {
                        return(rsp.ToObject <Template>());
                    }
                }

                return(null);
            });

            try
            {
                Path = "add_voice_notify.json";
                return(Post(ref data, h, r));
            }
            catch (Exception e)
            {
                return(h.CatchExceptoin(e, r));
            }
        }
Esempio n. 3
0
        /**
         * 批量发送视频短信
         *
         * @param param
         *            apikey tpl_id mobile
         * @return
         */
        public Result <SmsBatchSend> TplBatchSend(Dictionary <string, string> param)
        {
            var r = new Result <SmsBatchSend>();

            r = CheckParam(ref param, r, Const.Apikey);

            if (!r.IsSucc())
            {
                return(r);
            }
            var data = UrlEncode(ref param);

            var h = new MapResultHandler <SmsBatchSend>(Version, rsp =>
            {
                switch (Version)
                {
                case Const.VersionV2:
                    {
                        return(rsp.ToObject <SmsBatchSend>());
                    }
                }

                return(null);
            });

            try
            {
                Path = "tpl_batch_send.json";
                return(Post(ref data, h, r));
            }
            catch (Exception e)
            {
                return(h.CatchExceptoin(e, r));
            }
        }
Esempio n. 4
0
        /**
         * <h1>个性化发送</h1>
         *
         * <p>
         * 参数名 类型 是否必须 描述 示例
         * </p>
         * <p>
         * apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526
         * </p>
         * <p>
         * mobile String 是
         * 接收的手机号;多个手机号请以逗号分隔,一次不要超过1000个且手机号个数必须与短信内容条数相等;不支持国际号码发送;
         * 多号码:15205201314,15205201315
         * </p>
         * <p>
         * text String 是
         * 短信内容,多个短信内容请使用UTF-8做urlencode后,使用逗号分隔,一次不要超过1000条且短信内容条数必须与手机号个数相等
         * 内容示意:UrlEncode("【云片网】您的验证码是1234", "UTF-8") + "," +
         * UrlEncode("【云片网】您的验证码是5678", "UTF-8")
         * </p>
         * <p>
         * extend String 否 扩展号。默认不开放,如有需要请联系客服申请 001
         * </p>
         * <p>
         * uid String 否 该条短信在您业务系统内的ID,比如订单号或者短信发送记录的流水号。填写后发送状态返回值内将包含这个ID
         * 默认不开放,如有需要请联系客服申请 10001
         * </p>
         * <p>
         * callback_url String 否
         * 本条短信状态报告推送地址。短信发送后将向这个地址推送短信发送报告。"后台-系统设置-数据推送与获取”可以做批量设置。如果后台已经设置地址的情况下,单次请求内也包含此参数,将以请求内的推送地址为准。
         * http://your_receive_url_address
         * </p>
         *
         * @param param
         * @return
         */
        public Result <SmsBatchSend> MultiSend(Dictionary <string, string> param)
        {
            var r = new Result <SmsBatchSend>();

            r = CheckParam(ref param, r, Const.Apikey, Const.Mobile, Const.Text);

            if (!r.IsSucc())
            {
                return(r);
            }
            var data = UrlEncode(ref param);

            var h = new MapResultHandler <SmsBatchSend>(Version, rsp =>
            {
                switch (Version)
                {
                case Const.VersionV2:
                    {
                        var batch = new SmsBatchSend
                        {
                            TotalCount = rsp[Const.TotalCount].ToObject <int>(),
                            TotalFee   = rsp[Const.TotalFee].ToObject <double>(),
                            Data       = rsp[Const.Data].ToObject <List <SmsSingleSend> >()
                        };
                        return(batch);
                    }

                default: return(null);
                }
            });

            try
            {
                Path = "multi_send.json";
                return(Post(ref data, h, r));
            }
            catch (Exception e)
            {
                return(h.CatchExceptoin(e, r));
            }
        }
Esempio n. 5
0
        /**
         * <h1>查账户信息</h1>
         *
         * <p>
         * 参数名 类型 是否必须 描述 示例
         * </p>
         * <p>
         * apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526
         * </p>
         *
         * @return
         */
        public Result <User> Get()
        {
            var r     = new Result <User>();
            var param = new Dictionary <string, string>();

            r = CheckParam(ref param, r, Const.Apikey);

            if (!r.IsSucc())
            {
                return(r);
            }
            var data = UrlEncode(ref param);

            var h = new MapResultHandler <User>(Version, rsp =>
            {
                switch (Version)
                {
                case Const.VersionV1:
                    {
                        return(rsp[Const.User].ToObject <User>());
                    }

                case Const.VersionV2:
                    {
                        return(rsp.ToObject <User>());
                    }
                }

                return(null);
            });

            try
            {
                Path = "get.json";
                return(Post(ref data, h, r));
            }
            catch (Exception e)
            {
                return(h.CatchExceptoin(e, r));
            }
        }
Esempio n. 6
0
        /**
         * <h1>获取签名API</h1>
         *
         * <p>
         * 参数名 类型 是否必须 描述 示例
         * </p>
         * <p>
         * apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526
         * </p>
         * <p>
         * id Long 否 签名id,暂未开放,如果传入此参数将会指定获取某个签名 9527
         * </p>
         * <p>
         * sign String 否 签名内容 云片网
         * </p>
         * <p>
         * page_num Integer 否 页码,1开始,不带或者格式错误返回全部 1
         * </p>
         * <p>
         * page_size Integer 否 返回条数,必须大于0,不带或者格式错误返回全部 20
         * </p>
         *
         * @param param
         *            sign notify page_num page_size
         * @return
         */
        public Result <SignList> Get(Dictionary <string, string> param)
        {
            var r = new Result <SignList>();

            r = CheckParam(ref param, r, Const.Apikey);

            if (!r.IsSucc())
            {
                return(r);
            }
            var data = UrlEncode(ref param);

            var h = new MapResultHandler <SignList>(Version, rsp =>
            {
                var list = new SignList();
                switch (Version)
                {
                case Const.VersionV2:
                    {
                        list.Total = rsp[Const.Total].ToObject <int>();
                        list.Sign  = rsp[Const.Sign].ToObject <List <Sign> >();
                        return(list);
                    }

                default: return(null);
                }
            });

            try
            {
                Path = "get.json";
                return(Post(ref data, h, r));
            }
            catch (Exception e)
            {
                return(h.CatchExceptoin(e, r));
            }
        }
Esempio n. 7
0
        /**
         * <h1>注册成功回调 only v2</h1>
         * <p>
         * <p>
         * 参数名 类型 是否必须 描述 示例
         * </p>
         * <p>
         * apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526
         * </p>
         * <p>
         * mobile String 是
         * 注册成功的手机号,请和调用接口的手机号一致 15205201314
         * </p>
         * <p>
         * time String 否 注册成功的时间,格式yyyy-MM-dd HH:mm:ss,可以是一天前,超过时间无法记录,默认当前时间 2017-03-15 18:30:00
         * </p>
         * <p>
         * 如果需要更准确的注册成功数据(排除找回密码等类型验证码产生的数据),
         * 在注册页调用 single_send.json 接口时带上参数“register”(布尔类型),值为“true”,
         * 则该条短信会被认定为注册验证码短信。
         * 此功能需联系客服开通。
         * </p>
         *
         * @param param
         * @return
         * @see SmsApi#single_send(Map)
         */
        public Result <object> RegComplete(Dictionary <string, string> param)
        {
            var r = new Result <object>();

            r = CheckParam(ref param, r, Const.Apikey, Const.Mobile);

            if (!r.IsSucc())
            {
                return(r);
            }
            var data = UrlEncode(ref param);

            var h = new MapResultHandler <object>(Version, rsp => null);

            try
            {
                Path = "reg_complete.json";
                return(Post(ref data, h, r));
            }
            catch (Exception e)
            {
                return(h.CatchExceptoin(e, r));
            }
        }
Esempio n. 8
0
        /**
         * <h1>指定模板发送 only v1</h1>
         *
         * <p>
         * 参数名 类型 是否必须 描述 示例
         * </p>
         * <p>
         * apikey String 是 用户唯一标识 9b11127a9701975c734b8aee81ee3526
         * </p>
         * <p>
         * mobile String 是 接收的手机号 15205201314
         * </p>
         * <p>
         * tpl_id Long 是 模板id 1
         * </p>
         * <p>
         * tpl_value String 是 变量名和变量值对。请先对您的变量名和变量值分别进行urlencode再传递。使用参考:代码示例。
         * 注:变量名和变量值都不能为空 模板: 【#company#】您的验证码是#code#。 最终发送结果: 【云片网】您的验证码是1234。
         * tplvalue=urlencode("#code#") + "=" + urlencode("1234") + "&amp;" +
         * urlencode("#company#") + "=" + urlencode("云片网"); 若您直接发送报文请求则使用下面这种形式
         * tplvalue=urlencode(urlencode("#code#") + "=" + urlencode("1234") +
         * "&amp;" + urlencode("#company#") + "=" + urlencode("云片网"));
         * </p>
         * <p>
         * extend String 否 扩展号。默认不开放,如有需要请联系客服申请 001
         * </p>
         * <p>
         * uid String 否 用户自定义唯一id。最大长度不超过256的字符串。 默认不开放,如有需要请联系客服申请 10001
         * </p>
         *
         * @param param
         * @return
         */
        public Result <SmsSingleSend> TplSend(Dictionary <string, string> param)
        {
            var r = new Result <SmsSingleSend>();

            r = CheckParam(ref param, r, Const.Apikey, Const.Mobile, Const.TplId, Const.TplValue);

            if (!r.IsSucc())
            {
                return(r);
            }
            var data = UrlEncode(ref param);

            Version = Const.VersionV1;
            var h = new MapResultHandler <SmsSingleSend>(Version, rsp =>
            {
                switch (Version)
                {
                case Const.VersionV1:
                    {
                        return(rsp[Const.Result]?.ToObject <SmsSingleSend>());
                    }

                default: return(null);
                }
            });

            try
            {
                Path = "tpl_send.json";
                return(Post(ref data, h, r));
            }
            catch (Exception e)
            {
                return(h.CatchExceptoin(e, r));
            }
        }