Maison >Applet WeChat >Développement WeChat >Introduction au code graphique dans la phase de préparation du développement de WeChat

Introduction au code graphique dans la phase de préparation du développement de WeChat

黄舟
黄舟original
2017-04-18 10:19:441550parcourir

Étape préparatoire du développement de WeChat


Ressources requises :

1. Compte de la plateforme publique WeChat

2.

1.

Application de compte public WeChat

Connectez-vous à la plateforme publique WeChat et inscrivez-vous dans le coin supérieur droit

Introduction au code graphique dans la phase de préparation du développement de WeChat

Remplissez les informations pertinentes pour vous inscrire. Ce que j'inscris ici est un. compte d'abonnement personnel. S'il existe des informations sur l'entreprise, vous pouvez créer un compte de service. De plus, en raison de l'interface limitée pour les comptes d'abonnement personnels, WeChat propose également un compte de test, qui est spécialement utilisé par les développeurs pour demander un compte de test                                   🎜>

Introduction au code graphique dans la phase de préparation du développement de WeChat


Les autorisations du compte de test sont toujours très bonnes pour le développement~

Depuis que WeChat accède aux développeurs, le mode doit fournir l'URL adresse à laquelle le serveur WeChat peut envoyer des requêtes, votre serveur doit donc pouvoir accéder au réseau public. Vous pouvez utiliser des fournisseurs de services DNS tels que Peanut Shell. Ici, comme j'utilise le haut débit communautaire et que je ne peux pas le résoudre, j'utilise Baidu à la place. . Bae, si vous n'avez pas d'adresse IP publique, vous pouvez l'essayer. Le test d'accès initial semble très pratique. Vous pouvez vous connecter avec un compte Baidu. Il convient de noter que lorsque vous utilisez bae, vous devez utiliser svn et. d'autres applications de gestion, mais le nom d'utilisateur n'est pas pris en charge en chinois, donc si votre compte Baidu est chinois, vous devez en réenregistrer un en anglais

Introduction au code graphique dans la phase de préparation du développement de WeChatUne fois les préparatifs terminés, commencez à écrire du code pour devenir développeur. de la plateforme publique WeChat. Le code suivant provient du blog du professeur Liu FengIntroduction au code graphique dans la phase de préparation du développement de WeChat
Classes de base :

package com.vlive.action.connector;  
import java.io.IOException;  
import java.io.PrintWriter;  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import com.vlive.utils.SignUtil;  
public class URlresponse extends HttpServlet{  
    @Override  
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
         // 微信加密签名    
        String signature = req.getParameter("signature");    
        // 时间戳    
        String timestamp = req.getParameter("timestamp");    
        // 随机数    
        String nonce = req.getParameter("nonce");    
        // 随机字符串    
        String echostr = req.getParameter("echostr");    
        PrintWriter out = resp.getWriter();    
        // 通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败    
        if (SignUtil.checkSignature(signature, timestamp, nonce)) {    
            out.print(echostr);    
        }    
        out.close();    
        out = null;    
    }  
}


Cette catégorie est utilisée Accédez à la méthode checkSignature de SignUtil :

  • Ce qui suit est web.xml

package com.vlive.utils;  
import java.security.MessageDigest;  
import java.security.NoSuchAlgorithmException;  
import java.util.Arrays;  
public class SignUtil {  
    private static String token="vlive";  
    public static boolean checkSignature(String signature, String timestamp, String nonce) {    
        String[] arr = new String[] { token, timestamp, nonce };    
        // 将token、timestamp、nonce三个参数进行字典序排序    
        Arrays.sort(arr);    
        StringBuilder content = new StringBuilder();    
        for (int i = 0; i < arr.length; i++) {    
            content.append(arr[i]);    
        }    
        MessageDigest md = null;    
        String tmpStr = null;    
        try {    
            md = MessageDigest.getInstance("SHA-1");    
            // 将三个参数字符串拼接成一个字符串进行sha1加密    
            byte[] digest = md.digest(content.toString().getBytes());    
            tmpStr = byteToStr(digest);    
        } catch (NoSuchAlgorithmException e) {    
            e.printStackTrace();    
        }    
        content = null;    
        // 将sha1加密后的字符串可与signature对比,标识该请求来源于微信    
        return tmpStr != null ? tmpStr.equals(signature.toUpperCase()) : false;    
    }    
     /**  
     * 将字节数组转换为十六进制字符串  
     *   
     * @param byteArray  
     * @return  
     */    
    private static String byteToStr(byte[] byteArray) {    
        String strDigest = "";    
        for (int i = 0; i < byteArray.length; i++) {    
            strDigest += byteToHexStr(byteArray[i]);    
        }    
        return strDigest;    
    }    
    /**  
     * 将字节转换为十六进制字符串  
     *   
     * @param mByte  
     * @return  
     */    
    private static String byteToHexStr(byte mByte) {    
        char[] Digit = { &#39;0&#39;, &#39;1&#39;, &#39;2&#39;, &#39;3&#39;, &#39;4&#39;, &#39;5&#39;, &#39;6&#39;, &#39;7&#39;, &#39;8&#39;, &#39;9&#39;, &#39;A&#39;, &#39;B&#39;, &#39;C&#39;, &#39;D&#39;, &#39;E&#39;, &#39;F&#39; };    
        char[] tempArr = new char[2];    
        tempArr[0] = Digit[(mByte >>> 4) & 0X0F];    
        tempArr[1] = Digit[mByte & 0X0F];    
        String s = new String(tempArr);    
        return s;    
    }    
}

<?xml version="1.0" encoding="UTF-8"?>  
<web-app version="2.5"   
    xmlns="http://java.sun.com/xml/ns/javaee"   
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  <display-name></display-name>   
  <servlet>    
        <servlet-name>URlresponse</servlet-name>    
        <servlet-class>    
           com.vlive.action.connector.URlresponse    
        </servlet-class>    
    </servlet>    
    <!-- url-pattern中配置的/coreServlet用于指定该Servlet的访问路径 -->    
    <servlet-mapping>    
        <servlet-name>URlresponse</servlet-name>    
        <url-pattern>/urlresponse</url-pattern>    
    </servlet-mapping>    
  <welcome-file-list>  
    <welcome-file>index.jsp</welcome-file>  
  </welcome-file-list>  
</web-app>

Maintenant, la configuration des accès peut commencer

Vous pouvez devenir développeur en remplissant le formulaire URL et jeton correspondants. Je vous souhaite tout le meilleur ~

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