Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

35 lines
1.1KB

  1. import time
  2. import json
  3. import requests
  4. import threading
  5. from channel.wechatmp.common import *
  6. from wechatpy.client import WeChatClient
  7. from common.log import logger
  8. from config import conf
  9. class WechatMPClient(WeChatClient):
  10. def __init__(self, appid, secret, access_token=None,
  11. session=None, timeout=None, auto_retry=True):
  12. super(WechatMPClient, self).__init__(
  13. appid, secret, access_token, session, timeout, auto_retry
  14. )
  15. self.fetch_access_token_lock = threading.Lock()
  16. def fetch_access_token(self):
  17. """
  18. 获取 access token
  19. 详情请参考 http://mp.weixin.qq.com/wiki/index.php?title=通用接口文档
  20. :return: 返回的 JSON 数据包
  21. """
  22. with self.fetch_access_token_lock:
  23. access_token = self.session.get(self.access_token_key)
  24. if access_token:
  25. if not self.expires_at:
  26. return access_token
  27. timestamp = time.time()
  28. if self.expires_at - timestamp > 60:
  29. return access_token
  30. return super().fetch_access_token()