.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();}elsetxtServerAddress.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);elsehlShowMultiMedia.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);elseerrorMessage = new ErrorMessage(ErrorMessage.ExceptionCode, "场景值id必须为整数。");}else{int sceneId;if (int.TryParse(strSceneId, out sceneId))qrcode = QrCode.Create(userName, sceneId, out errorMessage);elseqrcode = QrCode.Create(userName, strSceneId, out errorMessage);}if (errorMessage.IsSuccess && qrcode != null)imgQrCode.ImageUrl = QrCode.GetUrl(qrcode.ticket);elseimgQrCode.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;elsetxtShortUrl.Text = string.Format("获取短链接失败。{0}", errorMessage);}
长链接转短链接的示例
感谢您看完本文,希望对您有所帮助。
.net微信公众号开发——基础接口相关推荐
- 如何解决微信公众号开发转发接口,分享出去是链接不是卡片
微信公众号已配置完域名且已完成微信认证.appid也准确无误,转发接口也是没有任何问题,但是分享出去后是链接不是卡片 原因 因为这是微信开放全域名访问后出现的限制 解决方案 1.将链接添加至公众号的自 ...
- 微信公众号开发---基础消息能力开发
微信公众号接收普通消息 1.配置开发服务器 微信公众平台->开发->开发者工具->公众平台测试账号 appid:是微信公众号的唯一标识,通过和appsecret进行验证. URL:开 ...
- 微信公众号开发——基础认识
(一)认识 1. 企业号.服务号.订阅号区别 首先订阅号和服务号的区分,订阅号关注后悔收缩到[订阅号消息]中,而服务号放在和聊天记录同层的界面中,下图中订阅号消息中都是订阅号,而其他的几个标记的都是服 ...
- 微信公众号开发-php-sdk接口
<?php/*** 微信公众平台PHP-SDK, 官方API部分* @author dodge <dodgepudding@gmail.com>* @link https://git ...
- 微信 - 公众号开发基础配置
账号内配置 获取openid等功能只能是企业认证的账号可以获取,个人账户没有权限 基本配置 查看AppID和AppSecret,测试过程中还需要配置IP白名单. 功能设置,设置域名授权 配置授权域名, ...
- 微信公众号开发之接口信息配置
接口信息配置就是配置这个地方. Token是随便填的,但是要跟下述的check函数中的token一样. 简述我对这个过程的了解,如有不对,欢迎斧正. URL:就是机器的地址加工程名加文件名. 过程:( ...
- 微信公众号开发(二)基础接口
微信公众号开发(二)基础接口 未经认证的订阅号只有基础接口的权限,基础接口主要包括三个部分:接收用户消息.发送被动响应消息和接收事件推送消息,开发者需要对用户消息在5秒内立即做出回应,微信服务器在五秒 ...
- 微信公众号开发(一)服务器及接口的配置
微信公众号开发(一)服务器及接口的配置 关于微信公众号中的订阅号和服务的区别这里不多加讨论,网上有很多资源可以搜到,这里直接进入正题,如果是个人开发者,这里建议使用测试号进行开发学习,测试号的权限要比 ...
- 微信公众号开发接口语音下载解决方案
需求:利用微信公众号开发接口下载语音,展示并可以收听语音 1.利用微信公众平台开发接口下载语音文件至本机 /*** 下载多媒体文件* @param string $mediaId* @return s ...
最新文章
- mysql,mairadb启动脚本
- 缓存核心知识小抄,面试必备,赶紧收藏!
- python学习费用-python学习,是看免费视频自学,还是报个收费班学习好?
- 转载 程序员上帝视角解读“旅行青蛙”,你的呱真的在旅行嘛? (手机游戏)...
- AXI-IIC官方示例解析
- Ubuntu 14.04,root the Nexus 7 (2013).
- 【Android-NCNN-Vulkan】ncnn-vulkan load param model 速度慢
- LeetCode 861. 翻转矩阵后的得分(贪心)
- 液晶显示器的台式计算机耗电,电脑的显示器一开一关耗电量大么 注意 是显示器的开关...
- android通知背景色,android – 更改通知RemoteViews背景颜色
- 【汇编优化】之arm32汇编优化
- macOS U盘烧录Linux iso镜像
- windows7 配置iis技巧
- 【优化算法】亨利气体溶解度优化算法(HGSO)【含Matlab源码 127期】
- SQL Server生成含有数据的脚本文件
- 去水印小程序源码,全新界面无加密,平台支持微信小程序和QQ小程序。支持解析抖音、快手、皮皮虾和微视等平台。带PHP下载接口。支持微信QQ流量主
- MySQL Audit 审计
- PHP微信扫码关注公众号并授权登录源码
- 降噪效果好的蓝牙耳机该怎么选?盘点四款高品质降噪蓝牙耳机
- 京东数据分析软件 | 如何获取京东平台的“增长榜单”
热门文章
- rust 睡袋怎么用_婴儿晚上用睡袋好吗?带过娃的告诉你正确答案!
- 微信小程序 - 按照官网文档构建npm包 - 提示【没有找到可以构建的npm】
- 假装windows系统升级界面html源码
- SVG 入门教程系列列表
- jQuery:无限循环两个或者多个事件 click / toggle between two functions
- Moodle: Remove customise this page button from profile?
- xml 中插入html代码
- 逐帧动画与人运动动画制作
- 轻量级的 JavaScript 弹出框脚本:TinyBox
- ACM模式数组构建二叉树