Skip to content

成员登录 卡券 JSSDK

Stoneworld edited this page Apr 5, 2017 · 1 revision

Authorize.php 成员登录(扫码)支持

$auth = new Authorize($corp_id, $secret);
if(!isset($_GET['auth_code']) || !isset($_GET['state'])){
  $auth->authorize($to = null, $state = 'STATE', $usertype = 'member');
}
$user = $auth->user();
var_dump($user);

需在后台配置可信域名,跳转时必须带reference $usertype有member(成员登录)、admin(管理员登录)、all(成员或管理员皆可登录)三种

Card.php 卡券支持

$card = new Card($corp_id, $secret);
$card->create(array $base, array $properties = array(), $type = self::TYPE_GENERAL_COUPON); //创建卡券
$card->get($cardId); //卡券详情

其余接口参见源码

Js.php JSSDK支持

$js = new Js($corp_id, $secret);
$js->config(array $APIs, $debug = false, $beta = false, $json = true, $isAdminGroup = false);

普通调用(除创建企业会话和打开企业通讯录选人外)

<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
    wx.config(<?php echo $js->config(array('onMenuShareQQ', 'onMenuShareWeibo'), true, true) ?>);
</script>

企业号部分JS-SDK(如:打开企业通讯录选人)的使用需要企业号管理组权限,请设置$isAdminGroup为true

$js = new Js($corp_id, $secret);
$signPackage = $js->config(array $APIs, $debug = false, $beta = false, $json = true, $isAdminGroup = true);
<script  type="text/javascript" charset="utf-8">
var evalWXjsApi = function(jsApiFun) {
    if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") {
        jsApiFun();
    } else {
        document.attachEvent && document.attachEvent("WeixinJSBridgeReady", jsApiFun);
        document.addEventListener && document.addEventListener("WeixinJSBridgeReady", jsApiFun);
    }
}
                        
document.querySelector('#openEnterpriseContact_invoke').onclick = function() {
    evalWXjsApi(function() {
        WeixinJSBridge.invoke("openEnterpriseContact", {
            "groupId": "<?php echo $signPackage['groupId'] ?>",    // 必填,管理组权限验证步骤1返回的group_id
            "timestamp": "<?php echo $signPackage['timestamp'] ?>",    // 必填,管理组权限验证步骤2使用的时间戳
            "nonceStr": "<?php echo $signPackage['nonceStr'] ?>",    // 必填,管理组权限验证步骤2使用的随机字符串
            "signature": "<?php echo $signPackage['signature'] ?>",  // 必填,管理组权限验证步骤2生成的签名
            "params" : {
                'departmentIds' : [1],    // 非必填,可选部门ID列表(如果ID为0,表示可选管理组权限下所有部门)
                'tagIds' : [1],    // 非必填,可选标签ID列表(如果ID为0,表示可选所有标签)
                'userIds' : ['zhangsan','lisi'],    // 非必填,可选用户ID列表
                'mode' : 'single',    // 必填,选择模式,single表示单选,multi表示多选
                'type' : ['department','tag','user'],    // 必填,选择限制类型,指定department、tag、user中的一个或者多个
                'selectedDepartmentIds' : [],    // 非必填,已选部门ID列表
                'selectedTagIds' : [],    // 非必填,已选标签ID列表
                'selectedUserIds' : [],    // 非必填,已选用户ID列表
            },
        }, function(res) {
            if (res.err_msg.indexOf('function_not_exist') > -1) {
                alert('版本过低请升级');
            } else if (res.err_msg.indexOf('openEnterpriseContact:fail') > -1) {
                return;
            }
            var result = JSON.parse(res.result);    // 返回字符串,开发者需自行调用JSON.parse解析
            var selectAll = result.selectAll;     // 是否全选(如果是,其余结果不再填充)
            if (!selectAll)
            {
                var selectedDepartmentList = result.departmentList;    // 已选的部门列表
                for (var i = 0; i < selectedDepartmentList.length; i++) {
                    var department = selectedDepartmentList[i];
                    var departmentId = department.id;    // 已选的单个部门ID
                    var departemntName = department.name;    // 已选的单个部门名称
                }
                var selectedTagList = result.tagList;    // 已选的标签列表
                for (var i = 0; i < selectedTagList.length; i++) {
                    var tag = selectedTagList[i];
                    var tagId = tag.id;    // 已选的单个标签ID
                    var tagName = tag.name;    // 已选的单个标签名称
                }
                var selectedUserList = result.userList;    // 已选的成员列表
                for (var i = 0; i < selectedUserList.length; i++) {
                    var user = selectedUserList[i];
                    var userId = user.id;    // 已选的单个成员ID
                    var userName = user.name;    // 已选的单个成员名称
                }
            }
        })
    });
}
</script>