首先要匹配企业应用设置项中的\'可信域名\'(如果你的redirect_uri有端口号,那\'可信域名\'也必须加上端口号),否则跳转时会提示redirect_uri参数错误。
登录企业号
点击
点击你要开发的应用
设置可信域名
企业获取code
根据开发文档,我们需要拿到企业的CorpID,去到微信企业号的设置即可拿到
index.php:
/*** 企业获取code*///填写对应的企业的CorpID$corpid = \'corpid\';//填写授权后重定向的回调链接地址$redirect_uri = urlencode(\'redirect_uri \');$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\';header(\'Location: \' . $url_code);
redirect_uri.php:
<?php//获取到CODE$code = $_GET[\'code\'];
根据code获取成员信息
根据开发文档,可以看出,若想根据CODE获取成员信息,需要两个参数:一就是上面获取到的CODE,二就是ACCESS_TOKEN,CODE在上面已经获取到了,现在差的就是ACCESS_TOKEN了
获取AccessToken
->权限管理
->所开发应用对应的管理组
->
function get_access_token($corpid, $corpsecret){if(!empty($_COOKIE[\'access_token\'])){return $_COOKIE[\'access_token\'];}else{$url = \'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=\' . $corpid . \'&corpsecret=\' . $corpsecret;$array_result = json_decode(https_request($url), TRUE);//这里为了方便测试把access_token存放在cookie里,但是开发时一般不准放在cookie里setcookie(\'access_token\', $array_result[\'access_token\'], time()+7200);return $array_result[\'access_token\'];}}
获取到AccessToken后,获取成员信息的两个参数(CODE和access_token)终于凑齐了,现在开始获取成员信息
function get_userid($access_token, $code){if(!empty($_COOKIE[\'UserId\'])){return $_COOKIE[\'UserId\'];}else{$url_info = \'https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=\' . $access_token . \'&code=\' . $code;$array_result = json_decode(https_request($url_info), TRUE);setcookie(\'UserId\', $array_result[\'UserId\']);return $array_result[\'UserId\'];}}
到了这一步,得到的是
,接下来就可以根据得到的UserId和access_token去获取成员信息了
返回的就是成员信息了
userid和openid之间的转换
在某些场景下,例如微信支付、微信红包和企业转账时,就要用到userid和openid之间需要转换,userid和openid之间转换很简单,直接根据access_token和userid(openid)用POST方式去请求API即可
userid转换成openid
这里的agentid就是所开发的应用的应用id,在微信企业号->应用中心
->所开发的应用
->开发id
获取
function userid_to_openid($userid, $access_token, $agentid){$url_convert = \'https://qyapi.weixin.qq.com/cgi-bin/user/convert_to_openid?access_token=\' . $access_token;$data_post = array(\'userid\' => $userid,\'agentid\' => $agentid);$array_result = json_decode(https_request($url_convert, json_encode($data_post)), TRUE);return $array_result[\'openid\'];}
openid转换成userid接口
function openid_to_userid($openid, $access_token){$url_convert = \'https://qyapi.weixin.qq.com/cgi-bin/user/convert_to_userid?access_token=\' . $access_token;$data_post = array(\'openid\' => $openid,);$array_result = json_decode(https_request($url_convert, json_encode($data_post)), TRUE);return $array_result[\'userid\'];}
注意:凡是开发微信企业号,需要查看是否有相应的权限,比如该应用的管理组有没有开通对该应用的权限