微信令牌使用场景:
-
调用微信API接口:
- 访问和调用微信提供的各种API接口,如用户管理、消息发送、素材管理等。无论是公众号、微信小程序还是微信开放平台,许多API请求都需要提供有效的access token。
-
获取用户信息:
- 通过OAuth2.0授权,获取用户的基本信息(如昵称、头像、性别等),需要使用access token。例如,通过网页授权获取用户信息,获取用户的openid和其他基本信息。
-
var userInfo = await UserApi.InfoAsync(accessToken, openId);
-
发送模板消息:
- 在微信公众平台和微信小程序中,开发者可以使用access token调用接口发送模板消息,通知用户有关活动、订单状态等信息。
-
var result = await TemplateApi.SendTemplateMessageAsync(accessToken, templateMessage);
-
管理素材:
- 开发者可以使用access token上传、下载和管理微信的永久素材和临时素材,如图片、语音、视频等。
-
var mediaId = await MediaApi.UploadTemporaryMediaAsync(accessToken, mediaType, fileStream);
-
微信支付:
- 在微信支付的场景中,部分接口(如刷卡支付、扫码支付等)可能需要access token来进行身份验证和交易处理。
-
微信开放平台的第三方平台:
- 第三方平台(如代开发者处理公众号、小程序)需要使用component access token来调用开放平台的相关接口,管理和代替其他公众号、小程序处理一些操作。
-
微信客服接口:
- 通过微信公众平台的客服接口,使用access token来发送客服消息,与用户进行互动和沟通。
-
微信小程序登录:
- 在微信小程序中,通过登录接口获取用户的session key,进而获取用户的加密数据(如微信绑定的手机号、用户信息等)。
微信不同令牌的获取步骤
1. 公众号(公众平台)Access Token
公众号的Access Token用于调用公众号的各种API接口。
步骤:
1.获取AppID和AppSecret:
从微信公众平台管理后台获取公众号的AppID和AppSecret。
2.请求Access Token:
通过HTTP GET请求以下URL来获取Access Token:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
解析响应:
解析微信服务器返回的JSON响应,获取Access Token:
json
{
"access_token": "ACCESS_TOKEN",
"expires_in": 7200
}
2. 微信小程序Access Token
小程序的Access Token同样用于调用小程序的各种API接口。
步骤:
1.获取AppID和AppSecret:
从微信小程序管理后台获取小程序的AppID和AppSecret。
2.请求Access Token:
通过HTTP GET请求以下URL来获取Access Token:
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
解析响应:
解析微信服务器返回的JSON响应,获取Access Token:
json
{
"access_token": "ACCESS_TOKEN",
"expires_in": 7200
}
3. 微信开放平台(第三方平台)Component Access Token
第三方平台的Component Access Token用于代公众号或小程序调用开放平台的API接口。
步骤:
1.获取ComponentAppID和ComponentAppSecret:
从微信开放平台管理后台获取第三方平台的ComponentAppID和ComponentAppSecret。
2.获取ComponentVerifyTicket:
微信服务器会定期向第三方平台推送ComponentVerifyTicket,第三方平台需要保存这个ticket。
3.请求Component Access Token:
通过HTTP POST请求以下URL来获取Component Access Token:
https://api.weixin.qq.com/cgi-bin/component/api_component_token
请求体:
{
"component_appid": "COMPONENT_APPID",
"component_appsecret": "COMPONENT_APPSECRET",
"component_verify_ticket": "COMPONENT_VERIFY_TICKET"
}
解析响应:
解析微信服务器返回的JSON响应,获取Component Access Token:
{
"component_access_token": "COMPONENT_ACCESS_TOKEN",
"expires_in": 7200
}
示例代码:
以公众号Access Token为例,下面是获取Access Token的示例代码:
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
public async Task<string> GetAccessTokenAsync(string appId, string appSecret)
{
using (HttpClient client = new HttpClient())
{
var url = $"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appId}&secret={appSecret}";
var response = await client.GetStringAsync(url);
var json = JObject.Parse(response);
return json["access_token"].ToString();
}
}