ホームページ  >  記事  >  Java  >  Java + WeChat パブリック アカウント開発プロセスの手順の詳細な説明

Java + WeChat パブリック アカウント開発プロセスの手順の詳細な説明

php是最好的语言
php是最好的语言オリジナル
2018-08-10 14:44:4512208ブラウズ

ここ 2 日間、WeChat のパブリック アカウントの開発を学びたかったので、その過程でさまざまな問題が発生したため (説明が不完全で、方法がわからないまま新しい定数が表示される記事もありました)、練習を始めました。と、やり方がわからなかった)と、jarパッケージのバージョンの問題で1日悩んだので、ここに記録しておきます。

1. まず、Du Niang で WeChat パブリック プラットフォームを検索し、このページに入力して登録する必要があります (すでにアカウントをお持ちの場合は、この手順をスキップしてください):

Java + WeChat パブリック アカウント開発プロセスの手順の詳細な説明

2. 次に、Eclipse を使用します。新しいプロジェクトを作成します。ここでは Web プロジェクトを構築しています。jdk は 1.8、tomcat は 8.5 です。

Java + WeChat パブリック アカウント開発プロセスの手順の詳細な説明

3. WeChat との接続を確立するには、プロジェクトを構築した後、まず新しいクラスを作成します。名前: CheckUtil、その機能は WeChat に接続された検証ツールです。コードは次のとおりです:

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. 次に、新しいサーブレットを作成し、WeChat から GET リクエストを受信するように doGet メソッドを書き換えます。コードの一部は次のとおりです。

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

5. コードを記述したら、WeChat がバックエンドにアクセスできるように、ツールがイントラネット リンクをパブリック ネットワークにマッピングする必要があります。ここでは、無料のマッピング ツールである ngrok を使用します。ダウンロード後、解凍して指定の場所に置き、win キーと R キーを同時に押し、cmd と入力し、Enter キーを押して dos 環境に入り、ngrock が存在するドライブ文字に切り替えます。 ngrock http 8080 と入力し、Enter キーを押します (これを行う前に Tomcat を起動します):

Java + WeChat パブリック アカウント開発プロセスの手順の詳細な説明

6. 戻る 運転後、しばらく待つと、図に示すように、陰影付きの領域に表示されるパブリック ネットワーク リンクが表示されます。以下の図は、このマシンの 127.0.0.1:8080 にあるリンク コンテンツに直接アクセスできます。これは、http プロトコルと https プロトコルに対応するアドレスです。

Java + WeChat パブリック アカウント開発プロセスの手順の詳細な説明

7. WeChat 公式アカウント プラットフォームにログインします。一番下まで移動し、左下隅の「開発」をクリックします - 基本構成:

Java + WeChat パブリック アカウント開発プロセスの手順の詳細な説明

送信ボタンをクリックします。送信が成功すると、WeChat が独自のバックステージにアクセスできることになります。

関連する推奨事項:

WeChat パブリック プラットフォーム開発用の Java グラフィックおよびテキスト コードの例

WeChat パブリック アカウント支払い開発 (Java) の例の詳細な説明

以上がJava + WeChat パブリック アカウント開発プロセスの手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。