搜尋
首頁微信小程式微信開發微信開發之準備階段的圖文程式碼介紹

  微信開發之準備階段


所需資源:

#1、微信公眾平台帳號

2、百度BAE平台帳號

一、    微信公眾帳號申請

登入微信公眾平台   在右上角有註冊

微信開發之準備階段的圖文程式碼介紹

填寫相關資料進行註冊,在此我註冊的是個人訂閱號,如果有公司信息可以註冊服務號碼。另外由於個人訂閱號介面有限,對個人開發不是很有利,微信也提供了測試帳號,專為開發人員使用,進入以下地址申請測試號         微信開發之準備階段的圖文程式碼介紹



微信開發之準備階段的圖文程式碼介紹微信開發之準備階段的圖文程式碼介紹

##測試號權限對於開發來說還是很不錯的~

由於微信存取開發者模式需要提供可供微信伺服器發送請求的url位址所以你的服務端必須能接入公網,可以使用花生殼等dns服務商,在此由於我用的是小區寬頻不能解析,所以改用了百度的bae,沒有公網ip的可以試試,初步接入測試感覺挺方便的,,用百度帳號就可登陸,需要注意的是在bae使用中要用svn等管理應用,但是用戶名又不支持中文所以如果百度帳號是中文的朋友還是重新註冊一個英文的吧,

接下來準備工作做完了就開始編寫代碼成為微信公眾平台的開發者吧,以下代碼出自柳峰老師博客

核心類別:

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;    
    }  
}



這類用到SignUtil的checkSignature方法:      

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;    
    }    
}

以下是web.xml

<?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>




################################################################################# ###至此存取設定就可以開始了######填寫對應url和token就可以成為開發者了,祝大家順利~############

以上是微信開發之準備階段的圖文程式碼介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器