Java を使用してフォーム データの WeChat アクセスおよびメッセージ プッシュ機能を実装する

WBOY
リリース: 2023-08-08 15:24:25
オリジナル
1488 人が閲覧しました

Java を使用してフォーム データの WeChat アクセスおよびメッセージ プッシュ機能を実装する

Java を使用してフォーム データの WeChat アクセスとメッセージ プッシュ機能を実装する

要約:
この記事では、Java プログラミング言語を使用してフォーム データの WeChat アクセスを実装する方法を紹介します。フォームデータ入力とメッセージプッシュ機能。 WeChat公式アカウントプラットフォームが提供するAPIを介して、ユーザーが入力したフォームデータをWeChat公式アカウントに統合し、メッセージプッシュ機能を通じて指定したターゲットにデータを自動送信できます。この記事では、Java を使用して WeChat のデータへのアクセスとメッセージ プッシュ機能を実装するコードを記述する方法を紹介し、対応するコード例を示します。

1. WeChat アクセス設定

  1. WeChat 公式アカウントを登録し、公式アカウントの APPID と APPSECRET を取得します。
  2. WeChat公式アカウントのバックグラウンドでサーバー情報を設定し、対応する設定項目にサーバーURLとトークン(Token)を入力します。

2. メッセージを受信して​​確認する
ユーザーが WeChat 公式アカウントに関連する指示を入力すると、WeChat サーバーは受信したメッセージを事前に設定項目に次の形式で送信します。 POST リクエストサーバーの URL を入力します。メッセージを受信して​​解析するには、次の関数を実装する Java コードを作成する必要があります。

  1. サーブレット クラスを実装し、対応する URL マッピングを web.xml ファイルに設定します。
  2. Servlet クラスで、doPost メソッドをオーバーライドして、POST リクエストのパラメーターを取得します。
  3. リクエストが WeChat サーバーからのものであるかどうかを確認します。確認方法は、構成アイテム内のトークン、タイムスタンプ、およびランダムな文字列を辞書にソートし、受信した署名と比較することです。
    (サンプルコード:)
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. メッセージのプッシュ
ユーザーが送信したメッセージを受信した後、指定されたターゲットにメッセージを自動的にプッシュする必要があります。ここでは認証に access_token を使用し、メッセージのプッシュには WeChat 公式アカウントが提供するメッセージ インターフェイスを使用します。

  1. access_token を取得します。トークンは一定期間内に期限切れになるため、定期的に再取得する必要があります。
    (サンプルコード:)
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. プッシュメッセージ
    (サンプルコード:)
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. フォームデータの統合とメッセージプッシュ

    #ユーザーメッセージ受信処理ロジックでは、ユーザーが入力したフォームデータを取得し、統合処理を行います。
  1. (サンプルコード:)
  2. 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());
    }
    ログイン後にコピー
    結論:

    Java プログラミング言語を使用して、フォーム データの WeChat アクセスおよびメッセージ プッシュ機能を実装することで、フォーム データを自動的に入力できます。指定したターゲットにプッシュします。この記事では、対応するコード例を示します。皆様のお役に立てれば幸いです。最後に、メッセージ プッシュが正常に動作するように、定期的に access_token を取得することに注意する必要があります。

    以上がJava を使用してフォーム データの WeChat アクセスおよびメッセージ プッシュ機能を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!