Skip to content

Commit

Permalink
component_access_token和component_verify_ticket中key的名字加上component_appid (
Browse files Browse the repository at this point in the history
#679)

* component_access_token和component_verify_ticket中key的名字加上component_appid

* flake8: ignore BLK100
  • Loading branch information
messense committed Nov 11, 2021
1 parent 31d0a8b commit 14e1272
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 13 deletions.
7 changes: 0 additions & 7 deletions docs/component.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,6 @@ WeChatComponent的基本使用方法:

此后,可以调用component的其它方法完成公众号的授权、令牌刷新、获取或者设置公众号信息等操作。


component_verify_ticket 的处理
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

收到微信服务器发送的推送请求之后,只要调用 ``cache_component_verify_ticket(self, msg, signature, timestamp, nonce)`` 即可恰当地缓存component_verify_ticket。


公众号 client 对象的获取
^^^^^^^^^^^^^^^^^^^^^^^^

Expand Down
1 change: 1 addition & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ exclude = .svn,CVS,.bzr,.hg,.git,__pycache,.ropeproject
max-line-length = 120
import-order-style = pep8
application-import-names = wechatpy
ignore = BLK100
16 changes: 10 additions & 6 deletions wechatpy/component.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ def __init__(

@property
def component_verify_ticket(self):
return self.session.get("component_verify_ticket")
return self.session.get("{}_component_verify_ticket".format(self.component_appid))

def _request(self, method, url_or_endpoint, **kwargs):
if not url_or_endpoint.startswith(("http://", "https://")):
Expand Down Expand Up @@ -105,7 +105,9 @@ def _handle_result(self, res, method=None, url=None, **kwargs):
):
logger.info("Component access token expired, fetch a new one and retry request")
self.fetch_access_token()
kwargs["params"]["component_access_token"] = self.session.get("component_access_token")
kwargs["params"]["component_access_token"] = self.session.get(
"{}_component_access_token".format(self.component_appid)
)
return self._request(method=method, url_or_endpoint=url, **kwargs)
elif errcode == WeChatErrorCode.OUT_OF_API_FREQ_LIMIT.value:
# api freq out of limit
Expand Down Expand Up @@ -161,14 +163,16 @@ def _fetch_access_token(self, url, data):
expires_in = 7200
if "expires_in" in result:
expires_in = result["expires_in"]
self.session.set("component_access_token", result["component_access_token"], expires_in)
self.session.set(
"{}_component_access_token".format(self.component_appid), result["component_access_token"], expires_in
)
self.expires_at = int(time.time()) + expires_in
return result

@property
def access_token(self):
"""WeChat component access token"""
access_token = self.session.get("component_access_token")
access_token = self.session.get("{}_component_access_token".format(self.component_appid))
if access_token:
if not self.expires_at:
# user provided access_token, just return it
Expand All @@ -179,7 +183,7 @@ def access_token(self):
return access_token

self.fetch_access_token()
return self.session.get("component_access_token")
return self.session.get("{}_component_access_token".format(self.component_appid))

def get(self, url, **kwargs):
return self._request(method="get", url_or_endpoint=url, **kwargs)
Expand Down Expand Up @@ -377,7 +381,7 @@ def parse_message(self, msg, msg_signature, timestamp, nonce):
message_class = COMPONENT_MESSAGE_TYPES.get(message_type, ComponentUnknownMessage)
msg = message_class(message)
if msg.type == "component_verify_ticket":
self.session.set(msg.type, msg.verify_ticket)
self.session.set("{}_{}".format(self.component_appid, msg.type), msg.verify_ticket)
elif msg.type in ("authorized", "updateauthorized"):
msg.query_auth_result = self.query_auth(msg.authorization_code)
return msg
Expand Down

0 comments on commit 14e1272

Please sign in to comment.