获取微信 JS-SDK ticket 该方法会通过 session 对象自动缓存管理 ticket :return: ticket
(self)
| 31 | ) |
| 32 | |
| 33 | def get_jsapi_ticket(self): |
| 34 | """ |
| 35 | 获取微信 JS-SDK ticket |
| 36 | |
| 37 | 该方法会通过 session 对象自动缓存管理 ticket |
| 38 | |
| 39 | :return: ticket |
| 40 | """ |
| 41 | ticket_key = '{0}_jsapi_ticket'.format(self.appid) |
| 42 | expires_at_key = '{0}_jsapi_ticket_expires_at'.format(self.appid) |
| 43 | ticket = self.session.get(ticket_key) |
| 44 | expires_at = self.session.get(expires_at_key, 0) |
| 45 | if not ticket or expires_at < int(time.time()): |
| 46 | jsapi_ticket_response = self.get_ticket('jsapi') |
| 47 | ticket = jsapi_ticket_response['ticket'] |
| 48 | expires_at = int(time.time()) + int(jsapi_ticket_response['expires_in']) |
| 49 | self.session.set(ticket_key, ticket) |
| 50 | self.session.set(expires_at_key, expires_at) |
| 51 | return ticket |
| 52 | |
| 53 | def get_jsapi_signature(self, noncestr, ticket, timestamp, url): |
| 54 | """ |
nothing calls this directly
no test coverage detected