提前准备

获取Access Token

token是公众号全局唯一票据 在调用其他接口之前都需要先得到token token长度至少512个字符,通常用string保存即可 有效时间2小时 重复获取后,前一次的token会失效

json 反序列化

微信服务器返回数据大部分都是json格式的,所以为了方便我们使用,我们需要封装一个反序列化json的方法 我们使用Newtonsoft.Json 这个第三方组件,版本是.NET 2.0的 封装方法如下:

public static T ReadJson<T>(string jsonText)
{
    return JavaScriptConvert.DeserializeObject<T>(jsonText);
}
Code language: PHP (php)

C# GET方法的封装

我们封装一个GET获取html的方法 打开看Tools.CS的文件

调用获取access token接口

http请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

参数 是否必须 说明 grant_type 是 获取access_token填写client_credential appid 是 第三方用户唯一凭证 secret 是 第三方用户唯一凭证密钥,即appsecret

返回说明

成功返回时候,返回如下:

{"access_token":"ACCESS_TOKEN","expires_in":7200}
Code language: JSON / JSON with Comments (json)

失败的时候返回如下

{"errcode":40013,"errmsg":"invalid appid"}
Code language: JSON / JSON with Comments (json)

各字段说明 access_token 获取到的凭证 expires_in 凭证有效时间,单位:秒 errcode 错误编号 errmsg 错误信息说明

添加一个基类Page

因为我们的aspx页面很多东西都是公用一个的 比如appid appsecret等这些 所以我们可以封装一个基类page 添加一个返回实体 Access_token_info 属性包含成功信息和错误信息 属性名称保留一样的 否则无法反序列化

主要代码:

private const string urlFormat = "[https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}](https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1})";
string url = string.Format(urlFormat, appID, appSecret);
string json = Tool.GetHtml(url);
Access_token_info obj = Tool.ReadJson<Access_token_info>(json);
Code language: PHP (php)
public class Access_token_info
{
    public string access_token { set; get; }
    public string expires_in { set; get; }
    public string errcode { set; get; }
    public string errmsg { set; get; }
}
Code language: JavaScript (javascript)
public class BasePage : System.Web.UI.Page
{
    protected string appID = "";
    protected string appSecret = "";
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注