15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > Odoo微信网页授权、单点登录

Odoo微信网页授权、单点登录

时间:2022-08-06 20:36:02 | 来源:网站运营

时间:2022-08-06 20:36:02 来源:网站运营

本文讲解一下通过微信公众号,设置菜单,然后跳转到odoo页面的方法,以下是部门代码,仅供参考。

# -*- coding: utf-8 -*-

from odoo import http

from odoo.http import request




from .handlers import auto_reply, event_reply

import logging

_logger = logging.getLogger(__name__)




class WeiXinLogin(http.Controller):




def __init__(self):

param = request.env()['ir.config_parameter']

self.wx_appid = param.get_param('wx_appid') or ''

self.wx_AppSecret = param.get_param('wx_AppSecret') or ''




from ..rpc import oa_client

oa_client.init_oa_client(self.wx_appid, self.wx_AppSecret)




@http.route('/wx/login', type='http', auth="none", methods=['GET', 'POST'], csrf=False)

def wx_login(self, **kwargs):

res_code=self.get_code()

res_token=self.get_token(res_code)

res_check=self.check_token(res_token)

res_user=self.get_user(res_check)

openid=res_user['openid']




def send_url(self,url,params):

try:

res = request.get(url, params=params).json()

return res

except Exception, e:

http://_logger.info("获取参数错误:")







def get_code(self):




url='https://open.weixin.qq.com/connect/oauth2/authorize'

params = {

'appid': self.wx_appid,

'secret': self.wx_AppSecret,

'response_type': 'code',

'scope': 'snsapi_base',

'#wechat_redirect':''

}

# 第一步获取code

return self.send_url(url,params)







def get_token(self,res_code):

# 2.通过code换取网页授权access_token




url = u'https://api.weixin.qq.com/sns/oauth2/access_token'

params = {

'appid': self.wx_appid,

'secret': self.wx_AppSecret,

'code': res_code['code'],

'grant_type': 'authorization_code'

}

return self.send_url(url,params)







def check_token(self,res_token):

#3.检验授权凭证(access_token)是否有效

url='https://api.weixin.qq.com/sns/auth'

params = {

'openid': res_token['openid'],

'access_token':res_token['access_token']

}

check_res = self.send_url(url,params)

if check_res['errcode']==0:

return res_token

else:

# 如果access_token超时,那就刷新

url='https://api.weixin.qq.com/sns/oauth2/refresh_token?'

params = {

'appid': self.wx_appid,

'grant_type':'refresh_token',

'refresh_token':res_token['refresh_token']

}

return self.send_url(url, params)










def get_user(self,res_check):

url = u'https://api.weixin.qq.com/sns/userinfo'

params = {

'access_token': res_check["access_token"],

'openid': res_check["openid"],

}

# 4.拉取用户信息

return self.send_url(url, params)





关键词:授权

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭