docs: public WxCardAPISignature createWxCardJsAPISignature(WxCardAPISignature wxCardAPISignature){
          if(wxCardAPITicket == null || wxCardAPITicket.expired()) {
              getWxCardAPITicket();
          }
  
          long timestamp = System.currentTimeMillis() / 1000;
          String nonce = RandomStringGenerator.getRandomStringByLength(16);
          String ticket = wxCardAPITicket.getTicket();
  
          List<String> parameters = new ArrayList<>();
          if(wxCardAPISignature.isChooseCard()) {
              parameters.add(wxClient.getClientId());
          }
  
          parameters.add(ticket);
          parameters.add(wxCardAPISignature.getCardId());
          parameters.add(nonce);
          parameters.add(String.valueOf(timestamp));
  
          if(!(wxCardAPISignature.getCardType() == null || "".equals(wxCardAPISignature.getCardType()))) {
              parameters.add(wxCardAPISignature.getCardType());
          }
          if(!(wxCardAPISignature.getCode() == null || "".equals(wxCardAPISignature.getCode()))) {
              parameters.add(wxCardAPISignature.getCode());
          }
          if(!(wxCardAPISignature.getBalance() == null || "".equals(wxCardAPISignature.getBalance()))) {
              parameters.add(wxCardAPISignature.getBalance());
          }
          if(!(wxCardAPISignature.getOpenId() == null || "".equals(wxCardAPISignature.getOpenId()))) {
              parameters.add(wxCardAPISignature.getOpenId());
          }
          if(!(wxCardAPISignature.getLocationId() == null || "".equals(wxCardAPISignature.getLocationId()))) {
              parameters.add(wxCardAPISignature.getLocationId());
          }
  
          try {
              String signature = SHA1.getSHA1((String[])parameters.toArray());
  
              wxCardAPISignature.setNonce(nonce);
              wxCardAPISignature.setTimestamp(timestamp);
              wxCardAPISignature.setSignature(signature);
              return wxCardAPISignature;
          } catch (AesException e) {
              logger.error("createWxCardJsAPISignature failed", e);
              throw new WxRuntimeException(999, e.getMessage());
          }
      }