微信企业号-身份验证

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

企业获取code

1085906-20161226090014226-240116855.png
 根据开发文档,我们需要拿到企业的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获取成员信息

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

获取AccessToken

1085906-20161226090014992-1893920954.png
 
根据开发文档,可以看出,获取AccessToken也需要两个参数, corpidcorpsecret,这个参数可以在微信企业号->设置 1085906-20161226090015382-2135909900.png
 ->权限管理 1085906-20161226090015617-793759761.png   ->所开发应用对应的管理组 1085906-20161226090015804-367894398.png -> 1085906-20161226090016101-1430961876.png
 
   
  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和a ccess_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. }
到了这一步,得到的是 1085906-20161226090016601-896514515.png
 
,接下来就可以根据得到的UserId和access_token去获取成员信息了
1085906-20161226090016882-539241977.png
 返回的就是成员信息了
1085906-20161226090017211-1354737640.png
 

    

userid和openid之间的转换

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

userid转换成openid

1085906-20161226090017570-99211569.png
这里的agentid就是所开发的应用的应用id,在 微信企业号->应用中心 1085906-20161226090017742-1319389553.png     ->所开发的应用 1085906-20161226090017976-1199952147.png
  ->开发id 1085906-20161226090018164-971798175.png获取

 
    
  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接口

1085906-20161226090021086-1507334684.png
 
 
      
  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. }

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




转载于:https://www.cnblogs.com/phonecom/p/485c17a50ab92784056d5a9ea5d800a6.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值