예제 #1
0
    def get_client_by_appid(self, authorizer_appid):
        """
        通过 authorizer_appid 获取 Client 对象

        :params authorizer_appid: 授权公众号appid
        """
        access_token_key = '{0}_access_token'.format(authorizer_appid)
        refresh_token_key = '{0}_refresh_token'.format(authorizer_appid)
        access_token = self.session.get(access_token_key)
        refresh_token = self.session.get(refresh_token_key)
        assert refresh_token

        if not access_token:
            ret = self.refresh_authorizer_token(authorizer_appid,
                                                refresh_token)
            access_token = ret['authorizer_access_token']
            refresh_token = ret['authorizer_refresh_token']
            access_token_key = '{0}_access_token'.format(authorizer_appid)
            expires_in = 7200
            if 'expires_in' in ret:
                expires_in = ret['expires_in']
            self.session.set(access_token_key, access_token, expires_in)

        return WeChatComponentClient(authorizer_appid,
                                     self,
                                     session=self.session)
예제 #2
0
    def get_client_by_appid(self, authorizer_appid):
        """
        通过 authorizer_appid 获取 Client 对象

        :params authorizer_appid: 授权公众号appid
        """
        access_token_key = f"{authorizer_appid}_access_token"
        refresh_token_key = f"{authorizer_appid}_refresh_token"
        access_token = self.session.get(access_token_key)
        refresh_token = self.session.get(refresh_token_key)
        assert refresh_token

        if not access_token:
            ret = self.refresh_authorizer_token(authorizer_appid,
                                                refresh_token)
            access_token = ret["authorizer_access_token"]
            refresh_token = ret["authorizer_refresh_token"]
            access_token_key = f"{authorizer_appid}_access_token"
            expires_in = 7200
            if "expires_in" in ret:
                expires_in = ret["expires_in"]
            self.session.set(access_token_key, access_token, expires_in)

        return WeChatComponentClient(authorizer_appid,
                                     self,
                                     session=self.session)
예제 #3
0
    def get_client_by(self, authorization_code):
        """
        通过授权码直接获取 Client 对象

        :params authorization_code: 授权code,会在授权成功时返回给第三方平台,详见第三方平台授权流程说明
        """
        result = self.query_auth(authorization_code)
        access_token = result['authorization_info']['authorizer_access_token']
        refresh_token = result['authorization_info'][
            'authorizer_refresh_token']  # NOQA
        authorizer_appid = result['authorization_info'][
            'authorizer_appid']  # noqa
        return WeChatComponentClient(authorizer_appid,
                                     self,
                                     access_token,
                                     refresh_token,
                                     session=self.session)
예제 #4
0
    def get_client_by_authorization_code(self, authorization_code):
        """
        通过授权码直接获取 Client 对象

        :params authorization_code: 授权code,会在授权成功时返回给第三方平台,详见第三方平台授权流程说明
        """
        warnings.warn('`get_client_by_authorization_code` method of `WeChatComponent` is deprecated,'
                      'Use `parse_message` parse message and '
                      'Use `get_client_by_appid` instead',
                      DeprecationWarning, stacklevel=2)
        result = self.query_auth(authorization_code)
        access_token = result['authorization_info']['authorizer_access_token']
        refresh_token = result['authorization_info']['authorizer_refresh_token']  # NOQA
        authorizer_appid = result['authorization_info']['authorizer_appid']  # noqa
        return WeChatComponentClient(
            authorizer_appid, self, access_token, refresh_token,
            session=self.session
        )
예제 #5
0
    def get_client(self, authorizer_appid):
        """
        通过 authorizer_appid获取 Client 对象

        :params authorizer_appid: 授权公众号appid
        """
        access_token_key = '{0}_access_token'.format(authorizer_appid)
        refresh_token_key = '{0}_refresh_token'.format(authorizer_appid)
        access_token = self.session.get(access_token_key)
        refresh_token = self.session.get(refresh_token_key)

        if not access_token:
            ret = self.refresh_authorizer_token(authorizer_appid,
                                                refresh_token)
            access_token = ret['authorizer_access_token']
            refresh_token = ret['authorizer_refresh_token']

        return WeChatComponentClient(authorizer_appid,
                                     self,
                                     access_token,
                                     refresh_token,
                                     session=self.session)