首页 > 代码库 > .net微信公众号开发——基础接口

.net微信公众号开发——基础接口

    本文讲述微信公众号开发中基础接口的使用,包括以下内容:
    (1)获取许可令牌(AccessToken);
    (2)获取微信服务器地址;
    (3)上传、下载多媒体文件;
    (4)创建、显示二维码;
    (5)长链接转短链接。
    开源项目地址:http://git.oschina.net/xrwang2/xrwang.weixin.PublicAccount
    本文的源代码地址:http://git.oschina.net/xrwang2/xrwang.weixin.PublicAccount/blob/master/xrwang.net/Example/BasicInterface.aspx.cs
    本文的演示地址:http://xrwang.net/Example/BasicInterface.aspx
    演示效果如下图:

技术分享
1 获取许可令牌
    AccessToken类封装了许可令牌的相关属性和方法。
    (注:OAuthAccessToken封装了网页授权许可令牌的相关方法。)
    属性有:
    access_token——令牌字符串
    expires_in——有效时间(单位:秒)
    静态方法有:
    Get——获取许可令牌

技术分享
    /// <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 : "获取许可令牌失败。";    }
获取许可令牌的示例

2 获取微信服务器地址
    ServerAddresses类封装了获取服务器地址的属性和方法。
    属性有:
    ip_list——服务器地址数组
    静态方法有:
    Get——获取服务器地址

技术分享
    /// <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);    }
获取微信服务器地址的示例

3 上传、下载多媒体文件
    MultiMediaHelper类封装了多媒体文件的相关方法。
    静态方法有:
    Upload——上传多媒体文件
    Download——下载多媒体文件
    GetDownloadUrl——获取多媒体文件的地址
    GetVideoMediaId——得到消息群发中的视频媒体ID

技术分享
    /// <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);    }
上传多媒体文件,并生成下载链接的示例

4 创建、显示二维码
    QrCode类封装了跟二维码相关的属性与方法。
    属性有:
    ticket——二维码的ticket
    expire_seconds——二维码的有效时间(单位:秒)
    url——二维码图片解析后的地址
    静态方法有:
    Create——创建二维码,不同的重载方法可以创建不同类型的二维码
    GetUrl——获取二维码图片的地址

技术分享
    /// <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 = "";    }
创建并显示二维码的示例

5 长链接转短链接

    ShortUrl封装了长连接转短链接的方法。
    静态方法有:
    Get——将长链接转换成短链接

技术分享
    /// <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);    }
长链接转短链接的示例

感谢您看完本文,希望对您有所帮助。

.net微信公众号开发——基础接口