zoukankan      html  css  js  c++  java
  • 微信企业号-身份验证

    首先要匹配企业应用设置项中的'可信域名'(如果你的redirect_uri有端口号,那'可信域名'也必须加上端口号),否则跳转时会提示redirect_uri参数错误。
    登录企业号
    点击
    点击你要开发的应用
    设置可信域名
     
     

    企业获取code

     根据开发文档,我们需要拿到企业的CorpID,去到微信企业号的设置即可拿到
    index.php:
    1. /**
    2. * 企业获取code
    3. */
    4. //填写对应的企业的CorpID
    5. $corpid = 'corpid';
    6. //填写授权后重定向的回调链接地址
    7. $redirect_uri = urlencode('redirect_uri ');
    8. $url_code = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $corpid . '&redirect_uri=' . $redirect_uri . '&response_type=code&scope=SCOPE&state=STATE#wechat_redirect';
    9. header('Location: ' . $url_code);
    redirect_uri.php:
    1. <?php
    2. //获取到CODE
    3. $code = $_GET['code'];

     

    根据code获取成员信息

    根据开发文档,可以看出,若想根据CODE获取成员信息,需要两个参数:一就是上面获取到的CODE,二就是ACCESS_TOKEN,CODE在上面已经获取到了,现在差的就是ACCESS_TOKEN了

    获取AccessToken

     
    根据开发文档,可以看出,获取AccessToken也需要两个参数,corpidcorpsecret,这个参数可以在微信企业号->设置
     ->权限管理 ->所开发应用对应的管理组->
    1. function get_access_token($corpid, $corpsecret){
    2. if(!empty($_COOKIE['access_token'])){
    3. return $_COOKIE['access_token'];
    4. }else{
    5. $url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' . $corpid . '&corpsecret=' . $corpsecret;
    6. $array_result = json_decode(https_request($url), TRUE);
    7.            //这里为了方便测试把access_token存放在cookie里,但是开发时一般不准放在cookie里
    8. setcookie('access_token', $array_result['access_token'], time()+7200);
    9. return $array_result['access_token'];
    10. }
    11. }

     获取到AccessToken后,获取成员信息的两个参数(CODE和access_token)终于凑齐了,现在开始获取成员信息
    1. function get_userid($access_token, $code){
    2. if(!empty($_COOKIE['UserId'])){
    3. return $_COOKIE['UserId'];
    4. }else{
    5. $url_info = 'https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=' . $access_token . '&code=' . $code;
    6. $array_result = json_decode(https_request($url_info), TRUE);
    7. setcookie('UserId', $array_result['UserId']);
    8. return $array_result['UserId'];
    9. }
    10. }
    到了这一步,得到的是
     
    ,接下来就可以根据得到的UserId和access_token去获取成员信息了
     返回的就是成员信息了
     

        

    userid和openid之间的转换

    在某些场景下,例如微信支付、微信红包和企业转账时,就要用到userid和openid之间需要转换,userid和openid之间转换很简单,直接根据access_token和userid(openid)用POST方式去请求API即可

    userid转换成openid

    这里的agentid就是所开发的应用的应用id,在微信企业号->应用中心  ->所开发的应用
     ->开发id获取

    1. function userid_to_openid($userid, $access_token, $agentid){
    2. $url_convert = 'https://qyapi.weixin.qq.com/cgi-bin/user/convert_to_openid?access_token=' . $access_token;
    3. $data_post = array(
    4. 'userid' => $userid,
    5. 'agentid' => $agentid
    6. );
    7. $array_result = json_decode(https_request($url_convert, json_encode($data_post)), TRUE);
    8. return $array_result['openid'];
    9. }

    openid转换成userid接口

     
    1. function openid_to_userid($openid, $access_token){
    2. $url_convert = 'https://qyapi.weixin.qq.com/cgi-bin/user/convert_to_userid?access_token=' . $access_token;
    3. $data_post = array(
    4. 'openid' => $openid,
    5. );
    6. $array_result = json_decode(https_request($url_convert, json_encode($data_post)), TRUE);
    7. return $array_result['userid'];
    8. }

    注意:凡是开发微信企业号,需要查看是否有相应的权限,比如该应用的管理组有没有开通对该应用的权限
     




  • 相关阅读:
    读《编写可维护的JavaScript》第七章总结
    读《编写可维护的JavaScript》第六章总结
    最新Blog
    cnUVA情况
    Casio普通计算器编程
    大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程
    Pascal <-> C/C++ 转换简明教程
    [互动][扫盲]信息学奥林匹克竞赛是什么
    以后这个博客可能不会用啦 请到新地址...
    算法专题训练 搜索a-T3 Ni骑士(ni)
  • 原文地址:https://www.cnblogs.com/phonecom/p/485c17a50ab92784056d5a9ea5d800a6.html
Copyright © 2011-2022 走看看