精华内容
下载资源
问答
  • 检查代码是不是调用了两次获取accesstoken 和重复使用了code 一个code只能用一次 多半是把获取token地址封装成了方法,然而一次请求中方法又被调用了两次,所以出现了这个错误 调用一次就够了 ...
    {"errcode":40163,"errmsg":"invalid code, hints: [ req_id: UHNfMA.KRa-8gb0KA ]"}
    {"errcode":40029,"errmsg":"invalid code, hints: [ req_id: UHNfMA.KRa-8gb0KA ]"}
    
    原因1重复请求地址获取了两次accesstoken
    检查代码是不是调用了两次获取accesstoken 和重复使用了code  
    一个code只能用一次
    多半是把获取token地址封装成了方法,然而一次请求中方法又被调用了两次,所以出现了这个错误 调用一次就够了
    
    原因2检查该菜单的请求地址code 或者state 是否为null 或没有配置 或错误
    正确配置如下:
    https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=https://blog.csdn.net/WithCYwind&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
    
    展开全文
  • 获得token的java代码片段,网上大部分是PHP代码,这是Java代码在action里定义token值,写一个doget方法传给微信。
  • 打开网页(简称网页A):...对该网页采集数据,但每次重新打开网页A时都会重新生成token。 请问怎样从网页A中获得该token
  • 记录就记录的全面一点吧,记录一下获取 access_token 的两种方式 一种是根据工具类获取 access_token (个人喜欢第一个) 一种是根据 HttpURLConnection 的方式...access_token 分为两种,一种是专门用来网页授...

    关于 access_token 

    access_token 是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用 access_token 

    获取 access_token 的方式有两种 

             1.基础获取 access_token

             2.网页授权获取 access_token

    其中 基础 access_token 和 网页 access_token 也是有区别的!!!除了登陆获取的是网页授权的 access_token 之外,其余的都用普通的 access_token 就可以了,具体详介如下图:

    首先介绍一下,第一种方式获取基础 access_token

    官方地址:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html

    在线接口调试工具测试微信开发:接口调试工具

    接口调用请求说明

    请求方式: 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凭证有效时间,单位:秒

    测试 Demo

        public static void main(String[] args) {
            // 获取 appid 和 appsecret  ==  公众号 ID 和 SERCRET
            String appid = "123";
            String appsecret = "312";
            // 定义请求地址,替换参数
            String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+ appid +"&secret="+appsecret;
            //发送请求 的到返回结果
            String json = HttpUtil.doGet(url,new HashMap<String,Object>(),"");
        }

    第二种方式网页授权获取 access_token

    详细代码可查看:微信开发之获取 openid

    网页授权适用于用户在微信客户端中访问第三方网页,然后可以通过授权机制来获取用户基本信息

    网页授权具体流程大概分为三步

    1、通过授权页面获取 code 

    2、通过 code 获取到 access_token

    3、用 access_token 换取 openid (支持 unionID 机制)

    官方文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html

    首先配置回调地址,回调地址是用来获取 code 的返回值,这个是我在微信测试号配置安全域名,其实就相当于是一个白名单

    接口调用请求说明 (获取 code 信息)

    请求方式: GET https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

    参数说明

    参数是否必须说明
    appid公众号的唯一标识
    redirect_uri授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理
    response_type返回类型,请填写code
    scope应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )
    state重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
    #wechat_redirect无论直接打开还是做页面302重定向时候,必须带此参数

    接口调用请求说明 (根据 code 获取 openid 信息)

    请求方式: GEThttps://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

    参数说明

    参数是否必须说明
    appid公众号的唯一标识
    secret公众号的appsecret
    code填写第一步获取的code参数
    grant_type填写为authorization_code

    测试 Demo

    String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";
    url = url.replace("APPID",appid).replace("SECRET",appsecret).replace("CODE","xxxx");
    //发送请求 的到返回结果
    String json = HttpUtil.doGet(url,new HashMap<String,Object>(),"");
    System.out.println(json);

    正确时返回的JSON数据包如下:

    {
      "access_token":"ACCESS_TOKEN",
      "expires_in":7200,
      "refresh_token":"REFRESH_TOKEN",
      "openid":"OPENID",
      "scope":"SCOPE" 
    }
    
    参数描述
    access_token网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
    expires_inaccess_token接口调用凭证超时时间,单位(秒)
    refresh_token用户刷新access_token
    openid用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID
    scope用户授权的作用域,使用逗号(,)分隔
    展开全文
  • ​今天讲的这俩种access_token,看完我这篇文章的时候可以亲手调一下微信第三方API进行验证一下,你就发现确实是那么回事。 access_token 是公众号的全局唯一接口调用凭据,公众号调用各...使用范围:通过网页授权...

    ​今天讲的这俩种access_token,看完我这篇文章的时候可以亲手调一下微信第三方API进行验证一下,你就发现确实是那么回事。

    access_token 是公众号的全局唯一接口调用凭据,公众号调用各接口时都需要使用access_token。 [ 注意:是所有API接口都需要使用 ]

    首先我们讲讲他们直接的不同之处:

    有效期:两者有效时间都是 7200s

     

    使用范围:通过网页授权获得的access_token,只能获取到对应的微信用户信息,与微信用户是一对一关系;而普通的access_token在有效期内可以使用,可以获取所有用户信息。
    
    次数限制:普通access_token每天获取最多次数为2000次;而网页授权的access_token获取次数没有限制。
    

    如何利用普通access_token获取用户信息:

    调用第三方API接口:

    https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

     

    请求方式GET,参数lang表示返回国家地区语言版本。

    补充:既然通过普通access_token可以获取用户信息,那为什么还要网页授权access_token呢?

     

    小编理解是:

    公众号A想获得受关注用户B的信息,一般来说,A提供一个标识(普通的access_token)给第三方公众平台,说明是自己而不是别的公众号。

    B提供一个标识,用来标识自己(openid)。这样公众号A就可以获取B用户信息了,但是若公众号C也想获取B信息,而B未关注C。

    这样很容易造成用户B信息的泄露,所以比较安全的做法是让用户B去决定是否给公众号C权限,来获取自己的私密信息。这个权限就是网页授权的access_token。 

     

    因此,通过普通access_token获取用户信息时,如果用户未关注,信息获取就为空。而网页授权access_token的获取,只要用户许可,就可以获得,不论用户是否关注。

     

    「 网页授权access_token 」:

    微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息。

    「 获取方式 」:

    在微信公众号开发——微信用户信息获取中对其有过介绍,这里就不再继续说明了。

     

    「 普通access_token 」:

    其他微信接口,需要通过基础支持中的“获取access_token”接口来获取到的普通access_token调用。

    「 获取方式 」:

    调用接口

    https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

    请求方式为GET。

    参数说明:

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

    返回参数:

    参数               说明access_token      获取到的凭证expires_in        凭证有效事件,单位:秒

     

    「 利用普通access_token获取用户信息 」:

    在关注者与公众号产生信息交互后,公众号可获得关注者(注意:用此种方法获取用户信息,前提是用户必须关注公众号)的openid(加密后的微信号,每个用户对每个公众号的openid是唯一的)。

    公众号可通过本接口来根据openid获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。

    「 调用接口 」:

    https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

    请求方式为GET。

    参数说明:

    参数            是否必须    说明access_token    是        调用接口凭证openid          是        普通用户的标识,对当前公众号唯一lang            否        返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语

    返回参数:

    返回参数:可以查看具体微信官方文档。

     

    到这里也就整体是讲解完了,小编上面都写得很清楚了,包括请求的url 以及请求参数,返回参数什么的,文字也标识得很清楚。

    有不知道或者想详细了解朋友,直接可以自己写代码 请求测试一下,让自己更加熟悉通透一下。

    ————————————————

    WeChat微信群交流「WeChat:gtcarry888」

    php web mysql Linux 其他

    这里是一个实验场,希望给读者呈现一副关于中国互联网编程技术的「清明上河图」。
    对互联网编程技术感兴趣「WeChat:gtcarry888」审核通过,进入我们技术交流问题提问解答群。

     

    【每日微信技术分享记录】

    链接:微信技术分享记录 

    https://github.com/gtcarry888/WeChat-Sharing-record

    链接:小程序相关源码 

    https://github.com/gtcarry888/Source-code

     

    原则:群内禁止鄙视、讽刺等任何初学者,否则直接踢群,禁止任何业余广告推广。

    如有其他问题,可联系上述微信或者留言至gtcarry999@163.com邮箱。

     

    喜欢得伙伴可以 微信搜索「资源闲置助手」  关注我的公众号 

     

     

    展开全文
  • 获取token

    千次阅读 2019-04-23 17:21:06
    今天咱们来说说怎么通过代码来获取token 获得token的话首先会有甲方提供一些数据给你们 类似于这种,token的入参和出参。 接着咱们就可以写代码了。 /** * 获取token * @return */ public String ...

    今天咱们来说说怎么通过代码来获取token
    获得token的话首先会有甲方提供一些数据给你们

    在这里插入图片描述
    类似于这种,token的入参和出参。

    接着咱们就可以写代码了。

    /**
    	 * 获取token
    	 * @return
    	 */
    	public String getToken(){
    		String shortUrl = WEIXIN_SHORT_TOKEN;	//这是一个token的入参url 只是我把它放到配置文件了。
    		logger.info("json_token_short requestUrl:"+ shortUrl);
            String jsonTokenShort = null;
    		try {
    			jsonTokenShort = httpClientWraper.mockPostJsonNew(shortUrl, null, false);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
            logger.info("获取jsonTokenShort响应:"+jsonTokenShort);
            Map<String,Object> mapResultShort = (Map)JSON.parse(jsonTokenShort);
    //        if (jsonTokenShort.contains("errcode") && !mapResultShort.get("errcode").toString().equals("0")) {
    //            throw new GzhBizRuntimeException(mapResultShort.get("errcode").toString(),mapResultShort.get("errmsg").toString());
    //        }
            Object tokenShortA = mapResultShort.get("value");
            if(tokenShortA == null){
            	throw new GzhBizRuntimeException(RespCodeEnum.GET_SHORT_TOKEN_ERREO.getRespCode(),
                        RespCodeEnum.GET_SHORT_TOKEN_ERREO.getRespMsg());
            }
            String tokenShortB = mapResultShort.get("value").toString();
            String longUrl = WEIXIN_LONG_TOKEN.concat("dataface/wechatKey?token=") + tokenShortB ;
            logger.info("json_token_long requestUrl:"+ longUrl);
    //        String longUrl = String.format(url_template,tokenShort);
    //        logger.info("json_token_long requestUrl:"+ longUrl);
            String jsonTokenLong = null;
    		try {
    			jsonTokenLong = httpClientWraper.mockPostJsonNew(longUrl, null, false);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
            logger.info("获取jsonTokenShort响应:"+ jsonTokenLong);
            Map<String,Object> mapResultLong = (Map)JSON.parse(jsonTokenLong);
    //        if (jsonTokenShort.contains("errcode") && !mapResultLong.get("errcode").toString().equals("0")) {
    //            throw new GzhBizRuntimeException(mapResultLong.get("errcode").toString(),mapResultLong.get("errmsg").toString());
    //        }
            Object tokenLongA = mapResultLong.get("value");
            if(tokenLongA == null){
            	throw new GzhBizRuntimeException(RespCodeEnum.GET_LONG_TOKEN_ERREO.getRespCode(),
                        RespCodeEnum.GET_LONG_TOKEN_ERREO.getRespMsg());
            }
            String tokenLongB = mapResultLong.get("value").toString();	
            Map<String,Object> mapResult = (Map)JSON.parse(tokenLongB);
            String token = mapResult.get("key").toString();
            tokenMap.put("token", token);
            logger.info("token>>>>>>>>>>>>>>>>>>>>>>>" + token);
            return token;
    	}
    

    这个方法就可以获取到token了。
    这个是获取了两次,第一次获取短的token,然后第二次获取长的token并使用拼接把短的token也拼接上去。最后才获取到最后的token。获取两次是为了安全。

    还有一个提交的工具类 里面有个post提交的方法。我这个入参只能用post访问。

      public String mockPostJsonNew(String url,String parameter,boolean isValid) throws Exception {
    		PostMethod postMethod = new PostMethod(url);
    		RequestEntity requestEntity;
    		if(parameter != null){
    			try {
    				requestEntity = new StringRequestEntity(parameter,"application/json","UTF-8");
    			} catch (UnsupportedEncodingException e) {
    				logger.error(e.getMessage());
    				throw new Exception(e.getMessage());
    			}  
    			postMethod.setRequestEntity(requestEntity); 
    		}
    		return executeMethod(postMethod,isValid);
    	}
    

    如果是get提交的话 我也写了个get提交的方法

    public  String mockGet(String url) {
            HttpClient httpClient = new HttpClient();
            if(isValid){
                logger.info(">>>>>>>>>>>>>>>开启代理。");
                //设置代理请求
                httpClient.getHostConfiguration().setProxy(proxyAddress,proxyPort);
            } else {
                logger.info(">>>>>>>>>>>>>>>未开启网络代理。");
            }
            HttpMethod getMethod = new GetMethod(url);
            try {
                int statusCode = httpClient.executeMethod(getMethod);
                if (HttpURLConnection.HTTP_OK == statusCode) {
                    return execute(getMethod);
                }
            } catch (Exception e) {
                logger.error(e.getMessage(),e);
                throw new GzhBizRuntimeException("-1", e.getMessage(),e);
            }
    
            return "";
        }
        
    

    你们如果没有设置代理的话,代理这块可以删除掉。

    最后…
    博主是一枚小白,记录工作上目前对博主而言比较难的问题。
    如果错误请私信博主。谢谢,有不懂的也可以找博主哦~

    展开全文
  • 在这里进行一个知识点的记录:网页授权access_token与全局access_token获取用户信息的接口。 1、网页授权access_token:微信网页授权是通过OAuth2.0机制实现的。在用户授权给公众号后,公众号可以获取到一个网页...
  • 爬虫技术之跟踪各大网站的生成token的js代码.zip 京东,百度,腾讯QQ,linkedin
  • 网页报错代码

    千次阅读 2016-03-17 22:05:03
    网页报错代码
  • 原理:用微信公众号文档的教程获取access_token,...直接上代码第一段代码,根据微信公众号提供的教程,获取access_token的值。&lt;?php $token_access_url = "https://api.weixin.qq.com/cgi-bin/token?gr...
  • 微信公众号登陆、模板发送、access_token获取等PHP代码分享 我现在在项目中遇到要将公众号和小程序联系起来,我们知道,微信公众和小程序在微信开放平台下绑定就可以获得unionid,来 确定用户是否是一个人,微信小...
  • token 是在网页中和微信服务器商量好的哦。下次使用的时候直接代码复制即可使用 /** * Created by PhpStorm. * User: liaosp * Date: 2017/8/23 * Time: 10:36 */ $timestamp = $_GET['timestamp']; $nonce =...
  • 以前处理过一个BUG,在其他端口点击跳转到网页端时,用户继续操作时没有权限上传失败、或没有浏览权限跳转到404页面 这个问题的是因为在跳转的过程中token没有传递过来,为了解决这个问题,写了一个跳转页面,接收...
  • * TODO 微信网页开发,1.下载wx.chooseImage的图片到服务器磁盘,2.获取token * @author yqwang0907 * @date 2018年5月8日下午4:28:08 */ public class T { public static final String REDIS_CGI_BIN_TOKEN = ...
  • 15行代码发布一个新的token,如何做到的?本文给出了流程文档和操作视频。
  • Uncaught SyntaxError: Unexpected token <; 错误完美解决

    万次阅读 多人点赞 2019-03-22 10:49:55
    今天写代码的时候发现了"Uncaught SyntaxError: Unexpected token <" <html>的js错误,而且还是html的第一行,我就蒙了,这第一行有啥问题啊,还有一个“<”符号,我以为是我的网页标签没有闭包,所以...
  • 360我要接单登陆-Token解密Java代码

    千次阅读 2015-11-06 21:13:50
    Rundata = 到文本 (网页 访问 (url, 1, Form, , cookie, , , , , )) 调试输出 (Rundata) 调试输出 (cookie) banker_id = 解析json (Rundata,  “banker_id” ) banker_name = 解析json ...
  • 一、token的理解 在计算机身份认证中是令牌的意思,词法分析中的意思是标记,通俗的说法是暗号,在一些数据传输之前,要先进行暗号的核对,不同的暗号被授权不同的数据操作。 token的引入 在客户端频繁想服务器请求...
  • Compiling zeppelin-solidity/contracts/token/ERC20/StandardToken.sol... Writing artifacts to ./build/contracts luoxiaohui:tokendemo luoxiaohui$ truffle migrate Using network 'development' . Network ...
  • 检查获取access_token的接口是否混淆,一个是基础access_token,一个是网页授权access_token,其差别在于基础access_token无需code,所以使用要明确 如下: 1.如果使用以下接口获取用户信息则使用网页授权access_token,...
  • 建议:一定要先看官方文档 ...id=mp1421140842 注意事项和说明官方文档都有...两种方案:第一种原生代码,我这里说第二种sdk实现,github上面有很多优秀的sdk,这里只说其一 github sdk地址:https://github.com/Wec...
  • github的token使用方法

    2021-09-02 14:07:59
    今天从本地向github push代码发,失败了。错误消息如下: remote: Support for password authentication was remove on August 123, 2021. Please use a personal access token instead. 原因是github不再使用...
  • throw new BusinessException(ResponseCode.EXIST_CODE, "通过code换取网页授权access_token失败"); } TokenInfoVO vo = JSON.parseObject(result, TokenInfoVO.class); return vo; } /** * 刷新access_...
  • 3、token令牌的三个基本特征 4、代码实现 5、令牌的使用思路 6、编写验证token的装饰器 7、使用HTTPBasicAuth的方式发送账号密码 8、通过HTTPBasicAuth的方式发送token 9、验证token 验证token是否合法: ...
  • 1.我们首先在公众测试号那...获取code 在控制器写入以下代码: public function index(){ $appid="wx4ff531ee8a470861"; $rediret_url=urlencode('http://wyzdjg.top/vote/index.php/home/index/get...
  • 1.编写配置文件Token.yaml(暂时为空),用来存放token值 另外:用命令:pip3 install ruamel.yaml安装ruamel.yaml模块,用以去除yaml文件中的大括号 2.编写鉴权文件testingedu_auth.py,用于获取token值并存储...
  • <...我的第一张网页</h2> <p id="demo"></p> <script> document.getElementById("demo").innerHTML = "Hello World!"; </script> </body> </html>
  • 微信access_token过期问题

    千次阅读 2019-01-08 17:43:03
     WeChatAPIError: invalid credential, ...问题: 公众号网页开发,后台使用node去微信服务器换取access_token,微信token的有效时间为7200s,但是换取的token很短的时间就失效了。 解决: 刚开始以为是代码有问...
  • 关于tp框架token

    千次阅读 2018-01-06 15:44:21
    thinkphp框架自带有token功能,token可以说是非常强大,他可以防止一些CSRF(Cross-site request forgery)跨站请求伪造攻击,具体什么是CSRF大家可以去百度一下,百度有很多,这里我就不细讲了,那这个怎么用呢?...
  • pikachu token防爆破?

    2020-03-22 11:23:39
    看源代码token是通过前端代码获取的,每次刷新登录页面时token会提前获取并放入网页内。 因此我们要使用暴力破解的话,需要每次都把token放入对应的值内。 用burp抓包 送到intruder中来爆破,后清空所有选定...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,440
精华内容 16,176
关键字:

网页token代码