Example #1
0
 def get_user_id(self, code):
     """
     查询用户id
     """
     try:
         # 获取access token
         response = requests.post(constants.GET_TOKEN_URL,
                                  params={
                                      'code': code,
                                      'client_id': self.client_id,
                                      'client_secret': self.client_secret,
                                      'grant_type': 'authorization_code'
                                  }).__getattribute__('_content')
         result = dict([
             (k, v[0]) for k, v in parse_qs(response.decode()).items()
         ])  # 将响应信息转换为字典
         # 获取user info
         headers = {'Authorization': 'token ' + result['access_token']}
         response = requests.get(constants.GET_USERINFO_URL,
                                 params={
                                     'access_token': result['access_token']
                                 },
                                 headers=headers).json()
         user_id = response['id']
         return user_id
     except Exception:
         raise APICallError('Invalid auth_code')
 def get_alipay_user_id(self):
     '''
     返回支付宝用户ID
     '''
     try:
         user_id = alipay_user_id_sdk.get_alipay_user_id(auth_code=self.auth_code,\
         app_private_key=self.app_private_key, alipay_public_key=self.alipay_public_key, app_id=self.app_private_key)
     except:
         raise APICallError('get alipay user id failed')
     return user_id
Example #3
0
 def get_union_id(self, code):
     '''
     查询用户id
     '''
     try:
         token_info = requests.get(constants.GET_TOKEN_URL,\
             params={'code':code, 'appid':self.appid, 'secret':self.secret,\
                 'grant_type':'authorization_code'}).json()
         unionid = token_info['unionid']
         return unionid
     except Exception:
         raise APICallError('Invalid auth_code')
Example #4
0
 def get_work_wechat_user_id(self, code):
     '''
     查询用户id
     '''
     try:
         token_info = requests.get(constants.GET_TOKEN_URL,\
             params={'corpid':self.corp_id, 'corpsecret':self.secret}).json()
         access_token = token_info['access_token']
         user_info = requests.get(constants.GET_USERINFO_URL,\
             params={'access_token':access_token, 'code':code}).json()
         work_wechat_user_id = user_info['UserId']
         return work_wechat_user_id
     except Exception:
         raise APICallError('Failed to get the user id')
Example #5
0
 def get_open_id(self, code):
     '''
     获取qq的openid
     '''
     try:
         access_token_response = requests.get(constants.GET_TOKEN_URL, params={'grant_type':'authorization_code',\
             'client_id':self.app_id, 'client_secret':self.app_key, 'code':code,\
                 'redirect_uri':constants.REDIRECT_URI}).text
         access_token = re.findall(r'access_token=(.*?)&',
                                   access_token_response)[0]
         open_id_response = requests.get(constants.GET_OPENID_URL,
                                         params={
                                             'access_token': access_token
                                         }).text
         open_id = re.findall(r'"openid":"(.*?)"}', open_id_response)[0]
     except Exception:  # pylint: disable=broad-except
         raise APICallError('invalid code')
     return open_id
    def get_ding_id(self):
        '''
        从钉钉获取dingId
        '''
        appid = DingConfig.get_current().qr_app_id
        appsecret = DingConfig.get_current().qr_app_secret
        access_token = requests.get(constants.QR_GET_ACCESS_TOKEN_URL, params={'appid':appid,\
            'appsecret':appsecret}).json()['access_token']
        get_psstt_code = requests.post(constants.QR_GET_PSSTT_CODE_URL, params={'access_token':access_token},\
            json={'tmp_auth_code':self.code})
        openid = get_psstt_code.json()['openid']
        persistent_code = get_psstt_code.json()['persistent_code']
        sns_token = requests.post(constants.QR_GET_SNS_TOKEN_URL, params={'access_token':access_token},\
            json={'openid':openid, 'persistent_code':persistent_code}).json()['sns_token']
        resp = requests.get(constants.QR_GET_USER_INFO_URL,\
            params={'sns_token': sns_token}).json()
        errcode = resp.get('errcode', '')
        errmsg = resp.get('errmsg', '')

        if errcode != 0:
            raise APICallError('Failed to get ding id,code:%s, msg:%s' % (errcode, errmsg))
        self.ding_id = resp.get('user_info', '')['dingId']
        return self.ding_id