Heim > Java > javaLernprogramm > Was soll ich tun, wenn die Verifizierung des Entwicklungs-TOKENs für das öffentliche JAVA WeChat-Konto fehlschlägt?

Was soll ich tun, wenn die Verifizierung des Entwicklungs-TOKENs für das öffentliche JAVA WeChat-Konto fehlschlägt?

coldplay.xixi
Freigeben: 2020-06-13 09:37:46
Original
3761 Leute haben es durchsucht

Was soll ich tun, wenn die Verifizierung des Entwicklungs-TOKENs für das öffentliche JAVA WeChat-Konto fehlschlägt?

Was soll ich tun, wenn die Überprüfung des JAVA WeChat-TOKEN für die öffentliche Kontoentwicklung fehlschlägt?

Lösung für den Fehler bei der TOKEN-Überprüfung bei der Entwicklung eines öffentlichen JAVA-WeChat-Kontos:

Bei der Konfiguration des öffentlichen WeChat-Plattformservers muss das Token eingeführt werden, bei der Übermittlung jedoch nicht Es wird immer angezeigt, dass die Token-Überprüfung fehlgeschlagen ist, weil das WeChat-Backend den Überprüfungs-Token-Code in Ihrem Code nicht erkannt hat. Anschließend sollten Sie das Token gemäß den offiziellen Dokumenten überprüfen und das Ergebnis nach der Überprüfung an die öffentliche WeChat-Plattform zurücksenden.

Der Verifizierungscode lautet:

 public class SignUtil {
    
      private static String token = "WnbVm6GTQj4BPmLliSday4K";//这里是自定义的token,需和你提交的token一致
 
      /**
       * 校验签名
       * 
       * @param signature
      *            签名
     * @param timestamp
      *            时间戳
      * @param nonce
      *            随机数
     * @return 布尔值
      */
     public static boolean checkSignature(String signature, String timestamp, String nonce) {
         String checktext = null;
         if (null != signature) {
             // 对ToKen,timestamp,nonce 按字典排序
             String[] paramArr = new String[] { token, timestamp, nonce };
             Arrays.sort(paramArr);
            
             try {
               MessageDigest md = MessageDigest.getInstance("SHA-1");
              // 对接后的字符串进行sha1加密
              byte[] digest = md.digest(content.toString().getBytes());
               checktext = byteToStr(digest);
           } catch (NoSuchAlgorithmException e) {
              e.printStackTrace();
           }
     }
       // 将加密后的字符串与signature进行对比
       return checktext != null ? checktext.equals(signature.toUpperCase()) : false;
    }
    /**
     * 将字节数组转化为16进制字符串
    * 
      * @param byteArrays
     *            字符数组
    * @return 字符串
     */
   private static String byteToStr(byte[] byteArrays) {
        String str = "";
        for (int i = 0; i < byteArrays.length; i++) {
           str += byteToHexStr(byteArrays[i]);
     }
       return str;
  }
   /**
    * 将字节转化为十六进制字符串
    * 
  * @param myByte
     *            字节
 * @return 字符串
  */
  private static String byteToHexStr(byte myByte) {
     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[] tampArr = new char[2];
     tampArr[0] = Digit[(myByte >>> 4) & 0X0F];
        tampArr[1] = Digit[myByte & 0X0F];
        String str = new String(tampArr);
      return str;
     }
 }
Nach dem Login kopieren

Beim Absenden fragt die öffentliche Plattform nach Ihrer Adresse und prüft im Hintergrund, ob Sie diese verifiziert haben:

 if (StringUtils.isNotBlank(request.getParameter("signature"))) {
             String signature = request.getParameter("signature");
            String timestamp = request.getParameter("timestamp");
             String nonce = request.getParameter("nonce");
             String echostr = request.getParameter("echostr");
             LOGGER.info("signature[{}], timestamp[{}], nonce[{}], echostr[{}]", signature, timestamp, nonce, echostr);
             if (SignUtil.checkSignature(signature, timestamp, nonce)) {
                LOGGER.info("数据源为微信后台,将echostr[{}]返回!", echostr);
                response.getOutputStream().println(echostr);
             }
         }
Nach dem Login kopieren

Empfohlenes Tutorial: „JAVA-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn die Verifizierung des Entwicklungs-TOKENs für das öffentliche JAVA WeChat-Konto fehlschlägt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage