国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim WeChat-Applet WeChat-Entwicklung Entwicklung der ?ffentlichen WeChat-Plattform: Erweiterte Schnittstellenbeschreibung

Entwicklung der ?ffentlichen WeChat-Plattform: Erweiterte Schnittstellenbeschreibung

Feb 27, 2017 pm 01:23 PM
Wechat ?ffentliche Plattform

Die hier erw?hnte erweiterte Schnittstelle bezieht sich auf die erweiterten Funktionen, die für zertifizierte Dienstkonten ge?ffnet sind.

Erweiterte Funktionen k?nnen grob klassifiziert werden als:

Benutzeroberfl?che

Gruppenoberfl?che

Kundendienstschnittstelle (anders als der zuvor eingeführte Multi-Kundenservice)

Gruppenversandschnittstelle

Multimedia-Schnittstelle

QR-Code-Schnittstelle

Vorlagennachrichtenschnittstelle (nicht alle Konten k?nnen aktiviert werden)

OAuth2 .0 (Relativ kompliziert, wird sp?ter eingeführt)

Alle oben genannten Schnittstellen sind im Senparc.Weixin.MP.AdvancedAPIs-Namespace enthalten.

Einige allgemeine Vorg?nge

Fast alle High-Level-Schnittstellen erfordern AccessToken für die Kommunikation (beachten Sie, dass die folgenden Schnittstellen ohne spezielle Anweisungen dieses AccessToken erfordern, aber nicht alle), also die meisten Es wird ein AccessToken geben Parameter übergeben. Informationen zum Erhalten und Betreiben von AccessToken finden Sie im Senparc.Weixin.MP SDK WeChat Public Platform Development Tutorial (8): Allgemeine Schnittstellenbeschreibung.

Benutzeroberfl?che

Quelldateiordner: Senparc.Weixin.MP/AdvancedAPIs/User

Die relevanten Methoden im Quellcode sind wie folgt:

namespace Senparc.Weixin.MP.AdvancedAPIs
{
    //接口詳見:http://mp.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E7%94%A8%E6%88%B7%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF
    
    /// <summary>
    /// 用戶接口
    /// </summary>
    public static class User
    {
        /// <summary>
        /// 獲取用戶信息
        /// </summary>
        /// <param name="accessToken">調(diào)用接口憑證</param>
        /// <param name="openId">普通用戶的標識,對當前公眾號唯一</param>
        /// <param name="lang">返回國家地區(qū)語言版本,zh_CN 簡體,zh_TW 繁體,en 英語</param>
        /// <returns></returns>
        public static UserInfoJson Info(string accessToken, string openId, Language.zh_CN)
        {
            string url = string.Format("https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}&lang={2}",
                accessToken, openId, lang.ToString());
            return HttpUtility.Get.GetJson<UserInfoJson>(url);

            //錯誤時微信會返回錯誤碼等信息,JSON數(shù)據(jù)包示例如下(該示例為AppID無效錯誤):
            //{"errcode":40013,"errmsg":"invalid appid"}
        }

        /// <summary>
        /// 獲取關注著OpenId信息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="nextOpenId"></param>
        /// <returns></returns>
        public static OpenIdResultJson Get(string accessToken, string nextOpenId)
        {
            string url = string.Format("https://api.weixin.qq.com/cgi-bin/user/get?access_token={0}",
                accessToken);
            if (!string.IsNullOrEmpty(nextOpenId))
            {
                url += "&next_openid=" + nextOpenId;
            }
            return HttpUtility.Get.GetJson<OpenIdResultJson>(url);
        }
    }
}

Gruppenschnittstelle

Quelldateiordner: Senparc.Weixin.MP/AdvancedAPIs/Groups

Die relevanten Methoden im Quellcode lauten wie folgt:

namespace Senparc.Weixin.MP.AdvancedAPIs
{
    /// <summary>
    /// 用戶組接口
    /// </summary>
    public static class Groups
    {

        /// <summary>
        /// 創(chuàng)建分組
        /// </summary>
        /// <returns></returns>
        public static CreateGroupResult Create(string accessToken, string name)
        {
            var urlFormat = "https://api.weixin.qq.com/cgi-bin/groups/create?access_token={0}";
            var data = new
            {
                group = new
                {
                    name = name
                }
            };
            return CommonJsonSend.Send<CreateGroupResult>(accessToken, urlFormat, data);
        }

        /// <summary>
        /// 發(fā)送文本信息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <returns></returns>
        public static GroupsJson Get(string accessToken)
        {
            var urlFormat = "https://api.weixin.qq.com/cgi-bin/groups/get?access_token={0}";
            var url = string.Format(urlFormat, accessToken);
            return HttpUtility.Get.GetJson<GroupsJson>(url);
        }

        /// <summary>
        /// 獲取用戶分組
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="openId"></param>
        /// <returns></returns>
        public static GetGroupIdResult GetId(string accessToken, string openId)
        {
            var urlFormat = "https://api.weixin.qq.com/cgi-bin/groups/getid?access_token={0}";
            var data = new { openid = openId };
            return CommonJsonSend.Send<GetGroupIdResult>(accessToken, urlFormat, data);
        }

        /// <summary>
        /// 創(chuàng)建分組
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="id"></param>
        /// <param name="name">分組名字(30個字符以內(nèi))</param>
        /// <returns></returns>
        public static WxJsonResult Update(string accessToken, int id, string name)
        {
            var urlFormat = "https://api.weixin.qq.com/cgi-bin/groups/update?access_token={0}";
            var data = new
            {
                group = new
                {
                    id = id,
                    name = name
                }
            };
            return CommonJsonSend.Send(accessToken, urlFormat, data);
        }

        /// <summary>
        /// 移動用戶分組
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="openId"></param>
        /// <param name="toGroupId"></param>
        /// <returns></returns>
        public static WxJsonResult MemberUpdate(string accessToken, string openId, int toGroupId)
                {
            var urlFormat = "https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token={0}";
            var data = new
            {
                openid = openId,
                to_groupid = toGroupId
            };
            return CommonJsonSend.Send(accessToken, urlFormat, data);
        }
    }
}

Kundendienstschnittstelle

Zur Erl?uterung: Die Kundendienstschnittstelle unterscheidet sich hier vom vorherigen ?Mehrkundendienst“. Der zuvor eingeführte Mehrkundendienst ?ndert den Benutzerkonversationsstatus in ?Mehrkundendienst“ und die Nachricht wird an einen dedizierten Multi-Kundenservice-Client gesendet. Dieser Dialog wird vom Benutzer initiiert. Der ?Kundendienst“ bezieht sich hier tats?chlich auf das aktive Senden von Nachrichten an bestimmte Benutzer zu jedem Zeitpunkt (die Benutzer haben innerhalb von 48 Stunden interagiert), und die Konversation muss nicht vom Benutzer initiiert werden.

Ordner der Quelldatei: Senparc.Weixin.MP/AdvancedAPIs/Custom

Die relevanten Methoden im Quellcode lauten wie folgt:

namespace Senparc.Weixin.MP.AdvancedAPIs
{
    /// <summary>
    /// 客服接口
    /// </summary>
    public static class Custom
    {
        private const string URL_FORMAT = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={0}";

        /// <summary>
        /// 發(fā)送文本信息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="openId"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        public static WxJsonResult SendText(string accessToken, string openId, string content)
        {
            var data = new
            {
                touser = openId,
                msgtype = "text",
                text = new
                {
                    content = content
                }
            };
            return CommonJsonSend.Send(accessToken, URL_FORMAT, data);
        }

        /// <summary>
        /// 發(fā)送圖片消息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="openId"></param>
        /// <param name="mediaId"></param>
        /// <returns></returns>
        public static WxJsonResult SendImage(string accessToken, string openId, string mediaId)
        {
            var data = new
            {
                touser = openId,
                msgtype = "image",
                image = new
                {
                    media_id = mediaId
                }
            };
            return CommonJsonSend.Send(accessToken, URL_FORMAT, data);
        }

        /// <summary>
        /// 發(fā)送語音消息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="openId"></param>
        /// <param name="mediaId"></param>
        /// <returns></returns>
        public static WxJsonResult SendVoice(string accessToken, string openId, string mediaId)
        {
            var data = new
            {
                touser = openId,
                msgtype = "voice",
                voice = new
                {
                    media_id = mediaId
                }
            };
            return CommonJsonSend.Send(accessToken, URL_FORMAT, data);
        }

        /// <summary>
        /// 發(fā)送視頻消息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="openId"></param>
        /// <param name="mediaId"></param>
        /// <param name="thumbMediaId"></param>
        /// <returns></returns>
        public static WxJsonResult SendVideo(string accessToken, string openId, string mediaId, string thumbMediaId)
        {
            var data = new
            {
                touser = openId,
                msgtype = "video",
                video = new
                {
                    media_id = mediaId,
                    thumb_media_id = thumbMediaId
                }
            };
            return CommonJsonSend.Send(accessToken, URL_FORMAT, data);
        }

        /// <summary>
        /// 發(fā)送音樂消息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="openId"></param>
        /// <param name="title">音樂標題(非必須)</param>
        /// <param name="description">音樂描述(非必須)</param>
        /// <param name="musicUrl">音樂鏈接</param>
        /// <param name="hqMusicUrl">高品質(zhì)音樂鏈接,wifi環(huán)境優(yōu)先使用該鏈接播放音樂</param>
        /// <param name="thumbMediaId">視頻縮略圖的媒體ID</param>
        /// <returns></returns>
        public static WxJsonResult SendMusic(string accessToken, string openId, string title, string description,
                                    string musicUrl, string hqMusicUrl, string thumbMediaId)
        {
            var data = new
            {
                touser = openId,
                msgtype = "music",
                music = new
                {
                    title = title,
                    description = description,
                    musicurl = musicUrl,
                    hqmusicurl = hqMusicUrl,
                    thumb_media_id = thumbMediaId
                }
            };
            return CommonJsonSend.Send(accessToken, URL_FORMAT, data);
        }

        /// <summary>
        /// 發(fā)送圖文消息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="openId"></param>
        /// <param name="title">音樂標題(非必須)</param>
        /// <param name="description">音樂描述(非必須)</param>
        /// <param name="musicUrl">音樂鏈接</param>
        /// <param name="hqMusicUrl">高品質(zhì)音樂鏈接,wifi環(huán)境優(yōu)先使用該鏈接播放音樂</param>
        /// <param name="thumbMediaId">視頻縮略圖的媒體ID</param>
        /// <returns></returns>
        public static WxJsonResult SendNews(string accessToken, string openId, List<Article> articles)
        {
            var data = new
            {
                touser = openId,
                msgtype = "news",
                news = new
                {
                    articles = articles.Select(z => new
                                {
                                    title = z.Title,
                                    description = z.Description,
                                    url = z.Url,
                                    picurl = z.PicUrl//圖文消息的圖片鏈接,支持JPG、PNG格式,較好的效果為大圖640*320,小圖80*80
                                }).ToList()
                }
            };
            return CommonJsonSend.Send(accessToken, URL_FORMAT, data);
        }
    }
}

Gruppenschnittstelle

Der Effekt des Massenversands hier ist derselbe, als würde man sich beim WeChat-Backend anmelden, um Massennachrichten zu versenden.

Ordner der Quelldatei: Senparc.Weixin.MP/AdvancedAPIs/GroupMessage

Die relevanten Methoden im Quellcode lauten wie folgt:

namespace Senparc.Weixin.MP.AdvancedAPIs
{
    /// <summary>
    /// 高級群發(fā)接口
    /// </summary>
    public static class GroupMessage
    {
        /// <summary>
        /// 根據(jù)分組進行群發(fā)
        /// 
        /// 請注意:
        /// 1、該接口暫時僅提供給已微信認證的服務號
        /// 2、雖然開發(fā)者使用高級群發(fā)接口的每日調(diào)用限制為100次,但是用戶每月只能接收4條,請小心測試
        /// 3、無論在公眾平臺網(wǎng)站上,還是使用接口群發(fā),用戶每月只能接收4條群發(fā)消息,多于4條的群發(fā)將對該用戶發(fā)送失敗。
        /// 
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="groupId">群發(fā)到的分組的group_id</param>
        /// <param name="mediaId">用于群發(fā)的消息的media_id</param>
        /// <returns></returns>
        public static SendResult SendGroupMessageByGroupId(string accessToken, string groupId, string mediaId)
        {
            const string urlFormat = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token={0}";
            var data = new
            {
                filter = new
                {
                    group_id = groupId
                },
                mpnews = new
                {
                    media_id = mediaId
                },
                msgtype = "mpnews"
            };
            return CommonJsonSend.Send<SendResult>(accessToken, urlFormat, data);
        }

        /// <summary>
        /// 根據(jù)OpenId進行群發(fā)
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="mediaId">用于群發(fā)的消息的media_id</param>
        /// <param name="openIds">openId字符串數(shù)組</param>
        /// <returns></returns>
        public static SendResult SendGroupMessageByOpenId(string accessToken, string mediaId, params string[] openIds)
        {
            const string urlFormat = "https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token={0}";

            var data = new
            {
                touser = openIds,
                mpnews = new
                {
                    media_id = mediaId
                },
                msgtype = "mpnews"
            };
            return CommonJsonSend.Send<SendResult>(accessToken, urlFormat, data);
        }

        /// <summary>
        /// 刪除群發(fā)消息
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="mediaId">發(fā)送出去的消息ID</param>
        /// <returns></returns>
        public static WxJsonResult DeleteSendMessage(string accessToken, string mediaId)
        {
            //官方API地址為https://api.weixin.qq.com//cgi-bin/message/mass/delete?access_token={0},應該是多了一個/
            const string urlFormat = "https://api.weixin.qq.com/cgi-bin/message/mass/delete?access_token={0}";

            var data = new
            {
                msgid = mediaId
            };
            return CommonJsonSend.Send<WxJsonResult>(accessToken, urlFormat, data);
        }
    }
}

Multimedia-Schnittstelle

Die Multimedia-Schnittstelle wird zum Hochladen von Multimedia-Informationen wie Bildern, Stimmen, grafischen Nachrichten usw. verwendet. Im Allgemeinen k?nnen diese Informationen für Kundendienstschnittstellen oder Gruppenversand verwendet werden.

Ordner der Quelldatei: Senparc.Weixin.MP/AdvancedAPIs/Media

Die relevanten Methoden im Quellcode sind wie folgt:

namespace Senparc.Weixin.MP.AdvancedAPIs
{
    //接口詳見:http://mp.weixin.qq.com/wiki/index.php?title=%E4%B8%8A%E4%BC%A0%E4%B8%8B%E8%BD%BD%E5%A4%9A%E5%AA%92%E4%BD%93%E6%96%87%E4%BB%B6
    
    /// <summary>
    /// 多媒體文件接口
    /// </summary>
    public static class Media
    {
        /// <summary>
        /// 上傳媒體文件
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="type"></param>
        /// <param name="file"></param>
        /// <returns></returns>
        public static UploadResultJson Upload(string accessToken, UploadMediaFileType type, string file)
        {
            var url = string.Format("http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", accessToken, type.ToString());
            var fileDictionary = new Dictionary<string, string>();
            fileDictionary["media"] = file;
            return HttpUtility.Post.PostFileGetJson<UploadResultJson>(url, null, fileDictionary, null);
        }

        /// <summary>
        /// 下載媒體文件
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="mediaId"></param>
        /// <param name="stream"></param>
        public static void Get(string accessToken, string mediaId, Stream stream)
        {
            var url = string.Format("http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={0}&media_id={1}",
                accessToken, mediaId);
            HttpUtility.Get.Download(url, stream);
        }

        /// <summary>
        /// 上傳圖文消息素材
        /// </summary>
        /// <param name="accessToken">Token</param>
        /// <param name="news">圖文消息組</param>
        /// <returns></returns>
        public static UploadMediaFileResult UploadNews(string accessToken, params NewsModel[] news)
        {
            const string urlFormat = "https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token={0}";
            var data = new
            {
                articles = news
            };
            return CommonJsonSend.Send<UploadMediaFileResult>(accessToken, urlFormat, data);
        }


    }
}

QR-Code-Schnittstelle

Nutzen Sie die QR-Code-Schnittstelle, um QR-Codes einfach zu erstellen und zu verifizieren. Der erstellte QR-Code wird verwendet, um es dem Benutzer zu erm?glichen, sich auf die gescannte Szene zu konzentrieren oder diese zu identifizieren.

Ordner der Quelldatei: Senparc.Weixin.MP/AdvancedAPIs/QrCode

Die relevanten Methoden im Quellcode lauten wie folgt:

namespace Senparc.Weixin.MP.AdvancedAPIs
{
    //API:http://mp.weixin.qq.com/wiki/index.php?title=%E7%94%9F%E6%88%90%E5%B8%A6%E5%8F%82%E6%95%B0%E7%9A%84%E4%BA%8C%E7%BB%B4%E7%A0%81

    /// <summary>
    /// 二維碼接口
    /// </summary>
    public static class QrCode
    {
        /// <summary>
        /// 創(chuàng)建二維碼
        /// </summary>
        /// <param name="expireSeconds">該二維碼有效時間,以秒為單位。 最大不超過1800。0時為永久二維碼</param>
        /// <param name="sceneId">場景值ID,臨時二維碼時為32位整型,永久二維碼時最大值為1000</param>
        /// <returns></returns>
        public static CreateQrCodeResult Create(string accessToken, int expireSeconds, int sceneId)
        {
            var urlFormat = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token={0}";
            object data = null;
            if (expireSeconds > 0)
            {
                data = new
                {
                    expire_seconds = expireSeconds,
                    action_name = "QR_SCENE",
                    action_info = new
                    {
                        scene = new
                        {
                            scene_id = sceneId
                        }
                    }
                };
            }
            else
            {
                data = new
                {
                    action_name = "QR_LIMIT_SCENE",
                    action_info = new
                    {
                        scene = new
                        {
                            scene_id = sceneId
                        }
                    }
                };
            }
            return CommonJsonSend.Send<CreateQrCodeResult>(accessToken, urlFormat, data);
        }

        /// <summary>
        /// 獲取二維碼(不需要AccessToken)
        /// 錯誤情況下(如ticket非法)返回HTTP錯誤碼404。
        /// </summary>
        /// <param name="ticket"></param>
        /// <param name="stream"></param>
        public static void ShowQrCode(string ticket, Stream stream)
        {
            var urlFormat = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={0}";
            HttpUtility.Get.Download(string.Format(urlFormat, ticket), stream);
        }
    }
}

Vorlagennachrichtenschnittstelle

Vorlagennachrichten ?hneln SMS-Benachrichtigungen. Sie folgen einem bestimmten Vorlagenformat (anders als Grafik- und Textnachrichten) und k?nnen nicht von jedem verifizierten Dienstkonto abgerufen werden.

Ordner der Quelldatei: Senparc.Weixin.MP/AdvancedAPIs/TemplateMessage

Die relevanten Methoden im Quellcode lauten wie folgt:

namespace Senparc.Weixin.MP.AdvancedAPIs
{
    /// <summary>
    /// 模板消息接口
    /// </summary>
    public static class Template
    {
        public static WxJsonResult SendTemplateMessage<T>(string accessToken, string openId, string templateId, string topcolor, T data)
        {
            const string urlFormat = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}";
            var msgData = new TempleteModel()
            {
                template_id = templateId,
                topcolor = topcolor,
                touser = openId,
                data = data
            };
            return CommonJsonSend.Send<WxJsonResult>(accessToken, urlFormat, msgData);
        }
    }
}

OAuth2.0-Schnittstelle

Die OAuth-Schnittstelle wird verwendet, um die Identit?t von Benutzern sicher zu überprüfen, auf die über den eingebetteten WeChat-Browser zugegriffen wird (z. B. zum Abrufen von OpenId).

Quelldateiordner: Senparc.Weixin.MP/AdvancedAPIs/OAuth

Im Vergleich zu anderen Schnittstellen ist OAuth2.0 etwas komplizierter

Weitere Artikel zur Entwicklung ?ffentlicher WeChat-Plattformen: Erweiterte Schnittstellenbeschreibungen finden Sie auf der chinesischen PHP-Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276