2016-09-03 15:53:08 JaHello 阅读数 6054
  • asp获取微信公众号网页授权和用户信息(code、access_...

    讲解用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。 获取code、access_token、openid、用户昵称、地区、性别、头像等 官方文档 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Web_Developer_Tools.html#1 开发步骤 1、引导用户进入授权页面同意授权,获取code 2、通过code换取网页授权access_token(与基础支持中的access_token不同) 3、如果需要,开发者可以刷新网页授权access_token,避免过期 4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制) asp获取微信公众号网页授权和用户信息(code、access_token、openid等) 01-asp获取微信公众号网页授权和用户信息演示 02-asp获取远程网页内容 03-官方文档概要 04-获取用户同意授权 05-拿到code后获取返回信息 06-获取access_token内容 07-获取微信用户openid数据 08-获取微信用户的所有信息 09-用户头像、昵称、区域、性别

    99 人正在学习 去看看 黄菊华


用java做微信开发,验证token时怎么尝试总是失败,于是把每一步获取和计算参数都打印出来看看到底发生了什么。


这是源代码

doGet 方法:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String signature = request.getParameter("signature");
		String timestamp = request.getParameter("timestamp");
		String nonce = request.getParameter("nonce");
		String echostr = request.getParameter("echostr");
		
		PrintWriter out = response.getWriter();
		if (CheckUtil.checkSignature(signature, timestamp, nonce)){
			System.out.println("check ok");
			out.print(echostr);
			
		}
		out.close();
	}

check util:

public static boolean checkSignature(String signature, String timestamp,
			String nonce) {
		String[] arr = new String[] { token, timestamp, nonce };
		// sort
		Arrays.sort(arr);

		// generate String
		String content = arr[0]+arr[1]+arr[2];
		
		
		// shal code
		String temp = new SHA1().getDigestOfString(content.getBytes());

		return temp.equalsIgnoreCase(signature);
	}

思想其实就是获取到参数 timestamp, nonce 和自己定义的 参数 token一起排序,然后生成一个它们排序后的新字符串,然后给这个字符串用SHA1加密,如果加密结果和获取到的参数 signature相等,则返回获得的参数 echostr。


刚开始我比较获得的参数,加密后怎么看都与 signature 相等,但是验证信息却总是发现不等,后来发现问题在大小写字母上,我使用的SHA1加密后返回的是大写字母,于是在比较的时候改为“temp.equalsIgnoreCase(signature)”忽略大小写比较后,果然通过验证。\(^o^)/~





2018-09-15 11:22:09 swimming_in_IT_ 阅读数 140
  • asp获取微信公众号网页授权和用户信息(code、access_...

    讲解用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。 获取code、access_token、openid、用户昵称、地区、性别、头像等 官方文档 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Web_Developer_Tools.html#1 开发步骤 1、引导用户进入授权页面同意授权,获取code 2、通过code换取网页授权access_token(与基础支持中的access_token不同) 3、如果需要,开发者可以刷新网页授权access_token,避免过期 4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制) asp获取微信公众号网页授权和用户信息(code、access_token、openid等) 01-asp获取微信公众号网页授权和用户信息演示 02-asp获取远程网页内容 03-官方文档概要 04-获取用户同意授权 05-拿到code后获取返回信息 06-获取access_token内容 07-获取微信用户openid数据 08-获取微信用户的所有信息 09-用户头像、昵称、区域、性别

    99 人正在学习 去看看 黄菊华

以前一直做过微信的开发,毕竟微信开发是现在广大程序猿不得不做的一个开发。其中包括微信的支付,微信的oauth登录。但是一直都没有系统的去完成过一个微信的所有开发,略有遗憾。最近自己申请了一个微信的订阅号,下面记录下,微信的Token验证吧。

进行微信公众平台的开发,进行token验证是第一步,如下图所示。url填写自己的服务器地址。Token这里可以自定义,但是要和代码中的Token保持一致。

验证代码如下:

var crypto = require('crypto');
var url = require('url');
exports.wechat = function(req,res){
	var query = url.parse(req.url,true).query;
	var signature = query.signature;
	var timestamp = query.timestamp;
	var nonce = query.nonce;
	var echostr = query.echostr;
	if(check(timestamp,nonce,signature,"weixin")){
	res.end(echostr);
	}else{
	res.end("It is not from weixin");
	}
};


function check(timestamp,nonce,signature,token){
	var currSign,tmp;
	tmp = [token,timestamp,nonce].sort().join("");
	currSign = crypto.createHash("sha1").update(tmp).digest("hex");
	return (currSign === signature);
};

获取url中包含的signature,timestamp,nonce,echostr。然后将token,timestamp,nonce按照字典序排列。并且加密,再与接收到的signature进行比对,如果相同,则是来自微信的请求,反之则不是。在配置完了后,本来进行其他开发。到最后发现个人申请的订阅号并不能进行认证,所以,这次只能再忍着了。以后公司有类似的资源的话,再做吧。

2017-09-22 08:20:06 towtotow 阅读数 525
  • asp获取微信公众号网页授权和用户信息(code、access_...

    讲解用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。 获取code、access_token、openid、用户昵称、地区、性别、头像等 官方文档 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Web_Developer_Tools.html#1 开发步骤 1、引导用户进入授权页面同意授权,获取code 2、通过code换取网页授权access_token(与基础支持中的access_token不同) 3、如果需要,开发者可以刷新网页授权access_token,避免过期 4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制) asp获取微信公众号网页授权和用户信息(code、access_token、openid等) 01-asp获取微信公众号网页授权和用户信息演示 02-asp获取远程网页内容 03-官方文档概要 04-获取用户同意授权 05-拿到code后获取返回信息 06-获取access_token内容 07-获取微信用户openid数据 08-获取微信用户的所有信息 09-用户头像、昵称、区域、性别

    99 人正在学习 去看看 黄菊华

微信公众号开发中,

获取常用的信息,

微信会直接把结果返回给你。


但是有时我们需要获取一些权限级别高的信息时,

微信会要求我们提供access token

只有通过access token验证后,

才会把内容返回给我们。


11token.jpg


今天的微信开发视频课程中,

将会告诉你怎么获得公众平台开发需要用到的access token…

微信公众号开发获取access token方法,源代码视频教程在线观看

http://edu.csdn.net/course/detail/2586/42345

2015-08-19 15:51:09 inforstack 阅读数 12737
  • asp获取微信公众号网页授权和用户信息(code、access_...

    讲解用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。 获取code、access_token、openid、用户昵称、地区、性别、头像等 官方文档 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Web_Developer_Tools.html#1 开发步骤 1、引导用户进入授权页面同意授权,获取code 2、通过code换取网页授权access_token(与基础支持中的access_token不同) 3、如果需要,开发者可以刷新网页授权access_token,避免过期 4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制) asp获取微信公众号网页授权和用户信息(code、access_token、openid等) 01-asp获取微信公众号网页授权和用户信息演示 02-asp获取远程网页内容 03-官方文档概要 04-获取用户同意授权 05-拿到code后获取返回信息 06-获取access_token内容 07-获取微信用户openid数据 08-获取微信用户的所有信息 09-用户头像、昵称、区域、性别

    99 人正在学习 去看看 黄菊华

官网说明

access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

公众平台的API调用所需的access_token的使用及生成方式说明:

1、为了保密appsecrect,第三方需要一个access_token获取和刷新的中控服务器。而其他业务逻辑服务器所使用的access_token均来自于该中控服务器,不应该各自去刷新,否则会造成access_token覆盖而影响业务;
2、目前access_token的有效期通过返回的expire_in来传达,目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新access_token。在刷新过程中,中控服务器对外输出的依然是老access_token,此时公众平台后台会保证在刷新短时间内,新老access_token都可用,这保证了第三方业务的平滑过渡;
3、access_token的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新access_token的接口,这样便于业务服务器在API调用获知access_token已超时的情况下,可以触发access_token的刷新流程。

如果第三方不使用中控服务器,而是选择各个业务逻辑点各自去刷新access_token,那么就可能会产生冲突,导致服务不稳定。

公众号可以使用AppID和AppSecret调用本接口来获取access_token。AppID和AppSecret可在微信公众平台官网-开发者中心页中获得(需要已经成为开发者,且帐号没有异常状态)。注意调用所有微信接口时均需使用https协议。

接口调用请求说明

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

返回说明

正常情况下,微信会返回下述JSON数据包给公众号:

{"access_token":"ACCESS_TOKEN","expires_in":7200}
参数 说明
access_token 获取到的凭证
expires_in 凭证有效时间,单位:秒


错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):

{"errcode":40013,"errmsg":"invalid appid"}

个人实现.

公众号给用户发消息,用的是基础token,而token,每日上线10W次,如果用户量比较大带根本不够用,节约资源,将token储存起来,在实际开发中,并不能把APPID,SECRET写死,我们将保存在数据配置表中,所以看代码吧!

1.微信工具类定义获取token方法.

	public static GeneralToken getToken(String appid, String secret){
		GeneralToken gt = null;
		try {
			HttpClient hc = new HttpClient();
			Map<String, String> params = new HashMap<String, String>();
			params.put("appid", appid);
			params.put("secret", secret);
			params.put("grant_type", "client_credential");
			String url = "https://api.weixin.qq.com/cgi-bin/token";
			gt =  hc.post(url, params, new JsonParser<GeneralToken>(GeneralToken.class));
		} catch (IOException e) {
			log.error("get token error message:" + e.getMessage() , e); 
			e.printStackTrace();
		}
		return gt;
	}

	public class GeneralToken {
		private String expires_in; //成功有效时间
		private String access_token;  // 普通Token
		private String errcode; //失败ID
		private String errmsg; //失败消息
		//get set 忽略
	}

2.自定义单例类(单例类一个实例,并且实例化由类带本身完成,并向其它类提供使用)

public class Token {
	private Token() {}
	private  String token;
	private static Token instance  = new Token();
	public static Token getInstance() {
		return instance;
	}
	public  String getToken() {
		return token;
	}
	public  void setToken(String token) {
		this.token = token;
	}
}

3.给Token类中token变量赋值,

 Servlet API 中有一个 ServletContextListener 接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期。当Servlet 容器启动或终止Web 应用时,会触发ServletContextEvent 事件,该事件由ServletContextListener 来处理。在 ServletContextListener 接口中定义了处理ServletContextEvent事件的两个方法。

方法1:contextInitialized(ServletContextEvent sce) :当Servlet 容器启动Web 应用时调用该方法。在调用完该方法之后,容器再对Filter 初始化,并且对那些在Web 应用启动时就需要被初始化的Servlet进行初始化。
方法2:contextDestroyed(ServletContextEvent sce) :当Servlet 容器终止Web 应用时调用该方法。在调用该方法之前,容器会先销毁所有的Servlet 和Filter 过滤器。


public class ContextListener implements ServletContextListener {

	@Override
	public void contextInitialized(ServletContextEvent sce) {
		ConfigurationService configurationService = ServerUtil.getBean(ConfigurationService.class);
		String appid = configurationService.getValue(Constants.WX_APPID, Constants.CONFIGURATION_GROUP_WEIXIN);
		String secret = configurationService.getValue(Constants.WX_APPSECRET, Constants.CONFIGURATION_GROUP_WEIXIN);
		GeneralToken gt = WeixinMessageUtil.getToken(appid, secret);
		if(gt != null && !StringUtil.isNullOrEmpty(gt.getAccess_token())){
			Token.getInstance().setToken(gt.getAccess_token());
		}
	}
}

4.使用Spring quartz让Token永不过期。

applicationContext.xml,添加配置。
下面定义定时器,每两个小时刷新Token。

    <bean id="getTokenTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    		<property name="targetObject">
    			<ref bean="taskService" />
    		</property>
    		<property name="targetMethod">
    			<value>getToken</value>
    		</property>
    		<property name="concurrent" value="true" />
    </bean>
    <bean id="getTokenTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
    	<property name="jobDetail">
    		<ref bean="getTokenTask"/>
    	</property>
    	<property name="cronExpression">
    		<value>0 0 0/2 * * ?</value>
    	</property>
    </bean>
    <bean id="startQuertz" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    	<property name="triggers">
    		<list>
    			<ref bean="getTokenTime"/>
    		</list>
    	</property>
    </bean>
添加创建TaskService接口
public interface TaskService {
	public void getToken();
}
实现TaskService接口
@Service("taskService")
public class TaskServiceImpl implements TaskService {
	private static Token tokenCache = Token.getInstance();
	@Override
	public void getToken() {
		try {
			HttpClient hc = new HttpClient();
			if (!StringUtil.isNullOrEmpty(Constants.WX_APPID) && !StringUtil.isNullOrEmpty(Constants.WX_APPSECRET)) {
				Map<String, String> params = new HashMap<String, String>();
				params.put("appid", Constants.WX_APPID);
				params.put("secret", Constants.WX_APPSECRET);
				params.put("grant_type", "client_credential");
				String url = "https://api.weixin.qq.com/cgi-bin/token";
				GeneralToken gt = hc.post(url, params, new JsonParser<GeneralToken>(GeneralToken.class));
				if (gt != null && !StringUtil.isNullOrEmpty(gt.getAccess_token())) {
					System.out.println("token:" +gt.getAccess_token());
					tokenCache.setToken(gt.getAccess_token());
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

注:其中HttpClient 类是被封装过的工具类,

2018-09-21 10:53:24 whisperZhou 阅读数 807
  • asp获取微信公众号网页授权和用户信息(code、access_...

    讲解用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。 获取code、access_token、openid、用户昵称、地区、性别、头像等 官方文档 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Web_Developer_Tools.html#1 开发步骤 1、引导用户进入授权页面同意授权,获取code 2、通过code换取网页授权access_token(与基础支持中的access_token不同) 3、如果需要,开发者可以刷新网页授权access_token,避免过期 4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制) asp获取微信公众号网页授权和用户信息(code、access_token、openid等) 01-asp获取微信公众号网页授权和用户信息演示 02-asp获取远程网页内容 03-官方文档概要 04-获取用户同意授权 05-拿到code后获取返回信息 06-获取access_token内容 07-获取微信用户openid数据 08-获取微信用户的所有信息 09-用户头像、昵称、区域、性别

    99 人正在学习 去看看 黄菊华

vue通过NodeJs本地获取微信access_token及签名,并调用微信接口

一直都想搞一下微信公众号网页开发,公司忙没有时间自己也没开发过所以也没有头绪,前两天通过自己的摸索以及自行查找的资料,终于通过nodejs在本地成功的获取到了微信的access_token及签名,以及调用微信的接口.因为笔者自己在做的时候费了挺长时间,没有找到一个相对完整,详细的一个项目借鉴,有很多的坑,所以下面我将详细的把自己做的过程给大家讲一下,从一开始的注册微信公众号到成功调用微信接口,以给那些还没有开发过经验的人借鉴,第一次写文章,文笔不好,勿怪.

1.注册一个微信公众号

怎么注册微信公众号,可以自行百度一下,网上很多注册的教程,这里就不浪费口舌了

2.开通"开发者模式"

在微信公众平台官网登录之后,我们第一步是要成为开发者,在首页点击"基本配置",右边会出现一个页面,有个"成为开发者"按钮,点击它,我这里我已经是开发者了,所以已经没有了
在这里插入图片描述

3.查看公众号基本信息

成为开发者之后,可以看到如下页面,我们可以看到自己的AppId和Appsecret(这个很重要,最好记在哪里,记在手机/笔记本都可以)
在这里插入图片描述

4.申请微信公众号测试账号

为什么申请测试账号,一因为微信公众号的接口它是有调用次数限制的,二是测试账号比较方便,可以胡来,哈哈哈,点击"开发->开发者工具",就在之前点击的"基本配置"下面(如后面出现一些点击"xxx",一般都在页面左侧),可以看到如下页面,选择"公众平台测试账号",然后我们需要用手机微信扫码登录
在这里插入图片描述

5.测试账号配置

登录成功之后,会看到下面的页面,在我圈的红色框中,填写你的域名,比如我vue本地项目启动成功后是localhost:9999,你就填localhost:9999,如果是云服务器域名,你就填你申请的域名,如www.xxx.com,上面的接口配置信息暂时可以不用配置,到这里我们已经完成了整个微信公众号测试账号的配置
在这里插入图片描述

6.创建vue项目

这里的前提是你已经安装了node并且会vue,我们通过vue-cli创建一个项目,创建项目过程的截图我就不放出来了,移步到这里查看,如果看不懂,也可以自行百度一下 哈哈哈,网上也有很多怎么通过vue-cli创建vue项目,我创建这个项目用的是vue-cli 2.0,现在已经是vue-cli 3.0,我自己也是在摸索中 哈哈…下面的图就是通过vue-cli创建的项目
在这里插入图片描述

7.node配置

注意在上图中,server文件夹是需要自行创建的,vue-cli创建的项目是没有这个文件夹的,里面放了相关的nodejs代码,接下来我们看看里面都有什么文件,下图中我给主要的文件都作了注释,其余2个是链接Mysql数据库的,我这里就不讲了,我自己也不是很会,也是参照别人的,哈哈哈,就不献丑了
在这里插入图片描述

我们先看看api.js,这里面就写了一个方法是用来获取access_token和签名的,这里用的是axios,所以在vue项目里你要安装axios.接下来我们先定义一下appId和appsecret,值就是你之前申请测试账号时的appId和appsecret,请求地址在微信开发者文档里有,移步微信开发者文档,获取到access_token之后,我们通过access_token获取微信签名(微信签名算法在sign.js,稍后我会贴出来),然后返回获取到的数据,这里的定义的config对象也可以在微信开发者文档里看,你也可以定义在前端-----我们是通过module.exports把代码暴露出去以便引用
在这里插入图片描述

微信签名算法

这个算法我也是直接百度的…经测试是可以用的…具体算法规则要去看一下微信开发者文档…这里就不说了…

var createNonceStr = function () {
  return Math.random().toString(36).substr(2, 15);
};

var createTimestamp = function () {
  return parseInt(new Date().getTime() / 1000) + '';
};

var raw = function (args) {
  var keys = Object.keys(args);
  keys = keys.sort();
  var newArgs = {};
  keys.forEach(function (key) {
    newArgs[key.toLowerCase()] = args[key];
  });

  var string = '';
  for (var k in newArgs) {
    string += '&' + k + '=' + newArgs[k];
  }
  string = string.substr(1);
  return string;
};

/**
* @synopsis 签名算法 
*
* @param jsapi_ticket 用于签名的 jsapi_ticket
* @param url 用于签名的 url ,注意必须动态获取,不能 hardcode
*
* @returns
*/
var sign = function (jsapi_ticket, url) {
  var ret = {
    jsapi_ticket: jsapi_ticket,
    nonceStr: createNonceStr(),
    timestamp: createTimestamp(),
    url: url
  };
  var string = raw(ret);
      jsSHA = require('jssha');
      shaObj = new jsSHA(string, 'TEXT');
  ret.signature = shaObj.getHash('SHA-1', 'HEX');

  return ret;
};

module.exports = sign;

我们再看一下router.js,代码很少,就是你前端要请求的路由地址,这里我们要用到express,所以你也要保证你的vue项目里的node_modules包里有express,没有你就安装一下,不会安装就百度(屡试不爽),反正你缺少什么模块你就安装什么模块就行了,跑题了,继续说下图中的代码,我们引入之前的api.js,然后调用express.Router(express.Router可以认为是一个微型的只用来处理中间件与控制器的 app,它拥有和 app 类似的方法,例如 get、post、all、use 等等),定义了前端请求接口地址’/getToken’,调用api.js里定义的方法,也需要把router暴露出去

在这里插入图片描述

最后我们看看index.js,这里我们把刚刚写好的router.js引入进来,把express也引入进来,并且创建一个express应用程序app(就是第4行代码),设置一下请求头和跨域还有返回的状态码,app.use()一下后端api路由,’/api’是调用中间件函数的路径,我前端用了代理,请求路径都增加了’/api’,所以后端的所有请求路径也要加上,最后app.listen(8088)监听端口号(你喜欢什么数字都行,端口号不用和我一样)

在这里插入图片描述

下面我们通过cmder(或者你用window自带的cmd命令打开DOS窗口)进入server文件夹,输入node index.js启动8088端口,看启动成功了…

在这里插入图片描述

8.启动vue项目

也通过cmder进入到vue项目所在的目录,npm run dev启动
在这里插入图片描述

9.前端环境配置

然后我在static文件夹下面创建了一个js文件夹,里面放了一个环境配置的文件
在这里插入图片描述
在这里插入图片描述

本地请求接口是localhost:8088,你也可以添加生产环境的,我这里还没添加,比如

'production': { apiRoot: 'http://www.xxx.cn:8088'}

线上的不添加后面的端口号8088不知道可不可以我还没试过…然后在index.html里引用一下
在这里插入图片描述

在"src"文件夹下创建一个api文件夹,在此文件下创建一个index.js,用来封装我们前端的请求
在这里插入图片描述
在这里插入图片描述

这里的window._ENV.apiRoot就是我在static文件夹里的环境配置文件, 之前我们已经在index.html引入过了,所以能在这里用,为什么这里要传url,因为在node里请求签名的时候签名算法那里需要

10.修改config配置

打开vue项目下的config文件夹里的index.js,设置一下代理,因为这里添加了"/api",所以后端的都要加上,修改了配置,vue项目需要重新启动一下
在这里插入图片描述

11.测试获取token及签名,并调用微信接口

我们先看看"src"文件夹里的目录结构,我把vue-cli自动创建的删了部分,然后自己创建了部分
在这里插入图片描述

我们在pages文件夹里创建一个页面组件index
在这里插入图片描述
在这里插入图片描述
下面是index.vue里的代码,这里我用到iview,所以是,还有一个非常重要,安装一下微信jssdk,npm install weixin-js-sdk --save,也可以自行百度查一下怎么安装,不然你什么功能都用不了,哈哈哈,我一开始就没安装,引入我们定义的api
在这里插入图片描述

把请求token的方法写在methods里,然后created的时候调用,我这里写了两个按钮进行测试,用到了获取地理位置,打开地址位置,微信扫一扫接口,这里除了获取地理位置,其他通过用户交互的都写在methods里
在这里插入图片描述
在这里插入图片描述

12.使用微信开发者工具调试

下载并安装一下微信开发者工具(微信开发者工具下载),用二维码登录,选择公众号网页开发,在地址栏输入你的vue启动地址,就OK了,可以查看接口是否调用成功了,这里一开始获取地理位置成功
在这里插入图片描述

点击了两个按钮之后,也是成功了看下图,哈哈哈,很开心…
在这里插入图片描述

文章到这里就结束了…大家也可以去我的github上查看我的源码(项目地址),后面我会继续写一篇《如何将node + vue 项目部署到服务器上,并调用微信接口》,大家可以先感受一些我线上的demo(线上demo),用手机微信打开,access_token一天上限是2000次,如果你没有体验成功,可能就是到上限了,也可以关注我的微信公众号,后面陆续的我会把文章发布到微信公众号上…附上公众号的二维码,目前还没有发布文章,不要嫌弃哈哈哈…如有问题可以在下面评论,或者指出我的问题,大家互相学习,谢谢…
在这里插入图片描述

微信开发-如何优雅的注入token(2)

博文 来自: Hendiaome
没有更多推荐了,返回首页