@tnwx/openmp
Version:
TNWX 微信系开发脚手架之缓存
76 lines • 3.94 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const util = require("util");
const urlencode = require("urlencode");
const accesstoken_1 = require("@tnwx/accesstoken");
const kits_1 = require("@tnwx/kits");
/**
* @author Javen
* @copyright javendev@126.com
* @description 代公众号发起网页授权
*/
class OpenMpSnsAccessTokenApi {
/**
* 获取授权链接
* @param appId 公众号的 appId
* @param redirectUri 回调地址
* @param scope 授权作用域,拥有多个作用域用逗号(,)分隔
* @param state 重定向后会带上 state 参数,开发者可以填写任意参数值,最多 128 字节
*/
static getAuthorizeUrl(appId, redirectUri, scope, state) {
let url = util.format(this.authorizeUrl, appId, urlencode(redirectUri), scope, accesstoken_1.ApiConfigKit.getApiConfig.getAppId);
if (state) {
url = url + '&state=' + state;
}
return url + '#wechat_redirect';
}
/**
* 通过code换取网页授权access_token
* @param code
*/
static getSnsAccessToken(code, appId) {
return __awaiter(this, void 0, void 0, function* () {
let accessToken = yield accesstoken_1.OpenComponentAccessTokenApi.getAccessToken();
let url = util.format(this.accessTokenUrl, appId, code, accesstoken_1.ApiConfigKit.getApiConfig.getAppId, accessToken.getAccessToken);
return kits_1.HttpKit.getHttpDelegate.httpGet(url);
});
}
/**
* 刷新access_token
* @param refreshToken
*/
static refreshAccessToken(appId, refreshToken) {
return __awaiter(this, void 0, void 0, function* () {
let accessToken = yield accesstoken_1.OpenComponentAccessTokenApi.getAccessToken();
let url = util.format(this.refreshTokenUrl, appId, accesstoken_1.ApiConfigKit.getApiConfig.getAppId, accessToken.getAccessToken, refreshToken);
return kits_1.HttpKit.getHttpDelegate.httpGet(url);
});
}
/**
* 拉取用户信息(需scope为 snsapi_userinfo)
* @param accessToken
* @param openId
* @param lang
*/
static getUserInfo(accessToken, openId, lang) {
return __awaiter(this, void 0, void 0, function* () {
let url = util.format(this.userInfoUrl, accessToken, openId, lang);
return kits_1.HttpKit.getHttpDelegate.httpGet(url);
});
}
}
exports.OpenMpSnsAccessTokenApi = OpenMpSnsAccessTokenApi;
OpenMpSnsAccessTokenApi.authorizeUrl = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=%s&component_appid=%s';
OpenMpSnsAccessTokenApi.accessTokenUrl = 'https://api.weixin.qq.com/sns/oauth2/component/access_token?appid=%s&code=%s&grant_type=authorization_code&component_appid=%s&component_access_token=%s';
OpenMpSnsAccessTokenApi.refreshTokenUrl = 'https://api.weixin.qq.com/sns/oauth2/component/refresh_token?appid=%s&grant_type=refresh_token&component_appid=%s&component_access_token=%s&refresh_token=%s';
OpenMpSnsAccessTokenApi.userInfoUrl = 'https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s&lang=%s';
//# sourceMappingURL=OpenMpSnsAccessTokenApi.js.map
;