Access_Token เป็นตั๋วที่ไม่ซ้ำกันทั่วโลกของบัญชีอย่างเป็นทางการ access_token เป็นสิ่งจำเป็นเมื่อโทรแต่ละอินเทอร์เฟซของบัญชีอย่างเป็นทางการ นักพัฒนาจำเป็นต้องประหยัดอย่างถูกต้อง การจัดเก็บ Access_Token จะต้องรักษาพื้นที่อักขระอย่างน้อย 512 ระยะเวลาที่ถูกต้องของ ACCESS_TOKEN ปัจจุบัน 2 ชั่วโมงและจำเป็นต้องได้รับการรีเฟรชเป็นประจำ การได้มาซ้ำ ๆ จะทำให้ Access_token คุณได้รับครั้งสุดท้ายที่จะไม่ถูกต้อง
คำอธิบายของวิธีการใช้งานและการสร้างของ ACCEST_TOKEN ที่จำเป็นสำหรับการโทร API ของแพลตฟอร์มสาธารณะ:
1. เพื่อให้แอพพลิเคชั่นเป็นความลับบุคคลที่สามจำเป็นต้องใช้ access_token เพื่อรับและรีเฟรชเซิร์ฟเวอร์ควบคุมส่วนกลาง Access_Token ที่ใช้โดยเซิร์ฟเวอร์ตรรกะทางธุรกิจอื่น ๆ ทั้งหมดมาจากเซิร์ฟเวอร์ควบคุมส่วนกลางและไม่ควรรีเฟรชแยกกันมิฉะนั้นจะทำให้ Access_Token ครอบคลุมและส่งผลกระทบต่อธุรกิจ
2. ระยะเวลาความถูกต้องในปัจจุบันของ ACCEST_TOKEN ถูกถ่ายทอดผ่าน Expire_in ที่ส่งคืนและปัจจุบันเป็นค่าภายใน 7200 วินาที เซิร์ฟเวอร์ควบคุมส่วนกลางจำเป็นต้องรีเฟรช Access_Token ใหม่ล่วงหน้าตามเวลาที่ถูกต้องนี้ ในระหว่างกระบวนการรีเฟรชเซิร์ฟเวอร์ควบคุมส่วนกลางยังคงส่งออก access_token เก่าไปด้านนอก ในเวลานี้พื้นหลังแพลตฟอร์มสาธารณะจะทำให้มั่นใจได้ว่าทั้งใหม่และใหม่ access_tokens มีให้บริการในช่วงเวลาสั้น ๆ ของการรีเฟรชซึ่งทำให้มั่นใจได้ว่าการเปลี่ยนแปลงของบริการของบุคคลที่สามอย่างราบรื่น
3. เวลาที่ถูกต้องของ Access_token อาจถูกปรับในอนาคต ดังนั้นเซิร์ฟเวอร์ควบคุมส่วนกลางไม่เพียง แต่จะต้องได้รับการรีเฟรชภายในเป็นประจำ แต่ยังต้องจัดให้มีอินเทอร์เฟซสำหรับการรีเฟรชแบบพาสซีฟของ Access_Token ซึ่งช่วยให้เซิร์ฟเวอร์ธุรกิจสามารถเรียกกระบวนการรีเฟรชของ ACCEST_TOKEN เมื่อการโทร API รู้ว่า ACCECT_TOKEN หมดเวลาแล้ว
หากบุคคลที่สามไม่ได้ใช้เซิร์ฟเวอร์ควบคุมส่วนกลาง แต่เลือกจุดตรรกะทางธุรกิจแต่ละจุดเพื่อรีเฟรช Access_Token ดังนั้นความขัดแย้งอาจเกิดขึ้นส่งผลให้เกิดบริการที่ไม่แน่นอน
บัญชีอย่างเป็นทางการสามารถใช้ AppID และ AppSecret เพื่อเรียกอินเทอร์เฟซนี้เพื่อรับ Access_Token AppID และ AppSecret สามารถรับได้ในเว็บไซต์ทางการแพลตฟอร์มสาธารณะ WeChat - หน้าศูนย์นักพัฒนา (จำเป็นต้องเป็นนักพัฒนาและบัญชีไม่มีสถานะผิดปกติ) โปรดทราบ ว่าเมื่อเรียกอินเทอร์เฟซ WeChat ทั้งหมดคุณต้องใช้โปรโตคอล HTTPS
คำอธิบายคำขอการโทรแบบอินเตอร์เฟส
วิธีการร้องขอ http: รับ
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appid&secret=appsecret
คำอธิบายพารามิเตอร์
กลับไปที่คำอธิบาย
ภายใต้สถานการณ์ปกติ WeChat จะส่งคืนแพ็กเก็ต JSON ต่อไปนี้ไปยังบัญชีอย่างเป็นทางการ:
{"access_token": "access_token", "expires_in": 7200}
เมื่อเกิดข้อผิดพลาด WeChat จะส่งคืนรหัสข้อผิดพลาดและข้อมูลอื่น ๆ ตัวอย่างของแพ็คเก็ต JSON มีดังนี้ (ตัวอย่างนี้เป็นข้อผิดพลาด appid ที่ไม่ถูกต้อง):
{"errcode": 40013, "errmsg": "appid ไม่ถูกต้อง"}
2. การใช้งานรหัส
appid, appsecret สามารถตรวจสอบในบัญชีสาธารณะ
แพ็คเกจ com.zhrd.bussinss.platform.scheduled; นำเข้า java.io.inputstream นำเข้า java.net.httpurlconnection; นำเข้า java.net.url; นำเข้า org.springframework.beans.factory.annotation.autowired; org.springframework.scheduling.annotation.scheduled; นำเข้า org.springframework.stereotype.component; นำเข้า com.zhrd.bussinss.platform.constants.weixinid; net.sf.json.jsonobject; @component @lazy (เท็จ) คลาสสาธารณะ getweixinaccesstokenscheduled { / ** * รับ access_token * * @title: getAccess_token * @description: get Access_token * @param @ @scheduled (recideratestring = "$ {weixin.token.fixedrate.in.milliseconds}", initialdelaystring = "$ {weixin.token.initialdelay.in.milliseconds}") System.out.println ("===================== 获取โทเค็น开始 ================================"); string url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + weixinid.appid + "& secret =" + weixinid.appsecret; สตริง accessToken = null; สตริง expiresin = null; ลอง {url urlget = url ใหม่ (url); httpurlConnection http = (httpurlconnection) urlget.openconnection (); http.setrequestmethod ("รับ"); // คุณต้องขอ http.setRequestProperty ("เนื้อหาประเภท", "แอปพลิเคชัน/x-www-form-urlencoded"); http.setDoOutput (จริง); http.setDoInput (จริง); http.connect (); inputStream คือ = http.getInputStream (); ขนาด int = is.available (); ไบต์ [] jsonbytes = ไบต์ใหม่ [ขนาด]; IS.READ (JSONBYTES); ข้อความสตริง = สตริงใหม่ (jsonbytes, "UTF-8"); jsonObject demojson = jsonobject.fromobject (ข้อความ); accessToken = demojson.getString ("access_token"); expiresin = demojson.getString ("expires_in"); System.out.println ("AccessToken ===="+AccessToken); System.out.println ("ExpiresIn ==="+ExpiresIn); AccessTokenServiceImpl.addtoken (AccessToken, ExpiresIn); System.out.println ("==================================================================================================================== System.out.printstacktrace ();} // returntoken; ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น