Maison  >  Article  >  Java  >  Utiliser Java pour implémenter les fonctions d'accès WeChat et de transmission de messages pour les données de formulaire

Utiliser Java pour implémenter les fonctions d'accès WeChat et de transmission de messages pour les données de formulaire

WBOY
WBOYoriginal
2023-08-08 15:24:251510parcourir

Utiliser Java pour implémenter les fonctions daccès WeChat et de transmission de messages pour les données de formulaire

Utilisez Java pour implémenter les fonctions d'accès WeChat et de transmission de messages pour les données de formulaire

Résumé :
Cet article présente comment utiliser le langage de programmation Java pour implémenter les fonctions d'accès WeChat et de transmission de messages pour les données de formulaire. Grâce à l'API fournie par la plateforme de compte officiel WeChat, nous pouvons intégrer les données du formulaire remplies par les utilisateurs dans le compte officiel WeChat et envoyer automatiquement les données à la cible désignée via la fonction de transmission de messages. Cet article expliquera comment utiliser Java pour écrire du code afin d'implémenter l'accès WeChat aux fonctions d'envoi de données et de messages, et donnera des exemples de code correspondants.

1. Configuration de l'accès WeChat

  1. Enregistrez un compte officiel WeChat et obtenez l'APPID et l'APPSECRET du compte officiel.
  2. Configurez les informations du serveur en arrière-plan du compte officiel WeChat et remplissez l'URL du serveur et le jeton (Token) dans les éléments de configuration correspondants.

2. Recevoir et vérifier les messages
Lorsque l'utilisateur saisit les instructions pertinentes dans le compte officiel WeChat, le serveur WeChat enverra le message reçu sous la forme d'une requête POST à ​​l'URL du serveur que nous avons renseignée à l'avance dans l'élément de configuration. Afin de recevoir et d'analyser les messages, nous devons écrire du code Java pour implémenter les fonctions suivantes :

  1. Implémenter une classe Servlet et configurer le mappage d'URL correspondant dans le fichier web.xml.
  2. Dans la classe Servlet, remplacez la méthode doPost pour obtenir les paramètres de la requête POST.
  3. Vérifiez si la demande provient du serveur WeChat. La méthode de vérification est la suivante : trier le jeton, l'horodatage et la chaîne aléatoire dans l'élément de configuration dans un dictionnaire et les comparer avec la signature entrante.
    (Exemple de code :)
public class WeChatServlet extends HttpServlet {

  private static final String TOKEN = "your_token";

  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //验证请求是否来自微信服务器
    String signature = request.getParameter("signature");
    String timestamp = request.getParameter("timestamp");
    String nonce = request.getParameter("nonce");
    String echostr = request.getParameter("echostr");

    String[] arr = {TOKEN, timestamp, nonce};
    //字典排序
    Arrays.sort(arr);

    StringBuilder sb = new StringBuilder();
    for (String s : arr) {
        sb.append(s);
    }
    String tempStr = SHA1.encode(sb.toString());

    //验证签名
    if (tempStr.equals(signature)) {
      //接收并处理消息
      //...
    }

    //返回验证结果
    PrintWriter out = response.getWriter();
    out.print(echostr);
    out.close();
  }
}

3. Message push
Après avoir reçu le message envoyé par l'utilisateur, nous devons automatiquement pousser le message vers la cible spécifiée. Ici, nous utilisons access_token pour l'authentification et utilisons l'interface de message fournie par le compte officiel WeChat pour l'envoi de messages.

  1. Obtenez le access_token. Le jeton expirera dans un certain délai et devra être réacquis régulièrement.
    (Exemple de code :)
public class AccessTokenUtil {

  private static final String APPID = "your_appid";
  private static final String APPSECRET = "your_appsecret";

  private static String access_token = null;
  private static long expires_time = 0;

  public static String getAccessToken() {
    if (access_token == null || System.currentTimeMillis() >= expires_time) {
      String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + APPID + "&secret=" + APPSECRET;
      String result = HttpUtil.sendGet(url);
      JSONObject jsonObject = JSONObject.parseObject(result);
      access_token = jsonObject.getString("access_token");
      int expires_in = jsonObject.getIntValue("expires_in");
      expires_time = System.currentTimeMillis() + (expires_in - 200) * 1000;
    }
    return access_token;
  }
}
  1. Message push
    (Exemple de code :)
public class MessageUtil {

  public static void sendMessage(String openid, String message) {
    String url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" + AccessTokenUtil.getAccessToken();
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("touser", openid);
    jsonObject.put("msgtype", "text");
    JSONObject text = new JSONObject();
    text.put("content", message);
    jsonObject.put("text", text);
    String result = HttpUtil.sendPost(url, jsonObject.toJSONString());
  }
}

4. Intégration des données du formulaire et envoi des messages

  1. Dans la logique de traitement de la réception des messages utilisateur, obtenez les données du formulaire saisies par le utilisateur, Effectuer le traitement d'intégration.
    (Exemple de code :)
public void handleMessage(HttpServletRequest request) {
  //获取用户输入的表单数据
  String name = request.getParameter("name");
  String email = request.getParameter("email");
  String message = request.getParameter("message");

  //整合表单数据
  StringBuilder sb = new StringBuilder();
  sb.append("姓名:").append(name).append("
");
  sb.append("邮箱:").append(email).append("
");
  sb.append("留言:").append(message);

  //将整合后的数据推送给目标
  MessageUtil.sendMessage(target_openid, sb.toString());
}

Conclusion :
En utilisant le langage de programmation Java pour implémenter la fonction d'accès WeChat et de transmission de messages des données du formulaire, nous pouvons automatiquement transmettre les données du formulaire remplies par l'utilisateur vers la cible spécifiée. Cet article donne des exemples de code correspondants, j'espère qu'il sera utile à tout le monde. Enfin, vous devez veiller à obtenir régulièrement access_token pour assurer le fonctionnement normal du push de message.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn