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

三、预授权码(pre_auth_code)

3.1 官网说明:

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

请求参数说明:

【注意】:官方网站上,参数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

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值