【调度系统】广东民航医疗快线调度系统源代码
wzp
2024-12-05 9dc0d99742f5526321e1b5fdb0dec10e6725415e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<?php
/*
 * Copyright (C) 2017 All rights reserved.
 *   
 * @File ServiceProviderAPI.class.php
 * @Brief : 为服务商开放的接口, 使用服务商的token
 * @Author abelzhu, abelzhu@tencent.com
 * @Version 1.0
 * @Date 2017-12-26
 *
 */
 
include_once(__DIR__."/../../utils/Utils.class.php");
include_once(__DIR__."/../../utils/HttpUtils.class.php");
include_once(__DIR__."/../../utils/error.inc.php");
 
include_once(__DIR__."/../datastructure/ServiceProvider.class.php");
 
class ServiceProviderAPI extends API
{
    private $corpid = null; // string
    private $provider_secret = null; // string
    private $provider_access_token = null; // string
 
    /**
     * 调用SetAgentScope/SetContactSyncSuccess 两个接口可以不用传corpid/provider_secret
     */
    public function __construct($corpid=null, $provider_secret=null)
    {
        $this->corpid = $corpid;
        $this->provider_secret = $provider_secret;
    }
 
    protected function GetProviderAccessToken()
    { 
        if ( ! Utils::notEmptyStr($this->provider_access_token)) { 
            $this->RefreshProviderAccessToken();
        } 
        return $this->provider_access_token;
    }
    protected function RefreshProviderAccessToken()
    {
        Utils::checkNotEmptyStr($this->corpid, "corpid");
        Utils::checkNotEmptyStr($this->provider_secret, "provider_secret");
 
        $args = array(
            "corpid" => $this->corpid, 
            "provider_secret" => $this->provider_secret
        ); 
        $url = HttpUtils::MakeUrl("/cgi-bin/service/get_provider_token");
        $this->_HttpPostParseToJson($url, $args, false);
        $this->_CheckErrCode();
 
        $this->provider_access_token = $this->rspJson["provider_access_token"];
    }
 
    // ------------------------- 单点登录 -------------------------------------
    //
 
    /**
     * @brief GetLoginInfo : 获取登录用户信息
     *
     * @link https://work.weixin.qq.com/api/doc#10991/获取登录用户信息
     *
     * @param $auth_code : string
     *
     * @return : GetLoginInfoRsp
     */
    public function GetLoginInfo($auth_code)
    { 
        Utils::checkNotEmptyStr($auth_code, "auth_code");
        $args = array("auth_code" => $auth_code); 
        self::_HttpCall(self::GET_LOGIN_INFO, 'POST', $args);
        return GetLoginInfoRsp::ParseFromArray($this->rspJson);
    }
 
    // ------------------------- 注册定制化 -----------------------------------
    //
    /**
     * @brief GetRegisterCode : 获取注册码
     *
     * @link https://work.weixin.qq.com/api/doc#11729/获取注册码
     *
     * @param $GetRegisterCodeReq
     *
     * @return : string register_code
     */
    public function GetRegisterCode(GetRegisterCodeReq $GetRegisterCodeReq)
    { 
        $args = $GetRegisterCodeReq->FormatArgs();
        self::_HttpCall(self::GET_REGISTER_CODE, 'POST', $args);
        return $this->rspJson["register_code"];
    }
 
    /**
     * @brief GetRegisterInfo : 查询注册状态
     *
     * @link https://work.weixin.qq.com/api/doc#11729/查询注册状态
     *
     * @param $register_code : string
     *
     * @return : GetRegisterInfoRsp
     */
    public function GetRegisterInfo($register_code)
    { 
        Utils::checkNotEmptyStr($register_code, "register_code");
        $args = array("register_code" => $register_code); 
        self::_HttpCall(self::GET_REGISTER_INFO, 'POST', $args);
        return GetRegisterInfoRsp::ParseFromArray($this->rspJson);
    }
 
    /**
     * @brief SetAgentScope : 设置授权应用可见范围
     *
     * @link https://work.weixin.qq.com/api/doc#11729/设置授权应用可见范围
     *
     * @param $access_token : 该接口只能使用注册完成回调事件或者查询注册状态返回的access_token
     * @param $SetAgentScopeReq : SetAgentScopeReq
     *
     * @return : SetAgentScopeRsp
     */
    public function SetAgentScope($access_token, SetAgentScopeReq $SetAgentScopeReq)
    { 
        $args = $SetAgentScopeReq->FormatArgs();
        self::_HttpCall(self::SET_AGENT_SCOPE."?access_token={$access_token}", 'POST', $args);
        return SetAgentScopeRsp::ParseFromArray($this->rspJson);
    }
 
    /**
     * @brief SetContactSyncSuccess : 设置通讯录同步完成
     *
     * @link https://work.weixin.qq.com/api/doc#11729/设置通讯录同步完成
     *
     * @param $access_token : 该接口只能使用注册完成回调事件或者查询注册状态返回的access_token
     */
    public function SetContactSyncSuccess($access_token)
    { 
        self::_HttpCall(self::SET_CONTACT_SYNC_SUCCESS."?access_token={$access_token}", 'GET', null); 
    }
}