docs: public long send(String toUser, String templateId, String url, MiniProgram miniProgram, Map<String, Data> messages) {
          String sendUrl = WxEndpoint.get("url.template.send");
          MessageWrapper messageWrapper = new MessageWrapper();
          messageWrapper.setToUser(toUser);
          messageWrapper.setTemplateId(templateId);
  
          if(url != null) {
              messageWrapper.setUrl(url);
          }
          if(miniProgram != null) {
              messageWrapper.setMiniProgram(miniProgram);
          }
          messageWrapper.setData(messages);
  
          String json = JsonMapper.defaultMapper().toJson(messageWrapper);
  
          logger.debug("template message, send message: {}", json);
          String response = wxClient.post(sendUrl, json);
          Map<String, Object> result = JsonMapper.defaultMapper().json2Map(response);
  
          if(result.containsKey("msgid")) {
              return ((Number)result.get("msgid")).longValue();
          } else {
              throw new WxRuntimeException(999, "send template message failed.");
          }
      }