Maison  >  Article  >  Java  >  Un exemple de la façon dont Java appelle les messages du service client WeChat pour compléter les notifications d'expédition (image)

Un exemple de la façon dont Java appelle les messages du service client WeChat pour compléter les notifications d'expédition (image)

黄舟
黄舟original
2017-08-20 09:12:482919parcourir

Cet article présente principalement la méthode d'utilisation de Java pour appeler les messages du service client WeChat afin de mettre en œuvre les notifications de livraison. Il analyse également en détail les principes, les méthodes d'appel et les précautions associées de Java pour les appels d'interface WeChat sous forme d'exemples. le besoin peut s'y référer

L'exemple de cet article décrit comment Java appelle les messages du service client WeChat pour implémenter les notifications de livraison. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Note personnelle : Ceci est un exemple Il existe de nombreux types de messages clients WeChat. J'utilise actuellement le compte officiel pour envoyer des messages. Cela ressemble à l'image ci-dessous.

Remarque : la partie code commence ci-dessous.

1. Lisez d’abord la documentation WeChat. Voici ce dont nous avons besoin

Voici pour envoyer un message au POST demander cette interface : https://api.weixin.qq.com/cgi-bin/message/ custom/send?access_token=ACCESS_TOKEN

Mais cette interface doit avoir un paramètre ACCESS_TOKEN.

Obtenez d'abord ACCESS_TOKEN.


//这里的WeixinUtil.getAccess_token()方法,放在下面。
String aToken = WeixinUtil.getAccess_token("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+你的appId+"&secret="+你的appSecret+"");
System.out.println("这里是aToken"+aToken);
String[] tokenOne = aToken.split(":");
String[] token = tokenOne[1].split(",");
char [] stringArr = token[0].toCharArray();
String token3 = "" ;
for(int i=1;i<stringArr.length-1;i++){
  String token2 = String.valueOf(stringArr[i]);
  token3 += token2;
}
System.out.println("这里是ACCESS_TOKEN"+token3);

Obtenez un ACCESS_TOKEN, puis vous pourrez l'ajouter à la demande WeChat


//这里就是一个微信请求,首先用String放着
String tokenurl = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token="+token3;
//首先确定是发送文字消息,还是图文消息,这里是手写的json数据.
//发送文字消息,无连接
String json = "{\"touser\":\"这里是Openid\",\"msgtype\":\"text\",\"text\":{\"content\":\"Hello World\"}}";
//图文消息,有链接连接
String jsonpic = "{\"touser\":\""+这里是Openid+"\","+ "\"msgtype\":\"news\",\"news\":{\"articles\":["+ "{\"title\":\"HelloWorld\",\"url\":\"要跳转的链接"}]}}";
System.out.println("这里是json"+jsonpic);
//请求方法,然后放回OK 成功,否则错误。这里这个请求方法在下边
String xmlStr = HttpKit.post(tokenurl,jsonpic);
System.out.println("这里是xmlStr"+xmlStr);

Mode d'emploi :WeixinUtil.getAccess_token()Méthode. J'ai mis toute la classe. Pour changer le nom du package, il vous suffit d'importer deux packages


package com.uitrs.weixin;
import java.net.HttpURLConnection;
import java.net.URL;
public class WeixinUtil {
  //传入URL
    public static String getAccess_token(String url) {
      String accessToken = null;
      try {
        URL urlGet = new URL(url);
        HttpURLConnection http = (HttpURLConnection) urlGet
            .openConnection();
        http.setRequestMethod("GET"); // 必须是get方式请求
        http.setRequestProperty("Content-Type",
            "application/x-www-form-urlencoded");
        http.setDoOutput(true);
        http.setDoInput(true);
        System.setProperty("sun.net.client.defaultConnectTimeout", "30000");// 连接超时30秒
        System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 读取超时30秒
        http.connect();
        InputStream is = http.getInputStream();
        int size = is.available();
        byte[] jsonBytes = new byte[size];
        is.read(jsonBytes);
        accessToken = new String(jsonBytes, "UTF-8");
        System.out.println(accessToken);
        is.close();
      } catch (Exception e) {
        e.printStackTrace();
      }
      return accessToken;
    }
}

Remarque : j'ai mis la classe entière dans la méthode HttpKit.post();. J'utilise cette classe pour importer


import com.jfinal.kit.HttpKit;

ce package dans le package jfinal. Cela vient des trois packages suivants, je ne connais pas les détails

1.jfinal-2.2.jar (devrait être ceci)
2.jfinal-2.2-bin-with-src.jar
3.jfinal-weixin-1.7-bin-with-src.jar

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