code: protected function getSandboxSignKey()
      {
          if ($this->sandboxSignKey) {
              return $this->sandboxSignKey;
          }
  
          // Try to get sandbox_signkey from cache
          $cacheKey = 'sandbox_signkey.'.$this->merchant->merchant_id.$this->merchant->sub_merchant_id;
  
          /** @var \Doctrine\Common\Cache\Cache $cache */
          $cache = $this->getCache();
  
          $this->sandboxSignKey = $cache->fetch($cacheKey);
  
          if (!$this->sandboxSignKey) {
              // Try to acquire a new sandbox_signkey from WeChat
              $result = $this->request(self::API_SANDBOX_SIGN_KEY, []);
  
              if ($result->return_code === 'SUCCESS') {
                  $cache->save($cacheKey, $result->sandbox_signkey, 24 * 3600);
  
                  return $this->sandboxSignKey = $result->sandbox_signkey;
              }
  
              throw new Exception($result->return_msg);
          }
  
          return $this->sandboxSignKey;
      }
docs: Get sandbox sign key.
  
  @return string