WeChat開発の準備段階におけるグラフィックコードの紹介

黄舟
リリース: 2017-04-18 10:19:44
オリジナル
1507 人が閲覧しました

WeChat 開発の準備段階


必要なリソース:

1. WeChat パブリック プラットフォーム アカウント

2. Baidu BAE プラットフォーム アカウント

1. WeChatパブリックアカウントアプリケーション

WeChatパブリックプラットフォームにログインします 右上に登録があります

WeChat開発の準備段階におけるグラフィックコードの紹介

ここで登録したのは個人のサブスクリプションアカウントです。会社情報をお持ちであれば、登録できます。サービスアカウント。さらに、個人サブスクリプション アカウントのインターフェイスは限られているため、個人の開発にはあまり有益ではありません。WeChat は開発者向けに特別に使用されるテスト アカウントも提供しています。テスト アカウントを申請するには、次のアドレスを入力してください。開発に非常に適しています~WeChat開発の準備段階におけるグラフィックコードの紹介

WeChat アクセス開発者モードではリクエストを送信するために WeChat サーバーの URL アドレスを提供する必要があるため、サーバーはパブリック ネットワークにアクセスできる必要があります。Peanut Shell などの DNS サービス プロバイダーを使用できます。 、解析できないコミュニティブロードバンドを使用しているため、パブリックIPを持っていない場合は、Baiduアカウントでログインできるので、試してみることができます。 baeを使用する場合、svnなどの管理アプリケーションを使用する必要がありますが、ユーザー名は中国語をサポートしていないため、Baiduアカウントが中国語の場合は、


準備が完了した後、英語のアカウントを再登録する必要があることに注意してください。完了したら、WeChat パブリック プラットフォーム開発者になるためのコードの作成を開始します。次のコードは、Liu Feng 先生のブログからのものです。

コア クラス:

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;    
    }  
}
ログイン後にコピー

WeChat開発の準備段階におけるグラフィックコードの紹介WeChat開発の準備段階におけるグラフィックコードの紹介

このタイプのコードは、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です



これでアクセス設定を開始できます

対応するURLとトークンを入力することで開発者になることができます。最高〜

以上がWeChat開発の準備段階におけるグラフィックコードの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート