ここ 2 日間、WeChat のパブリック アカウントの開発を学びたかったので、その過程でさまざまな問題が発生したため (説明が不完全で、方法がわからないまま新しい定数が表示される記事もありました)、練習を始めました。と、やり方がわからなかった)と、jarパッケージのバージョンの問題で1日悩んだので、ここに記録しておきます。
1. まず、Du Niang で WeChat パブリック プラットフォームを検索し、このページに入力して登録する必要があります (すでにアカウントをお持ちの場合は、この手順をスキップしてください):
2. 次に、Eclipse を使用します。新しいプロジェクトを作成します。ここでは Web プロジェクトを構築しています。jdk は 1.8、tomcat は 8.5 です。 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 を起動します): 6. 戻る 運転後、しばらく待つと、図に示すように、陰影付きの領域に表示されるパブリック ネットワーク リンクが表示されます。以下の図は、このマシンの 127.0.0.1:8080 にあるリンク コンテンツに直接アクセスできます。これは、http プロトコルと https プロトコルに対応するアドレスです。 7. WeChat 公式アカウント プラットフォームにログインします。一番下まで移動し、左下隅の「開発」をクリックします - 基本構成: 送信ボタンをクリックします。送信が成功すると、WeChat が独自のバックステージにアクセスできることになります。 関連する推奨事項:
WeChat パブリック プラットフォーム開発用の Java グラフィックおよびテキスト コードの例
WeChat パブリック アカウント支払い開発 (Java) の例の詳細な説明
以上がJava + WeChat パブリック アカウント開発プロセスの手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。