Cet article décrit l'utilisation des interfaces de base dans le développement des comptes publics WeChat, notamment les suivantes :
(1) Obtenez le jeton d'autorisation (AccessToken)
(2) Obtenez l'adresse du serveur WeChat ; 🎜> (3) Téléchargez et téléchargez des fichiers multimédias ;
(4) Créez et affichez des codes QR
(5) Convertissez des liens longs en liens courts.
Adresse du projet open source : http://git.oschina.net/xrwang2/xrwang.weixin.PublicAccount
Adresse du code source de cet article : http://git.oschina.net/xrwang2/xrwang.weixin .PublicAccount /blob/master/xrwang.net/Example/BasicInterface.aspx.cs
L'adresse de démonstration de cet article : http://xrwang.net/Example/BasicInterface.aspx
L'effet de démonstration est le suivant :
La classe AccessToken encapsule les propriétés et méthodes pertinentes du jeton d'autorisation.
(Remarque : OAuthAccessToken encapsule les méthodes associées au jeton d'autorisation de page Web.)
Les attributs sont :
access_token - chaîne de jeton
expires_in - durée de validité (unité : secondes)
Les méthodes statiques sont :
Get——Obtenir le jeton d'autorisation
/// <summary> /// 获取许可令牌 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnGetAccessToken_Click(object sender,EventArgs e) { string userName = lbPublicAccount.SelectedValue; AccessToken token = AccessToken.Get(userName); txtAccessToken.Text = token != null ? token.access_token : "获取许可令牌失败。"; }
La classe ServerAddresses encapsule les attributs et les méthodes permettant d'obtenir l'adresse du serveur.
Les attributs incluent :
ip_list - tableau d'adresses du serveur
Les méthodes statiques incluent :
Get - obtenir l'adresse du serveur
/// <summary> /// 获取微信服务器地址 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnGetServerAddress_Click(object sender, EventArgs e) { ErrorMessage errorMessage; ServerAddresses addresses = ServerAddresses.Get(out errorMessage); if (errorMessage.IsSuccess && addresses.ip_list != null) { StringBuilder sb = new StringBuilder(); foreach (string ip in addresses.ip_list) sb.AppendFormat("{0},", ip); txtServerAddress.Text = sb.ToString(); } else txtServerAddress.Text = string.Format("获取微信服务器地址失败。{0}", errorMessage); }
MultiMediaHelper La classe encapsule les méthodes associées aux fichiers multimédia.
Les méthodes statiques sont :
Upload - Télécharger des fichiers multimédias
Download - Télécharger des fichiers multimédias
GetDownloadUrl - Obtenir l'adresse des fichiers multimédias
GetVideoMediaId - Obtenir l'ID du média vidéo dans le message de groupe
/// <summary> /// 上传多媒体文件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnUpload_Click(object sender, EventArgs e) { string userName = lbPublicAccount.SelectedValue; MultiMediaTypeEnum type = (MultiMediaTypeEnum)Enum.Parse(typeof(MultiMediaTypeEnum), lbMultiMediaType.SelectedValue); string filename = fileUpload.FileName; byte[] bytes = fileUpload.FileBytes; ErrorMessage errorMessage; MultiMediaUploadResult result = MultiMediaHelper.Upload(userName, type, filename, bytes, out errorMessage); if (errorMessage.IsSuccess && result != null) hlShowMultiMedia.NavigateUrl = MultiMediaHelper.GetDownloadUrl(AccessToken.Get(userName).access_token, result.MediaId); else hlShowMultiMedia.NavigateUrl = string.Format("javascript:alert('上传多媒体文件失败。\r\n{0}');", errorMessage); } 上传多媒体文件,并生成下载链接的示例
La classe QrCode encapsule les propriétés et méthodes liées au code QR.
Les attributs sont :
ticket - le ticket du code QR
expire_seconds - la durée de validité du code QR (unité : secondes)
url - l'adresse après analyse de l'image du code QR
Les méthodes statiques sont :
Créer——Créer un code QR. Différentes méthodes de surcharge peuvent créer différents types de codes QR
GetUrl——Obtenir l'adresse de l'image du code QR
/// <summary> /// 创建二维码 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnCreateQrCode_Click(object sender, EventArgs e) { string userName = lbPublicAccount.SelectedValue; string strSceneId = txtSceneId.Text; QrCode qrcode=null; ErrorMessage errorMessage; if( cbIsTemple.Checked) { int expireSeconds = int.Parse(txtExpireSeconds.Text); int sceneId; if (int.TryParse(strSceneId, out sceneId)) qrcode = QrCode.Create(userName, expireSeconds, sceneId, out errorMessage); else errorMessage = new ErrorMessage(ErrorMessage.ExceptionCode, "场景值id必须为整数。"); } else { int sceneId; if (int.TryParse(strSceneId, out sceneId)) qrcode = QrCode.Create(userName, sceneId, out errorMessage); else qrcode = QrCode.Create(userName, strSceneId, out errorMessage); } if (errorMessage.IsSuccess && qrcode != null) imgQrCode.ImageUrl = QrCode.GetUrl(qrcode.ticket); else imgQrCode.ImageUrl = ""; }
Les méthodes statiques sont :
Get - Convertir les liens longs en liens courts
/// <summary> /// 获取短链接 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnGetShortUrl_Click(object sender, EventArgs e) { string userName = lbPublicAccount.SelectedValue; ErrorMessage errorMessage; string shortUrl = ShortUrl.Get(userName, txtLongUrl.Text, out errorMessage); if (errorMessage.IsSuccess && string.IsNullOrWhiteSpace(shortUrl)) txtShortUrl.Text = shortUrl; else txtShortUrl.Text = string.Format("获取短链接失败。{0}", errorMessage); }