شاركت هذه المقالة رمزًا محددًا لمسح حساب WeChat العام للرجوع إليه. المحتوى المحدد كما يلي
خطوة
وفقًا لوصف مستند WeChat JS-JDK ، هناك بشكل أساسي الخطوات التالية لتنفيذ المسح الضوئي:
ربط اسم المجال
املأ اسم المجال في اسم مجال أمان واجهة JS ، احرص على عدم إحضار HTTP ، كما هو موضح في الشكل:
تقديم ملفات JS
<script src = "http://res.wx.qq.com/open/js/jweixin-1.0.0.js"> </script>
تحقق من التكوين عبر واجهة التكوين
$ .ajax ({url: "$ {pagecontext.request.contextpath}/wechat/jsapisign" ، النوع: "post" ، البيانات: {url: location.href.split ('#') (بيانات) {wx.config ({debug: false ، appid: data.appid ، // مطلوب ، قم بإنشاء Timestamp Noncester: data.noncestr ، // مطلوب ، وإنشاء توقيع سلسلة عشوائي: Data.Signature ، // مطلوب ، التوقيع ، انظر التذييل 1 jsapilist: جميع قوائم واجهة JS ؛التحقق من تأشيرة WeChat JSAPI
الخريطة العامة <string ، string> jsapisign (url string) {map <string ، string> ret = new hashmap <string ، string> (16) ؛ String nonce_str = checkutil.create_nonce_str () ؛ String timestamp = checkutil.create_timestamp () ؛ String1 ؛ توقيع السلسلة = "" ؛ String jSAPI_Ticket = WeChatAccessTokenService.getjSapiticket () ؛ // لاحظ أن أسماء المعلمات هنا يجب أن تكون جميعها صغيرة ويجب طلب string1 = "jsapi_ticket =" + jsapi_ticket + "& noncestr =" + nonce_str + "× tamp =" + timestamp + "& url =" + url ؛ logger.info ("jsapisign ===" + string1) ؛ حاول {messagedigest crypt = messagedigest.getInstance ("sha-1") ؛ crypt.Reset () ؛ crypt.update (string1.getBytes ("utf-8")) ؛ signature = checkutil.bytetoHex (crypt.digest ()) ؛ } catch (nosuchalgorithMexception | UnsupportedEncodingException e) {E.PrintStackTrace () ؛ } ret.put ("appid" ، appid) ؛ ret.put ("url" ، url) ؛ ret.put ("jsapi_ticket" ، jsapi_ticket) ؛ ret.put ("noncester" ، nonce_str) ؛ ret.put ("Timestamp" ، timestamp) ؛ ret.put ("التوقيع" ، التوقيع) ؛ logger.info ("jsapisign === url =" + url + "== jsapi_ticket" + jsapi_ticket + "== nonce_str" + nonce_str + "== timestamp" + timesstamp + "== signature" + signature) ؛ العودة } السلسلة العامة getjsapiticket () {augewechataccesstoken wechataccesstokenMapper.SelectByPrimarykey (jsapiticketid) ؛ logger.info ("getjsapiticket ===" + weChatAccessToken.getAccessToken ()) ؛ if (setrings.isnullorempty (wechataccesstoken.getAccessToken ()) || wechataccesstoken.getExpiresIn () - 100 * 1000 <system.currenttimeMillis ()) {// فارغة أو انتهت صلاحية إعادة refreshjsapiticket () ؛ } آخر {return wechataccesstoken.getAccessToken () ؛ }}رمز طبقة وحدة التحكم
requestmapping (value = "/jsapisign" ، method = {requestMethod.get ، requestMethod.post} ، تنتج = mediaType_charset_json_utf8) responsebody public jsapisign (url url) {// add wechat js scip information map <string> return json.tojsonstring (signmap) ؛ }صفحة مكتب الاستقبال JSP رمز كامل
<٪@ page contentType = "text/html ؛ charset = utf-8" language = "java" ٪> <٪ string path = request.getContextPath () ؛ String BasePath = request.getScheme () + ": //" + request.getServerName () + ":" + request.getServerPort () + path + "/" ؛ ٪> <! charset = "utf-8"> <meta http-equiv = "x-ua- conflible" content = "ie = edge"> <meta name = "viewport" content = "width = 320.1 ، scale scale = 1 ، minimit-scale = 1 ، maximum-scale = 1 ، user-scalable = no"> head> nofollow "> <title> قم بفحص الكود لإرجاع الكتاب </title> <link rel =" stylesheet "href =" http://203.195.235.76/jssdk/css/style.css "/> <script src = "http://res.wx.qq.com/open/js/jweixin-1.1.0.js"> </script> <script src = "http://libs.baidu.com/jquery/2.0.0.0.0/jquery.js"> </script> <linkeet " href = "../../../ الموارد/css/bookdetail.css" rel = "خارجي nofollow"> </head> <body> <div> <img src = "../../ ... src = "../../../ الموارد/الصور/الاقتراض/scanreturn.png" id = "scanqrcode1"> </viv> </viv> <script type = "text/javaScript"> $ .ajax ({url: "$ {pagecontext location.href.split ('#') [0]} ، contentType: 'application/x-www-form-urlencoded ؛ charset = utf-8' ، async: true ، النجاح: الدالة (البيانات) {wx.config ({debug: false ، appid: // مطلوب ، المطلوب ، المعرف الفريد من هذا الحدث الرسمي: that thematam. الطابع الزمني لتوقيع Noncestr: data.noncester ، // ، قم بإنشاء سلسلة عشوائية من توقيع التوقيع: Data.Signature ، // مطلوب ، انظر الملحق 1 jsapilist: ["scanqrcode"] wx.ready (function () {// 9.1.2 مسح رمز QR وإرجاع المستند المستند. FerequerySelector ('#scanqrcode1'). onClick = function () {wx.scanqrcode ({needresult: 1 ، desc: 'scanqrcode desc' ، النجاح: الوظيفة (res) // باركود المنتج ، خذ IF (url.indexof ("،")> = 0) {var temparray = url.split ('،') ؛ "https://open.weixin.qq.com/connect/oauth2/authorize؟appid=wx966687444efc2b2de&redirect_uri=http://cx.ngrok.xioqiu. "& strimepe = code & scope = snsapi_base = bindface#wechat_redirect" ؛ // تهيئة حالة واجهة JSAPI wx.error (الدالة (res) {Alert ("الحالة التي تم إرجاعها عن طريق استدعاء WeChat jsapi:" + res.errmsg) ؛}) ؛ </script> </body> </html>ملاحظة: أخطاء التحقق من التوقيع عرضة للحدوث أثناء التطوير. يمكننا الحكم من خلال اتساق عناوين URL الأمامية والخلفية. ثانياً ، لاحظ أنه في بعض الأحيان يكون الخطأ هو أن AccessToken لا يتم تحديثه ويجب تحديثه مرة أخرى.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.