WeChat共有インターフェイスの開発におけるいくつかの小さなステップ、特定のコンテンツは次のとおりです
1。検証のためにインターフェイス情報を構成します
コードは次のとおりです。
/** * Unauthenticatedアドレスにアクセスするためにジャンプ * * @param request * @return loginページ * @Throws例外 */@RequestMapping(value = "/checkwxdomainurl"、method = requestmethod.get)public void checkwxdomainurl Fill-in ServerアドレスURL、およびGETリクエストにはパラメーター文字列署名= request.getParameter( "signature"); // wechat暗号化署名(トークン、タイムスタンプ、ノンセ。)文字列タイムスタンプ= request.getParameter( "タイムスタンプ"); request.getParameter( "echostr"); //ランダム文字列// sort dictionary token、timestamp、nonce string [] params = new String [] {Token、Timestamp、nonce}; arrays.sort(params); // SHA1暗号化の文字列に3つのパラメーター文字列をスプライスする文字列cleartext = params [0] + params [1] + params [2]; string algorithm = "sha-1"; string sign = new String(hex.encodehex(mesagedgest.getInstance(algorithm).digest((cleartext).getBytes())、true)); //著者は署名で暗号化された文字列を取得し、リクエストがweChat if(signature.equals(sign)){respons.getWriter()。print(echostr)から来ることを識別します。 }} catch(例外e){e.printstacktrace(); }}2.JS構成
3.共有ページJSパラメーターを取得し、トークンとチケットを取得してキャッシュに追加します
/** *メソッド名:getWXConfig </br> *詳細説明:Wechat構成情報を入手してください</br> *開発者:Gy * @Param Request * @returnこの例外の条件を説明する */@Overrideパブリックマップ<文字列、オブジェクト> getwxconfig <<string> string appid = wxconfigure.getAppid(); //必須、公式アカウントの一意の識別子は、文字列requesturl = request.getRequesturl()。toString();文字列AccessToken = null;文字列jsapiticket = null;文字列url = ""; String Timestamp = long.toString(system.currenttimemillis() / 1000); //必須、署名タイムスタンプ文字列noncestr = uuid.randomuid()。toString()を生成します。 //署名ランダム文字列を生成する必要があります//ここでは最初にキャッシュでクエリをします。また、アクセストークンの有効な時間をコールインターフェイスクエリcacheで設定する必要があります// redistemplate.opsforvalue()。getoperations()。削除(プレフィックス); // AccessToken =(String)Redistemplate.opsforValue()。get(prefix); token accesstokenfromredis = getAccesStokenfromredis(); AccessToken = AccessTokenFromredis.getAccesStoken(); if(AccessTokenfromredis.getAccestoken()!= null){jsapiticket =(string)redistemplate.opsforvalue()。get(prefixticket); if(jsapiticket == null){url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + accesstoken + "&type = jsapi"; jsonobject json = httprequest(url、 "get"、null); if(json!= null){jsapiticket = json.getString( "チケット"); redistemplate.opsforvalue()。set(prefixticket、jsapiticket); redistemplate.expire(prefixticket、integer.parseint(wxconfigure.getExpiretime())、timeunit.seconds); }}}文字列signature = ""; //ここのパラメーター名はすべて小文字である必要があり、string sign = "jsapi_ticket =" + jsapiticket + "&noncestr =" + noncestr + "×tamp =" + timestamp + "&url =" + requesturl; try {MessageDigest Crypt = MessagedGest.getInstance( "SHA-1"); crypt.reset(); crypt.update(sign.getBytes( "utf-8")); signature = bytetohex(crypt.digest()); } catch(nosuchalgorithmexception e){e.printstacktrace(); } catch(unsupportedencodingexception e){e.printstacktrace(); } ret.put( "appid"、appid); Ret.put( "Timestamp"、Timestamp); ret.put( "noncestr"、noncestr); Ret.put( "署名"、署名); Retを返します。 }/** *メソッド名:bytetohex </br> *詳細な説明:文字列暗号化補助方法</br> *開発者:Gy </br> * @param hash * @returnこの例外の条件の説明for(byte b:hash){formatter.format( "%02x"、b); } string result = formatter.toString(); formatter.close();返品結果; } / ** * redisからアクセスしてください、キーの文字列値を指定します。 string assesttoken =(string)redistemplate.opsforvalue()。get(wxconfigure.gettokenkey()); if(null!= assesttoken &&! ""。equals(assestoken)){token = new token(); token.SetAccesStoken(AssestToken);トークンを返します。 } else {token = commonwxutil.getToken(wxconfigure.getAppid()、wxconfigure.getSecret()); redistemplate.opsforvalue()。 redistemplate.expire(wxconfigure.gettokenkey()、integer.parseint(wxconfigure.getExpiretime())、timeunit.seconds);トークンを返します。 }}4.ページ関連JSの導入
<スクリプトタイプ= "text/javascript" src = "http://res.wx.qc.c.com/open/js/jweixin-1.0.0.js"> </script> <script> <script> <"text/javascript" src = "https://res.wx.q.com/open/js/jwweixin-1.0.p type = "text/javascript"> // wechat and call configuration // wechat bar signature = $( "#signature")。val(); var appid = $( "#appid")。val(); var appid = $( "#appid")。val(); var timestamp = $( "#タイムスタンプ")。val(); var noncestr = $( "#noncestr")。val(); var userid = $( "#userid")。val(); var productName = 1;アラート(署名); wx.config({debug:false、appid:appid、appid、タイムスタンプ:タイムスタンプ、非cestr:非cestr、署名:署名、jsapilist:['onmenushareatimeline'、 'onmenushareappmessage'、 'onmensushareq' '、' onmenareweibo '、 wx.ready(function(){var isok = true; wx.checkjsapi({jsapilist:['onmenusharetimeline']、fail:function(res){alert( "wechatバージョンは低すぎます、そして友人と共有される関数はサポートされていません! //「モーメントへの共有」ボタンのクリックステータスを取得し、共有コンテンツインターフェイスwx.onmenusharetimelineをカスタマイズします({part 6: 'パート6:WeChatパブリックプラットフォーム開発の実用的なJavaバージョンのWeChatパブリックアカウントメニューをカスタマイズする方法'、DESC: 'パート6:WeChatパブリックプラットフォーム開発のためのWechatパブリックバージョンのカスタマイズメニュー: 'http://4d536256.ngrok.io/login'、imgurl: 'http://busc.4ggogo.com/media/media/home-show-a.png $ .ajax({type: "get"、url: 'insertcollectshare'、data:{userid:userid、}、datatype: "json"、async:false、success:function(data){alert(200);}、error:function(data){var rurl = xhr.getressonspather( 'contentpatter'); }); //ユーザーが共有を確認した後に実行される。 wx.onmenushareappmessage({title: 'part 7:wechatパブリックプラットフォームの開発でWeChatユーザーの基本情報を取得する方法'、//共有タイトルDESC:「パート7:WeChatパブリックプラットフォームの開発でWeChatユーザーの基本情報を取得する方法 '、//共有説明リンク:' HTTP: 'HTTP: 'http://busc.4ggogo.com/media/media/img/home-show-a.png'、//共有アイコンタイプ: 'link'、//共有タイプ、音楽、ビデオ、またはリンク、デフォルトはリンクです}) WeChat Public Platform Developmentの実用的なJavaバージョン、//タイトルDESCの共有: 'パート6:WeChatパブリックプラットフォーム開発の実用的なJavaバージョンのWeChatパブリックアカウントメニューをカスタマイズする方法'、//共有説明リンク: 'http://4d536256.ngrok.io/login'、 'http://busc.4ggogo.com/media/media/img/home-show-a.png'、//アイコンの成功:function(){//ユーザーが共有を確認した後}、function(){) Interface WX.Onmenushareweibo({title: 'share to tencent weibo title'、// share title desc: 'share to tencent weibo description'、//共有説明リンク: 'http://4d536256.ngrok.io/login'、// share link imgurl: 'http://busc.4ggogo.com/media/media/img/home-show-a.png'、//アイコンの成功:function(){//ユーザーが共有を確認した後}、function(){){// callback conterted educted educted exect digs chare share() wx.onmenushareqzone({title: 'qqスペースタイトル1111111111111111111111111111111111111111111111111年年に共有:' qqスペースの共有22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222チ22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222チ22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222チ22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222チ'http://4d536256.ngrok.io/login'、imgurl: 'http://busc.4ggogo.com/media/media/img/home-show-a.pngユーザーが共有をキャンセルした後});注:転送されたパスは構成されたドメイン名パスです。それ以外の場合は呼び出せず、画像サイズは300Kを超えることはできません
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。