docs: def get_jsapi_signature(self, noncestr, ticket, timestamp, url):
          """
          获取 JSAPI 签名
  
          https://work.weixin.qq.com/api/doc#90001/90144/90539/签名算法/
  
          :param noncestr: nonce string
          :param ticket: JS-SDK ticket
          :param timestamp: 时间戳
          :param url: URL
          :return: 签名
          """
          data = [
              'noncestr={noncestr}'.format(noncestr=noncestr),
              'jsapi_ticket={ticket}'.format(ticket=ticket),
              'timestamp={timestamp}'.format(timestamp=timestamp),
              'url={url}'.format(url=url),
          ]
          signer = WeChatSigner(delimiter=b'&')
          signer.add_data(*data)
          return signer.signature