Exemplo n.º 1
0
 /// <summary>
 /// 将一条长链接转成短链接
 /// </summary>
 /// <param name="long_url">长链接</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <CreateResult> Create(string long_url, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <CreateResult>("https://api.weixin.qq.com/cgi-bin/shorturl?$acac$", new
     {
         action = "long2short",
         long_url,
     }, config));
 }
Exemplo n.º 2
0
 /// <summary>
 /// 创建永久二维码
 /// </summary>
 /// <param name="scene_str">场景值ID(字符串形式的ID),字符串类型,长度限制为1到64</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <CreateResult> CreatePermanent(string scene_str, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <CreateResult>("https://api.weixin.qq.com/cgi-bin/qrcode/create?$acac$", new
     {
         action_name = "QR_LIMIT_SCENE",
         action_info = new
         {
             scene = new
             {
                 scene_str
             }
         }
     }, config));
 }
Exemplo n.º 3
0
 /// <summary>
 /// 创建临时二维码
 /// </summary>
 /// <param name="scene_id">场景值ID,临时二维码时为32位非0整型</param>
 /// <param name="expire_seconds">该二维码有效时间,以秒为单位。最大不超过2592000(即30天),此字段如果不填,则默认有效期为30秒。</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <CreateResult> CreateTemporary(int scene_id, int expire_seconds, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <CreateResult>("https://api.weixin.qq.com/cgi-bin/qrcode/create?$acac$", new
     {
         expire_seconds,
         action_name = "QR_SCENE",
         action_info = new
         {
             scene = new
             {
                 scene_id
             }
         }
     }, config));
 }
Exemplo n.º 4
0
 /// <summary>
 /// 获取消息发送分布月数据, 最大时间跨度: 30 (天)
 /// </summary>
 /// <param name="begin_date">获取数据的起始日期,begin_date和end_date的差值需小于“最大时间跨度”(比如最大时间跨度为1时,begin_date和end_date的差值只能为0,才能小于1),否则会报错</param>
 /// <param name="end_date">获取数据的结束日期,end_date允许设置的最大值为昨日</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <GetUpstreamMsgDistMonthResult> GetUpstreamMsgDistMonth(DateTime begin_date, DateTime end_date, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <GetUpstreamMsgDistMonthResult>("https://api.weixin.qq.com/datacube/getupstreammsgdistmonth?$acac$", BuildRequestData(begin_date, end_date), config));
 }
Exemplo n.º 5
0
 /// <summary>
 /// 获取图文分享转发分时数据, 最大时间跨度: 1 (天)
 /// </summary>
 /// <param name="begin_date">获取数据的起始日期,begin_date和end_date的差值需小于“最大时间跨度”(比如最大时间跨度为1时,begin_date和end_date的差值只能为0,才能小于1),否则会报错</param>
 /// <param name="end_date">获取数据的结束日期,end_date允许设置的最大值为昨日</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <GetUserShareHourResult> GetUserShareHour(DateTime begin_date, DateTime end_date, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <GetUserShareHourResult>("https://api.weixin.qq.com/datacube/getusersharehour?$acac$", BuildRequestData(begin_date, end_date), config));
 }
Exemplo n.º 6
0
 /// <summary>
 /// 获得模板ID(需要先从行业模板库选择模板到帐号后台)
 /// </summary>
 /// <param name="template_id_short">模板库中模板的编号,有“TM**”和“OPENTMTM**”等形式</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <ApiAddTemplateResult> ApiAddTemplate(string template_id_short, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <ApiAddTemplateResult>("https://api.weixin.qq.com/cgi-bin/template/api_add_template?$acac$", new { template_id_short }, config));
 }
Exemplo n.º 7
0
 /// <summary>
 /// <para>获取聊天记录</para>
 /// <para>对某个时间段首次请求时 msgid 应为 1;</para>
 /// <para>若请求的 number 和返回的 number 一样,该时间段可能还有聊天记录未获取,将返回的 msgid 填进下次请求中;</para>
 /// <para>若请求的 number 和返回的 number 不一样,则该时间段的后续聊天记录获取完毕;</para>
 /// </summary>
 /// <param name="starttime">起始时间,unix时间戳</param>
 /// <param name="endtime">结束时间,unix时间戳,每次查询时段不能超过24小时</param>
 /// <param name="msgid">消息id顺序从小到大,从1开始</param>
 /// <param name="number">每次获取条数,最多10000条</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <GetMsgListResult> GetMsgList(long starttime, long endtime, long msgid, int number, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <GetMsgListResult>("https://api.weixin.qq.com/customservice/msgrecord/getmsglist?$acac$", new { starttime, endtime, msgid, number }, config));
 }
Exemplo n.º 8
0
 /// <summary>
 /// 创建个性化菜单
 /// </summary>
 /// <param name="button">一级菜单项, 1~3个</param>
 /// <param name="matchrule">匹配规则</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <AddConditionalResult> AddConditional(Button[] button, MatchRule matchrule, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <AddConditionalResult>("https://api.weixin.qq.com/cgi-bin/menu/addconditional?$acac$", new { button, matchrule }, config));
 }
Exemplo n.º 9
0
 /// <summary>
 /// 预览群发消息-文本
 /// </summary>
 /// <param name="touser">接收者的 openid 列表</param>
 /// <param name="towxname">接收者的微信ID, 如与 openid 冲突, 会使用微信ID</param>
 /// <param name="content">文本内容</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <PreviewSendResult> SendPreviewText(string touser, string towxname, string content, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <PreviewSendResult>("https://api.weixin.qq.com/cgi-bin/message/mass/preview?$acac$", new { touser, towxname, msgtype = "text", text = new { content } }, config));
 }
Exemplo n.º 10
0
        /// <summary>
        /// 批量获取用户基本信息。最多支持一次拉取100条。
        /// </summary>
        /// <param name="openid">用户标识列表</param>
        /// <param name="lang">与用户标识对应的语言列表, null 代表全部使用 zh_CN</param>
        /// <param name="config"></param>
        /// <returns></returns>
        public static Task <BatchGetInfoResult> BatchGet(string[] openid, string[] lang = null, ApiConfig config = null)
        {
            var user_list = openid.Zip(lang ?? Enumerable.Repeat("zh_CN", openid.Length), (o, l) => new { openid = o, lang = l }).ToArray();

            return(ApiHelper.PostResult <BatchGetInfoResult>("https://api.weixin.qq.com/cgi-bin/user/info/batchget?$acac$", new { user_list }, config));
        }
Exemplo n.º 11
0
 /// <summary>
 /// 根据OpenID列表群发-图文
 /// </summary>
 /// <param name="touser">接收者的 openid 列表</param>
 /// <param name="media_id">素材媒体id</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <MassSendNewsResult> SendMassMpNews(string[] touser, string media_id, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <MassSendNewsResult>("https://api.weixin.qq.com/cgi-bin/message/mass/send?$acac$", new { touser, msgtype = "mpnews", mpnews = new { media_id } }, config));
 }
Exemplo n.º 12
0
 /// <summary>
 /// 根据OpenID列表群发-卡券 (客服消息接口投放卡券仅支持非自定义Code码和导入code模式的卡券的卡券)
 /// </summary>
 /// <param name="touser">接收者的 openid 列表</param>
 /// <param name="card_id">卡券id</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <MassSendResult> SendMassWxCard(string[] touser, string card_id, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <MassSendResult>("https://api.weixin.qq.com/cgi-bin/message/mass/send?$acac$", new { touser, msgtype = "wxcard", wxcard = new { card_id } }, config));
 }
Exemplo n.º 13
0
 /// <summary>
 /// 根据OpenID列表群发-文本
 /// </summary>
 /// <param name="touser">接收者的 openid 列表</param>
 /// <param name="content">文本内容</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <MassSendResult> SendMassText(string[] touser, string content, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <MassSendResult>("https://api.weixin.qq.com/cgi-bin/message/mass/send?$acac$", new { touser, msgtype = "text", text = new { content } }, config));
 }
Exemplo n.º 14
0
 /// <summary>
 /// 根据标签进行群发-卡券 (客服消息接口投放卡券仅支持非自定义Code码和导入code模式的卡券的卡券)
 /// </summary>
 /// <param name="tag_id">接收者的标签id, 如果为 null, 则代表所有人(is_to_all=true)</param>
 /// <param name="card_id">卡券id</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <MassSendResult> SendMassAllWxCard(int?tag_id, string card_id, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <MassSendResult>("https://api.weixin.qq.com/cgi-bin/message/mass/sendall?$acac$", new { filter = new { is_to_all = tag_id == null, tag_id }, msgtype = "wxcard", wxcard = new { card_id } }, config));
 }
Exemplo n.º 15
0
 /// <summary>
 /// 根据标签进行群发-图文
 /// </summary>
 /// <param name="tag_id">接收者的标签id, 如果为 null, 则代表所有人(is_to_all=true)</param>
 /// <param name="media_id">素材媒体id</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <MassSendNewsResult> SendMassAllMpNews(int?tag_id, string media_id, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <MassSendNewsResult>("https://api.weixin.qq.com/cgi-bin/message/mass/sendall?$acac$", new { filter = new { is_to_all = tag_id == null, tag_id }, msgtype = "mpnews", mpnews = new { media_id } }, config));
 }
Exemplo n.º 16
0
 /// <summary>
 /// 获取标签下粉丝列表
 /// </summary>
 /// <param name="tagid">标签id</param>
 /// <param name="next_openid">第一个拉取的OPENID,不填默认从头开始拉取</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <GetListByTagResult> GetListByTag(int tagid, string next_openid = null, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <GetListByTagResult>("https://api.weixin.qq.com/cgi-bin/user/tag/get?$acac$", new { tagid, next_openid }, config));
 }
Exemplo n.º 17
0
 /// <summary>
 /// 下载永久图文素材
 /// </summary>
 /// <param name="media_id">媒体文件ID</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <GetNewsResult> GetNews(string media_id, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <GetNewsResult>("https://api.weixin.qq.com/cgi-bin/material/get_material?$acac$", new { media_id }, config));
 }
Exemplo n.º 18
0
 /// <summary>
 /// 获取用户身上的标签列表
 /// </summary>
 /// <param name="openid">用户标识</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <GetTagIdListResult> GetTagIdList(string openid, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <GetTagIdListResult>("https://api.weixin.qq.com/cgi-bin/tags/members/getidlist?$acac$", new { openid }, config));
 }
Exemplo n.º 19
0
 /// <summary>
 /// 添加永久图文消息素材
 /// </summary>
 /// <param name="articles"></param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <AddResult> AddNews(NewsArticle[] articles, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <AddResult>("https://api.weixin.qq.com/cgi-bin/material/add_news?$acac$", new { articles }, config));
 }
Exemplo n.º 20
0
 /// <summary>
 /// 预览群发消息-图文
 /// </summary>
 /// <param name="touser">接收者的 openid 列表</param>
 /// <param name="towxname">接收者的微信ID, 如与 openid 冲突, 会使用微信ID</param>
 /// <param name="media_id">素材媒体id</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <PreviewSendResult> SendPreviewMpNews(string touser, string towxname, string media_id, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <PreviewSendResult>("https://api.weixin.qq.com/cgi-bin/message/mass/preview?$acac$", new { touser, towxname, msgtype = "mpnews", mpnews = new { media_id } }, config));
 }
Exemplo n.º 21
0
 /// <summary>
 /// 测试用户与个性化菜单的匹配结果
 /// </summary>
 /// <param name="user_id">粉丝的OpenID,或粉丝的微信号</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <TryMatchResult> TryMatch(string user_id, ApiConfig config)
 {
     return(ApiHelper.PostResult <TryMatchResult>("https://api.weixin.qq.com/cgi-bin/menu/trymatch?$acac$", new { user_id }, config));
 }
Exemplo n.º 22
0
 /// <summary>
 /// 获取永久语音消息素材列表(包含公众号在公众平台官网素材管理模块中新建的素材)
 /// </summary>
 /// <param name="offset">从全部素材的该偏移位置开始返回,0表示从第一个素材 返回</param>
 /// <param name="count">返回素材的数量,取值在1到20之间</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <BatchGetResult> BatchGetVoice(int offset, int count, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <BatchGetResult>("https://api.weixin.qq.com/cgi-bin/material/batchget_material?$acac$", new { type = "voice", offset, count }, config));
 }
Exemplo n.º 23
0
 /// <summary>
 /// 预览群发消息-卡券 (客服消息接口投放卡券仅支持非自定义Code码和导入code模式的卡券的卡券)
 /// </summary>
 /// <param name="touser">接收者的 openid 列表</param>
 /// <param name="towxname">接收者的微信ID, 如与 openid 冲突, 会使用微信ID</param>
 /// <param name="card_id">卡券id</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <PreviewSendResult> SendPreviewWxCard(string touser, string towxname, string card_id, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <PreviewSendResult>("https://api.weixin.qq.com/cgi-bin/message/mass/preview?$acac$", new { touser, towxname, msgtype = "wxcard", wxcard = new { card_id } }, config));
 }
Exemplo n.º 24
0
 /// <summary>
 /// 查询群发消息发送状态
 /// </summary>
 /// <param name="msg_id">消息id</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <MassGetStatusResult> GetMassSendStatus(long msg_id, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <MassGetStatusResult>("https://api.weixin.qq.com/cgi-bin/message/mass/get?$acac$", new { msg_id }, config));
 }
Exemplo n.º 25
0
 /// <summary>
 /// 获取图文群发总数据, 最大时间跨度: 1 (天)
 /// </summary>
 /// <param name="begin_date">获取数据的起始日期,begin_date和end_date的差值需小于“最大时间跨度”(比如最大时间跨度为1时,begin_date和end_date的差值只能为0,才能小于1),否则会报错</param>
 /// <param name="end_date">获取数据的结束日期,end_date允许设置的最大值为昨日</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <GetArticleTotalResult> GetArticleTotal(DateTime begin_date, DateTime end_date, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <GetArticleTotalResult>("https://api.weixin.qq.com/datacube/getarticletotal?$acac$", BuildRequestData(begin_date, end_date), config));
 }
Exemplo n.º 26
0
 /// <summary>
 /// 创建标签
 /// </summary>
 /// <param name="name">标签名(30个字符以内)</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <CreateTagResult> Create(string name, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <CreateTagResult>("https://api.weixin.qq.com/cgi-bin/tags/create?$acac$", new { tag = new { name } }, config));
 }
Exemplo n.º 27
0
 /// <summary>
 /// 获取接口分析数据, 最大时间跨度: 30 (天)
 /// </summary>
 /// <param name="begin_date">获取数据的起始日期,begin_date和end_date的差值需小于“最大时间跨度”(比如最大时间跨度为1时,begin_date和end_date的差值只能为0,才能小于1),否则会报错</param>
 /// <param name="end_date">获取数据的结束日期,end_date允许设置的最大值为昨日</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <GetInterfaceSummaryResult> GetInterfaceSummary(DateTime begin_date, DateTime end_date, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <GetInterfaceSummaryResult>("https://api.weixin.qq.com/datacube/getinterfacesummary?$acac$", BuildRequestData(begin_date, end_date), config));
 }
Exemplo n.º 28
0
 /// <summary>
 /// <para>公众号可通过该接口来获取帐号的黑名单列表,黑名单列表由一串 OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的)组成。</para>
 /// <para>该接口每次调用最多可拉取 10000 个OpenID,当列表数较多时,可以通过多次拉取的方式来满足需求。</para>
 /// </summary>
 /// <param name="begin_openid"></param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <GetOpenListResult> GetList(string begin_openid = null, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <GetOpenListResult>("https://api.weixin.qq.com/cgi-bin/tags/members/getblacklist?$acac$", new { begin_openid }, config));
 }
Exemplo n.º 29
0
 /// <summary>
 /// 发送模板消息
 /// </summary>
 /// <param name="touser">接收消息的用户 openid</param>
 /// <param name="template_id">模板id</param>
 /// <param name="parameters">用于提供模板参数, 例: new { keyword1 = "xxx", keyword2 = new Template.Parameter("yyy", "#173177") } </param>
 /// <param name="first">模板 first 参数</param>
 /// <param name="remark">模板 remark 参数</param>
 /// <param name="url">接收者点击模板消息后要打开的网址</param>
 /// <param name="config"></param>
 /// <returns></returns>
 public static Task <SendTemplateResult> Send(string touser, string template_id, object parameters, Parameter first = null, Parameter remark = null, string url = null, ApiConfig config = null)
 {
     return(ApiHelper.PostResult <SendTemplateResult>("https://api.weixin.qq.com/cgi-bin/message/template/send?$acac$", new { touser, template_id, url, data = BuildParameterObject(parameters, first, remark) }, config));
 }