Maison  >  Article  >  Java  >  Explication détaillée des étapes du processus de développement de compte public Java+WeChat

Explication détaillée des étapes du processus de développement de compte public Java+WeChat

php是最好的语言
php是最好的语言original
2018-08-10 14:44:4512225parcourir

Au cours des deux derniers jours, je voulais apprendre le développement de comptes publics WeChat, j'ai donc cherché en ligne et commencé à m'entraîner au cours du processus, en raison de divers problèmes (la description est incomplète, certains articles apparaissent une nouvelle constante sans le savoir. comment, il n'a pas dit où il a été défini, et le problème avec la version du package jar m'a coûté une journée), je vais donc l'enregistrer ici.

1. Tout d'abord, vous devez créer un compte public WeChat. Accédez à Du Niang pour rechercher la plateforme publique WeChat et accédez à cette page pour vous inscrire (ignorez cette étape si vous avez déjà un compte) :

Explication détaillée des étapes du processus de développement de compte public Java+WeChat

2. Utilisez ensuite Eclipse pour créer un nouveau projet. Ici, je construis un projet Web, jdk est 1.8 et Tomcat est 8.5.

Explication détaillée des étapes du processus de développement de compte public Java+WeChat

3 .Afin d'établir une connexion avec WeChat, après avoir construit le projet, créez d'abord une nouvelle classe et nommez-la : CheckUtil. Sa fonction est de servir d'outil de vérification pour la connexion avec WeChat. est la suivante :

import java.security.MessageDigest;
import java.util.Arrays;

public class CheckUtil {
	public static final String  tooken = "自行定义"; //开发者自行定义Tooken
	public static boolean checkSignature(String signature,String timestamp,String nonce){
		//1.定义数组存放tooken,timestamp,nonce
		String[] arr = {tooken,timestamp,nonce};
		//2.对数组进行排序
		Arrays.sort(arr);
		//3.生成字符串
		StringBuffer sb = new StringBuffer();
		for(String s : arr){
			sb.append(s);
		}
		//4.sha1加密,网上均有现成代码
		String temp = getSha1(sb.toString());
		//5.将加密后的字符串,与微信传来的加密签名比较,返回结果
		return temp.equals(signature);
	}

	public static String getSha1(String str){
        if(str==null||str.length()==0){
            return null;
        }
        char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9',
                'a','b','c','d','e','f'};
        try {
            MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
            mdTemp.update(str.getBytes("UTF-8"));
            byte[] md = mdTemp.digest();
            int j = md.length;
            char buf[] = new char[j*2];
            int k = 0;
            for (int i = 0; i < j; i++) {
                byte byte0 = md[i];
                buf[k++] = hexDigits[byte0 >>> 4 & 0xf];
                buf[k++] = hexDigits[byte0 & 0xf];      
            }
            return new String(buf);
        } catch (Exception e) {
            // TODO: handle exception
            return null;
        }
    }
}
4. Créez ensuite une nouvelle classe qui réécrit la méthode doGet pour recevoir les requêtes GET de WeChat. Une partie du code est la suivante :

<.>5. Une fois le code écrit, un outil est nécessaire pour mapper notre lien intranet au réseau public. De cette façon, WeChat peut accéder à notre backend. Ici, j'utilise ngrok, un outil de cartographie gratuit. recherchez-le et téléchargez-le. Après le téléchargement, décompressez-le et placez-le dans un emplacement désigné. Appuyez en même temps sur la touche Win + R et entrez cmd, appuyez sur Entrée pour accéder à l'environnement DOS, passez à la lettre de lecteur où se trouve ngrock. , entrez ngrock http 8080 et appuyez sur Entrée (démarrez Tomcat avant de faire cela) :
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		response.setContentType("text/html");
		String signature = request.getParameter("signature");
		String timestamp = request.getParameter("timestamp");
		String nonce = request.getParameter("nonce");
		String echostr = request.getParameter("echostr");
		PrintWriter out = response.getWriter();
		if(CheckUtil.checkSignature(signature, timestamp, nonce)){
			//如果校验成功,将得到的随机字符串原路返回
			out.print(echostr);
		}
	}

Explication détaillée des étapes du processus de développement de compte public Java+WeChat 6. Après avoir appuyé sur Entrée. Après avoir attendu un moment, vous obtiendrez le lien du réseau public. Le lien donné dans la zone ombrée comme le montre la figure ci-dessous permet d'accéder directement au contenu du lien sous la machine locale 127.0.0.1:8080, qui sont les adresses correspondant au protocole http et au protocole https :

Explication détaillée des étapes du processus de développement de compte public Java+WeChat7. Connectez-vous à la plateforme de compte public WeChat, glissez vers le bas et cliquez sur Développement dans le coin inférieur gauche - Configuration de base :

Explication détaillée des étapes du processus de développement de compte public Java+WeChat Cliquez sur le bouton Soumettre, et si la soumission réussit, cela signifie que WeChat peut accéder à notre propre backend.

Recommandations associées :

Exemple de code graphique Java pour le développement de la plateforme publique WeChat

Exemple de développement de paiements de compte public WeChat (java) Explication détaillée

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