365体育备用网址报道20.9.1企业号网页授权_365体育备用网址官网资讯

企业号的网页授权和服务号类似,都是先猎取code,再依据code来取用户信息。不同的是,对于企业成员获得的是UserID,而非企业成员则是OpenID。企业成员的UserID和OpenID能够相互转换。
以下是企业号网页授权代码样例。

 1 require_once("wxqiye.class.PHP");
 2 $weixin = new class_wxqiye();
 3 
 4 if (isset($_COOKIE["openid"]) && !empty($_COOKIE["openid"])){
 5     $openid = $_COOKIE["openid"];
 6 }else{
 7     if (!isset($_GET["code"])){
 8         $redirect_url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
 9         $jumpurl = $weixin->oauth2_authorize($redirect_url, "snsapi_base", "123");
10         Header("Location: $jumpurl");
11     }else{
12         $userinfo = $weixin->oauth2_get_userinfo($_GET["code"]);
13         if (isset($userinfo["OpenId"])){
14             $openid = $userinfo["OpenId"];
15         }else{
16             $openinfo = $weixin->convert_openid($userinfo["UserId"]);
17             $openid = $openinfo["openid"];
18         }
19         setcookie("openid", $openid, time()+86400); //一天后过期
20     }
21 }

在上述代码中,第4行~5行推断当前扫瞄器中的Cookie信息是否存在并且有具体值,如果包含了用户的OpenID,则是上一次网页授权时设置的,不需要浪费时间进行二次授权。
如果Cookie中没有OpenID,则进入网页授权流程。
第7行~第10行,企业号获得code。其接口如下所示:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
上述数据的参数说明如表20-41所示:

表20-41企业号猎取code接口参数说明
点击后,页面将跳转至 redirect_uri?code=CODE&state=STATE,其中包含Code参数。
取得Code参数之后,企业号可依据code参数获得员工的userid或Openid。代码为第12行。接口如下所示:
https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE ](image/screenshot_1489115294661.png)
上述数据的参数说明如表20-42所示:

表20-42code猎取成员信息接口参数说明
正确创建时,返回的数据示例如下。
a) 企业成员授权时返回示例如下:

{
    "UserId":"USERID",
    "DeviceId":"DEVICEID"
}

b) 非企业成员授权时返回示例如下:

{
    "OpenId":"OPENID",
    "DeviceId":"DEVICEID"
}

上述数据的参数说明如表20-43所示:

表20-43code猎取成员信息接口返回参数说明
对于使用场景为微信支付、微信红包和企业转账,企业号用户在使用微信支付的功能时,需要将企业号的userid转成openid。在使用微信红包功能时,需要将应用id和userid转成appid和openid才能使用。
userid转换成openid接口如下所示:
https://qyapi.weixin.qq.com/cgi-bin/user/convert_to_openid?access_token=ACCESS_TOKEN
userid转换成openid时,POST数据示例如下所示。

{
    "userid":"zhangsan",
    "agentid":1
}

上述数据的参数说明如表20-44所示:

表20-44userid转换成openid接口参数说明
正确创建时,返回的数据示例如下。

{
    "errcode":0,
    "errmsg":"ok",
    "openid":"oDOGms-6yCnGrRovBj2yHij5JL6E",
    "appid":"wxf874e15f78cc84a7"
}

上述数据的参数说明如表20-45所示:

表20-45userid转换成openid接口返回参数说明
如果需要知道某个结果事情的openid对应企业号内成员的信息时,能够通过调用openid转换成userid接口进行转换查询。
openid转换成userid接口如下所示:
https://qyapi.weixin.qq.com/cgi-bin/user/convert_to_userid?access_token=ACCESS_TOKEN
openid转换成userid时,POST数据示例如下所示。
{
“openid”:“oDOGms-6yCnGrRovBj2yHij5JL6E”
}
上述数据的参数说明如表20-46所示:

表20-46openid转换成userid接口参数说明
正确创建时,返回的数据示例如下。

{
    "openid":"oDOGms-6yCnGrRovBj2yHij5JL6E"
}

上述数据的参数说明如表20-47所示:

表20-47 openid转换成userid接口返回参数说明

------分隔线----------------------------

公布评论 (147人察看0条评论)
请自觉遵守互联网相关的政策法规,严禁公布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换易博娱乐场
最新评论