微信开放平台_第三方平台授权流程_预授权码

三、预授权码(pre_auth_code)

3.1 官网说明:

第三方平台方实现授权托管的必备信息,每个预授权码有效期为 10 分钟。需要先获取令牌才能调用,生成授权链接时使用。

请求地址:POST https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=COMPONENT_ACCESS_TOKEN

请求参数说明:

【注意】:官方网站上,参数component_access_token写在了URL中,参数component_appid写在请求体中。

POST数据示例:

{
 
"component_appid": "appid_value"
}

1.2 获取流程及示意代码

通获取令牌的流程类似。
   /**
	 * 获取预授权码,判断缓存中是否存在,若不存在,则走直接获取流程
	 * @return
	 */
	public static String getPreAuthCode(){
		webChatCatchUtil = SpringContextHolder.getBean("webChatCatchUtil");
		String authCode = webChatCatchUtil.getWeixinOpenPreAuthCode();
		if(authCode==null) {
			authCode = OpAuthCodeUtil.getPreAuthCodeInstant();
		}
		return authCode;
	}

	/**
     * 直接获取流程
     * @return
     */
	private static String getPreAuthCodeInstant(){
		webChatCatchUtil = SpringContextHolder.getBean("webChatCatchUtil");
		String accessToken = getOpenAccToken();

		//设置请求参数
		JSONObject json = new JSONObject();
		json.put("component_appid", ComponentConfig.APPID);
		String API_COMPONENT_TOKEN_URl = WeixinImSetting.OPEN_URL_PREAUTHCODE;

		String responseData = HttpSend.httpPost(API_COMPONENT_TOKEN_URl + accessToken, json.toString(), null); //发送HTTPS请求
		JSONObject postData = JSONObject.fromObject(responseData);
		log.info("====================返回post结果:" + postData);
		String authCode = (String) postData.get("pre_auth_code");
		Integer expires_in = (Integer) postData.get("expires_in");     //有效期,单位:秒
		log.info("getPreAuthCodeInstant-result:"+json);
		webChatCatchUtil.setWeixinOpenPreAuthCode(authCode,expires_in); //存入缓存
		return authCode;
	}

返回结果说明:

返回结果示例:pre_auth_code(预授权码)expires_in(有效期,秒)

{
 
"pre_auth_code": "Cx_Dk6qiBE0Dmx4EmlT3oRfArPvwSQ-oa3NL_fwHM7VI08r52wazoZX2Rhpz1dEw",
 
"expires_in": 600
}

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值