บทความนี้ได้แชร์อินเทอร์เฟซ JS WeChat เวอร์ชันโดยละเอียดสำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
คำแนะนำพื้นฐาน
คำแนะนำสำหรับการใช้งาน
1. แนะนำไฟล์ JS
แนะนำไฟล์ JS ต่อไปนี้บนหน้าเว็บที่ต้องการเรียกอินเตอร์เฟส JS (สนับสนุน https): http://res.wx.qq.com/open/js/jweixin-1.0.js
หมายเหตุ: สนับสนุนการโหลดโดยใช้วิธีการโหลดโมดูลมาตรฐาน AMD/CMD
2. ฉีดและกำหนดค่าอินเตอร์เฟสการกำหนดค่า
หน้าทั้งหมดที่จำเป็นต้องใช้ JSSDK ต้องฉีดข้อมูลการกำหนดค่าก่อนมิฉะนั้นจะไม่ถูกเรียก (URL เดียวกันจะต้องเรียกเพียงครั้งเดียวและเว็บแอพของ SPA ที่เปลี่ยน URL สามารถเรียกได้ทุกครั้งที่ URL เปลี่ยนไป)
wx.config ({debug: true, // เปิดโหมดดีบัก, ค่าการส่งคืนของ APIs ทั้งหมดที่เรียกว่าจะได้รับการแจ้งเตือนบนไคลเอนต์เพื่อดูพารามิเตอร์ที่ผ่านคุณสามารถเปิดได้ทางด้านพีซี noncestr: '', // จำเป็น, สตริงสุ่มที่สร้างขึ้นสำหรับลายเซ็นลายเซ็น: '', // จำเป็น, ลายเซ็นแสดงอยู่ในภาคผนวก 1 JSapilist: [] // จำเป็นรายการอินเตอร์เฟส JS ที่จะใช้และอินเทอร์เฟซ JS ทั้งหมดจะแสดงอยู่ในภาคผนวก 2});3. ตรวจสอบผ่านอินเทอร์เฟซพร้อม
wx.ready (function () {// หลังจากข้อมูลการกำหนดค่าได้รับการตรวจสอบแล้ววิธีการพร้อมจะถูกดำเนินการการเรียกใช้อินเตอร์เฟสทั้งหมดจะต้องได้รับหลังจากอินเทอร์เฟซการกำหนดค่าได้รับผลลัพธ์การกำหนดค่าคือการดำเนินการแบบอะซิงโครนัสของไคลเอนต์ดังนั้นหากคุณต้องการเรียกใช้อินเทอร์เฟซที่เกี่ยวข้อง ไม่จำเป็นต้องวางไว้ในฟังก์ชั่นพร้อม});4. การตรวจสอบความล้มเหลวอินเตอร์เฟสข้อผิดพลาด
wx.error (ฟังก์ชั่น (res) {// หากข้อมูลการกำหนดค่าไม่สามารถตรวจสอบได้ฟังก์ชั่นข้อผิดพลาดจะถูกดำเนินการหากลายเซ็นหมดอายุการตรวจสอบจะล้มเหลวสำหรับข้อความแสดงข้อผิดพลาดเฉพาะคุณสามารถเปิดโหมดการดีบักของการกำหนดค่าเพื่อดูหรือคุณสามารถดูได้ในพารามิเตอร์ Res ที่ส่งคืนคำแนะนำการโทรแบบอินเทอร์เฟซ
อินเทอร์เฟซทั้งหมดถูกเรียกผ่านวัตถุ WX (สามารถใช้กับวัตถุ Jweixin) พารามิเตอร์เป็นวัตถุ นอกเหนือจากพารามิเตอร์ที่แต่ละอินเตอร์เฟสต้องผ่านแล้วยังมีพารามิเตอร์ทั่วไปต่อไปนี้:
1. ความสำเร็จ: ฟังก์ชั่นการโทรกลับดำเนินการเมื่ออินเทอร์เฟซเรียกสำเร็จ
2. ล้มเหลว: ฟังก์ชั่นการโทรกลับดำเนินการเมื่อการเรียกใช้อินเตอร์เฟสล้มเหลว
3. เสร็จสมบูรณ์: ฟังก์ชั่นการโทรกลับดำเนินการเมื่อการโทรอินเตอร์เฟสเสร็จสมบูรณ์และจะดำเนินการโดยไม่คำนึงถึงความสำเร็จหรือความล้มเหลว
4. ยกเลิก: ฟังก์ชั่นการโทรกลับเมื่อผู้ใช้คลิกเพื่อยกเลิกจะมีเฉพาะ API บางตัวที่มีผู้ใช้ยกเลิกการดำเนินการ
5. ทริกเกอร์: วิธีการรับฟังทริกเกอร์เมื่อคลิกปุ่มในเมนู วิธีนี้รองรับอินเทอร์เฟซที่เกี่ยวข้องในเมนูเท่านั้น
ฟังก์ชั่นข้างต้นทั้งหมดมีพารามิเตอร์พิมพ์วัตถุนอกเหนือจากข้อมูลที่ส่งคืนโดยแต่ละอินเตอร์เฟสเองยังมีคุณสมบัติทั่วไป ERRMSG ซึ่งรูปแบบค่าเป็นดังนี้:
1. เมื่อการโทรสำเร็จ: "xxx: ตกลง" โดยที่ xxx คือชื่ออินเตอร์เฟสของการโทร
2. เมื่อผู้ใช้ยกเลิก: "XXX: CANCEL" โดยที่ XXX เป็นชื่ออินเตอร์เฟสที่เรียกว่า
3. เมื่อการโทรล้มเหลว: ค่าของมันคือข้อความแสดงข้อผิดพลาดเฉพาะ
อินเตอร์เฟสพื้นฐาน
ตรวจสอบว่าเวอร์ชันไคลเอ็นต์ปัจจุบันรองรับอินเตอร์เฟส JS ที่ระบุหรือไม่
wx.checkjsapi ({jsapilist: ['เลือก imeimage'] // รายการของอินเทอร์เฟซ JS ที่ต้องตรวจจับ {"checkResult": {"เลือก imeMage": true}, "errmsg": "checkjsapi: ตกลง"}});การแชร์อินเทอร์เฟซ
รับสถานะคลิกของปุ่ม "แชร์ไปยังช่วงเวลา" และปรับแต่งอินเทอร์เฟซเนื้อหาการแชร์
wx.onmenusharetimeline ({title: '', // แชร์ลิงก์ชื่อเรื่อง: '', // แชร์ลิงก์ imgurl: '', // แชร์ไอคอนความสำเร็จ: ฟังก์ชั่น () {// ฟังก์ชั่นการเรียกกลับที่ดำเนินการหลังจากผู้ใช้ยืนยันการแชร์}, ยกเลิก: ฟังก์ชัน () {// ฟังก์ชั่น callbackรับสถานะการคลิกของปุ่ม "Share to Friends" และปรับแต่งอินเทอร์เฟซเนื้อหาการแชร์
wx.onmenushareappmessage ({title: '', // แชร์ชื่อ desc: '', // แชร์ลิงก์คำอธิบาย: '', // แชร์ลิงก์ imgurl: '', // แชร์ประเภทไอคอน: '', // แชร์, เพลง, วิดีโอหรือลิงก์ // ฟังก์ชั่นการโทรกลับดำเนินการหลังจากผู้ใช้ยืนยันการแชร์}, ยกเลิก: ฟังก์ชัน () {// ฟังก์ชั่นการเรียกกลับที่ดำเนินการหลังจากผู้ใช้ยกเลิกการแชร์}});รับสถานะคลิกของปุ่ม "Share to Qq" และปรับแต่งอินเทอร์เฟซเนื้อหาการแชร์
wx.onmenushareqq ({title: '', // แชร์ชื่อ desc: '', // แชร์ลิงก์คำอธิบาย: '', // แชร์ลิงก์ imgurl: '' // แชร์ไอคอนความสำเร็จ: ฟังก์ชั่น () {// ฟังก์ชั่นการเรียกกลับหลังจากที่ผู้ใช้ยืนยันการแชร์}รับสถานะคลิกของปุ่ม "Share to Tencent Weibo" และปรับแต่งอินเทอร์เฟซเนื้อหาการแชร์
wx.onmenushareweibo ({title: '', // แชร์ชื่อ desc: '', // แชร์คำอธิบายลิงค์: '', // แชร์ลิงก์ imgurl: '' // แชร์ไอคอนความสำเร็จ: ฟังก์ชั่น () {// ฟังก์ชั่นการโทรกลับอินเทอร์เฟซรูปภาพ
ถ่ายภาพหรือเลือกรูปภาพจากอินเทอร์เฟซอัลบั้มโทรศัพท์มือถือ
wx.chooseimage ({ความสำเร็จ: ฟังก์ชั่น (res) {var localids = res.localids; // ส่งคืนรายการ ID ท้องถิ่นของรูปภาพที่เลือก LocalID สามารถแสดงรูปภาพเป็นแอตทริบิวต์ SRC ของแท็ก IMG}});ดูตัวอย่างอินเทอร์เฟซรูปภาพ
wx.previewImage ({current: '', // url ลิงค์รูปภาพที่แสดงในปัจจุบัน: [] // รายการลิงก์รูปภาพที่ต้องดูตัวอย่าง});อัปโหลดอินเทอร์เฟซภาพ
wx.uploadimage ({localid: '', // รหัสท้องถิ่นของภาพที่จะอัปโหลด, ที่ได้จากอินเตอร์เฟสตัวเลือก isshowprogressTips: 1 // ค่าเริ่มต้นคือ 1 และพรอมต์ความคืบหน้าจะแสดงความสำเร็จ: ฟังก์ชั่น (res) {var serverid = res.serverid;หมายเหตุ: คุณสามารถดาวน์โหลดรูปภาพที่อัปโหลดได้โดย WeChat โดยใช้อินเทอร์เฟซไฟล์มัลติมีเดีย ServerID ที่ได้รับที่นี่คือ media_id เอกสารอ้างอิง ../ 12/58bfcfabbd501c7cd77c19bd9cfa8354.html
ดาวน์โหลดอินเทอร์เฟซรูปภาพ
wx.downloadimage ({serverid: '', // id ฝั่งเซิร์ฟเวอร์ของภาพที่จะดาวน์โหลด, ที่ได้รับจากอินเตอร์เฟส uploadimage isshowprogressTips: 1 // ค่าเริ่มต้นคือ 1 และพรอมต์ความคืบหน้าจะแสดงความสำเร็จ: ฟังก์ชั่น (res) {var localid = res.localid;ส่วนต่อประสานเสียง
เริ่มบันทึกอินเทอร์เฟซ
wx.startrecord ();
หยุดการบันทึกอินเทอร์เฟซ
wx.stoprecord ({ความสำเร็จ: ฟังก์ชั่น (res) {var localid = res.localid;}});อินเทอร์เฟซหยุดอัตโนมัติสำหรับการตรวจสอบการบันทึก
wx.onvoicerecordend ({// การโทรกลับที่สมบูรณ์จะถูกดำเนินการเมื่อเวลาการบันทึกเกินหนึ่งนาทีและไม่หยุดเสร็จสมบูรณ์: ฟังก์ชั่น (res) {var localid = res.localid;}});เล่นอินเตอร์เฟสเสียง
wx.playvoice ({localid: '' // รหัสท้องถิ่นของเสียงที่จะเล่นโดยอินเตอร์เฟส StopRecord});หยุดการเล่นชั่วคราว
wx.pausevoice ({localid: '' // รหัสท้องถิ่นของเสียงที่ต้องหยุดชั่วคราวโดยอินเตอร์เฟส StopRecord});หยุดการเล่นอินเตอร์เฟส
wx.stopvoice ({localid: '' // รหัสท้องถิ่นของเสียงที่ต้องหยุดโดยอินเตอร์เฟส StopRecord});การตรวจสอบอินเทอร์เฟซการเล่นด้วยเสียง
wx.onvoiceplayend ({serverid: '', // id ฝั่งเซิร์ฟเวอร์ของเสียงที่ต้องดาวน์โหลด, ได้รับความสำเร็จ: ฟังก์ชั่น (res) {var localid = res.localid; // ส่งคืนรหัสท้องถิ่นของเสียง}});อัปโหลดอินเทอร์เฟซเสียง
wx.uploadvoice ({localid: '', // id ท้องถิ่นของเสียงที่ต้องอัปโหลด, ที่ได้รับจากอินเตอร์เฟส stoprecord isshowprogressTips: 1 // ค่าเริ่มต้นคือ 1 แสดงความสำเร็จของความคืบหน้า: ฟังก์ชั่น (res) {var serverหมายเหตุ: คุณสามารถดาวน์โหลดอินเทอร์เฟซไฟล์มัลติมีเดียของ WeChat ได้ ServerID ที่ได้รับที่นี่คือ media_id เอกสารอ้างอิง ../ 12/58bfcfabbd501c7cd77c19bd9cfa8354.html
ดาวน์โหลดอินเทอร์เฟซเสียง
wx.downloadvoice ({serverid: '', // id ฝั่งเซิร์ฟเวอร์ของเสียงที่ต้องดาวน์โหลด, ที่ได้รับจากอินเตอร์เฟส uploadvoice isshowprogresstips: 1 // ค่าเริ่มต้นคือ 1 และพรอมต์ความคืบหน้าจะแสดงความสำเร็จ: ฟังก์ชั่น (res)อินเทอร์เฟซอัจฉริยะ
ระบุเสียงและกลับไปที่อินเทอร์เฟซผลลัพธ์การรับรู้
wx.translateVoice ({localid: '', // รหัสท้องถิ่นของเสียงที่ต้องได้รับการยอมรับ, iSshowprogressTips: 1, // ค่าเริ่มต้นคือ 1 แสดงความสำเร็จของความคืบหน้าความสำเร็จ: ฟังก์ชั่น (res) {แจ้งเตือน (res.translateresult); // ผลของการจดจำเสียงข้อมูลอุปกรณ์
รับอินเทอร์เฟซสถานะเครือข่าย
wx.getNetWorkType ({ความสำเร็จ: ฟังก์ชั่น (res) {var networkType = res.networktype; // ส่งคืนประเภทเครือข่าย 2G, 3G, 4G, wifi}});ที่ตั้งทางภูมิศาสตร์
ใช้แผนที่ WeChat ในตัวเพื่อดูอินเทอร์เฟซตำแหน่ง
WX.OpenLocation ({Latitude: 0, // Latitude, หมายเลขจุดลอยตัว, ช่วงคือ 90 ~ -90 ลองจิจูด: 0, // ลองจิจูด, หมายเลขจุดลอยตัว, ช่วงคือ 180 ~ -180 ชื่อ: '', // ที่อยู่ชื่อที่อยู่: แสดงที่ด้านล่างของอินเทอร์เฟซตำแหน่งการดูคุณสามารถคลิกเพื่อกระโดด});รับอินเทอร์เฟซ geolocation
wx.getLocation ({timestamp: 0, // ตำแหน่งการประทับเวลาลายเซ็นของตำแหน่ง, ให้ noncestricy: '', // position signature signature string ให้เฉพาะเมื่อเข้ากันได้กับเวอร์ชัน 6.0.2, addrsign: '', // ตำแหน่งลายเซ็นที่ให้มา 90 ~ -90 var latitude = res.latitude;การทำงานของอินเทอร์เฟซ
ซ่อนส่วนต่อประสานเมนู wx.hideoptionmenu () ที่มุมขวาบน
แสดงส่วนต่อประสานเมนู wx.showoptionmenu () ที่มุมขวาบน;
ปิดอินเตอร์เฟสหน้าต่างเว็บปัจจุบัน wx.closewindow ();
อินเทอร์เฟซปุ่มฟังก์ชั่นซ่อนฟังก์ชั่น
wx.hidemenuitems ({menulist: [] // เพื่อซ่อนรายการเมนูดูภาคผนวก 3});อินเทอร์เฟซปุ่มฟังก์ชั่นการแสดงผลแบทช์
wx.showmenuitems ({menulist: [] // รายการเมนูทั้งหมดที่จะแสดงจะแสดงในภาคผนวก 3});ซ่อนอินเทอร์เฟซปุ่มที่ไม่ใช่ฐานทั้งหมด wx.hideallnonbaseMenuitem ();
แสดงส่วนต่อประสานปุ่มฟังก์ชั่นทั้งหมด wx.showallnonbasemenuitem ();
สแกน WeChat
คลิกที่อินเทอร์เฟซสแกน WeChat
wx.scanqrcode ({desc: 'scanqrcode desc', needresult: 0, // ค่าเริ่มต้นคือ 0 ผลการสแกนถูกประมวลผลโดย weChat และ 1 ส่งคืนผลลัพธ์การสแกนโดยตรง {code -cods (qrcode "," barcode " Res.resultstr;ที่อยู่เก็บเกี่ยว
แก้ไขอินเทอร์เฟซที่อยู่การจัดส่ง
wx.editaddress (timestamp: 0, // timestamp ตำแหน่งลายเซ็นตำแหน่งเฉพาะในกรณีที่มันต้องเข้ากันได้กับเวอร์ชัน 6.0.2, noncestricy: '', // location signature signature string เฉพาะถ้ามันต้องเข้ากันได้กับเวอร์ชัน 6.0.2, addrsign: '' ชื่อผู้ใช้ = res.username; ที่อยู่ var ที่อยู่ = res.address;
รับอินเทอร์เฟซที่อยู่จัดส่งที่ใกล้ที่สุด
wx.getLatestAddress ({timestamp: 0, // timestamp ลายเซ็นตำแหน่งเฉพาะในกรณีที่มันต้องเข้ากันได้กับเวอร์ชัน 6.0.2, noncestr: '', // สตริงสุ่มลายเซ็นของสถานที่เฉพาะในกรณีที่ต้องใช้งานร่วมกับรุ่น 6.0.2 (Res) {var username = res.username; ที่อยู่การจัดส่งมาตรฐานที่อยู่ระดับที่สามที่อยู่ var = res.address;ร้านค้า WeChat
ข้ามไปที่อินเทอร์เฟซหน้าผลิตภัณฑ์ WeChat
WX.OpenProductSpecificView ({productId: '', // ผลิตภัณฑ์ idViewType: '' // 0. ค่าเริ่มต้น, รายละเอียดผลิตภัณฑ์ทั่วไปหน้า 1. สแกนรายละเอียดผลิตภัณฑ์หน้า 2. รายละเอียดผลิตภัณฑ์ที่เก็บ});คูปองการ์ด WeChat
ปล่อยรายการคูปองการ์ดสำหรับร้านค้าและรับรายการการเลือกผู้ใช้
wx.choosecard ({shopid: '', // store id cardType: '', // ประเภทบัตร cardid: '', // id card id timestamp: 0, // card id timestamp: noncestr: '', // บัตรกำนัลการ์ด // ข้อมูลรายการบัตรกำนัลบัตรที่ผู้ใช้เลือก}});เพิ่มอินเทอร์เฟซคูปองการ์ดในแบทช์
wx.addcard ({cardlist: [{cardid: '', cardext: ''}], // รายการคูปองการ์ดที่ต้องเพิ่มความสำเร็จ: ฟังก์ชั่น (res) {var cardlist = res.cardlist; // ข้อมูลรายการคูปองการ์ด}});ตรวจสอบอินเทอร์เฟซคูปองการ์ดในแพ็คเกจการ์ด WeChat
wx.opencard ({cardlist: [{cardid: '', รหัส: ''}] // รายการคูปองการ์ดที่จะเปิด});การชำระเงิน wechat
เริ่มคำขอการชำระเงิน WeChat
WX.CHOOSEWXPAY ({Timestamp: 0, // การชำระเงินลายเซ็นการเสียสละ noncestr: '', // การชำระเงิน Signature Signature Signature String แพ็คเกจ: '', // รายละเอียดการสั่งซื้อเป็นสตริงขยายดูภาคผนวก 5, Paysign: '', // ลายเซ็นการชำระเงินสำหรับรายละเอียดดูภาคผนวก 5});ภาคผนวก 1 - อัลกอริทึมลายเซ็นการอนุญาต JSSDK
jsapi_ticket
ก่อนที่จะสร้างลายเซ็นคุณต้องเข้าใจ jsapi_ticket ก่อน JSAPI_TICKET เป็นตั๋วชั่วคราวที่ใช้โดยบัญชีอย่างเป็นทางการเพื่อโทรหาอินเตอร์เฟส WeChat JS ภายใต้สถานการณ์ปกติระยะเวลาความถูกต้องของ JSAPI_TICKET คือ 7200 วินาทีซึ่งได้มาจาก ACCESS_TOKEN เนื่องจากจำนวนการโทร API เพื่อให้ได้ JSAPI_Ticket มี จำกัด มากการรีเฟรชของ JSAPI_Ticket จะทำให้การโทร API มี จำกัด และส่งผลกระทบต่อธุรกิจของตนเอง นักพัฒนาต้องแคช JSAPI_TICKET ทั่วโลกในบริการของพวกเขา
1. อ้างอิงเอกสารต่อไปนี้เพื่อรับ access_token (ใช้ได้กับ 7200 วินาทีนักพัฒนาต้องแคช Access_Token ทั่วโลกในบริการของพวกเขา): ../12/4B08382E91217687730A2DFC71E9218CHTML
2. ใช้ access_token ที่ได้รับในขั้นตอนแรกเพื่อขอ jsapi_ticket (ถูกต้องเป็นเวลา 7200 วินาทีนักพัฒนาจะต้องแคช jsapi_ticket ทั่วโลกในการบริการของเขา): https://api.weixin.qq.com/cgi-bin/ticket/ticket
ส่งคืน JSON ต่อไปนี้สำเร็จ:
{"errcode": 0, "errmsg": "ตกลง", "ตั๋ว": "bxldikrxvbtpdhsm05e5u5suoxnkd8-41zo3mhkoyn5ofkwitdggnr2fwj0m9e8nyzwkvzvzvdvdvdvdvdvdvdvdvdvdvหลังจากได้รับ JSAPI_Ticket คุณสามารถสร้างลายเซ็นสำหรับการตรวจสอบการอนุญาต JSSDK
อัลกอริทึมลายเซ็น
กฎการสร้างลายเซ็นมีดังนี้: ฟิลด์ที่เข้าร่วมในลายเซ็นประกอบด้วย noncestr (สตริงสุ่ม), JSAPI_Ticket ที่ถูกต้อง, การประทับเวลา (การประทับเวลา), URL (URL ของเว็บเพจปัจจุบันไม่รวม # และส่วนที่ตามมา) หลังจากการเรียงลำดับพารามิเตอร์ทั้งหมดที่จะลงนามจากขนาดเล็กถึงขนาดใหญ่ (คำสั่งพจนานุกรม) ตามรหัส ASCII ของชื่อฟิลด์รูปแบบของคู่คีย์ค่า URL (นั่นคือ Key1 = value1 & key2 = value2 …) ใช้เพื่อแยกเป็นสตริงสตริง 1 ควรสังเกตที่นี่ว่าชื่อพารามิเตอร์ทั้งหมดเป็นอักขระตัวพิมพ์เล็ก String1 ถูกเข้ารหัสและชื่อฟิลด์และค่าฟิลด์เป็นทั้งค่าดั้งเดิมและไม่มีการหลบหนี URL
นั่นคือ signature = sha1 (String1) ตัวอย่าง:
• noncestr = wm3wzytpz0wzccnw
• JSAPI_TICKET = SM4AOVDWFPE4DXKXGESS8VMCPGGVI4C3VM0P37WVUCFVKVAY_90U5H9NBSLYY3-SL-HHTDFL2FZFY1AOCHKKKP7QGGGGGGGGGGGGGG
•การประทับเวลา = 1414587457
• url = http: //mp.weixin.qq.com
ขั้นตอนที่ 1 หลังจากการเรียงลำดับพารามิเตอร์ทั้งหมดที่จะลงนามจากขนาดเล็กไปจนถึงขนาดใหญ่ (คำสั่งพจนานุกรม) ตามรหัส ASCII ของชื่อฟิลด์ให้แยกออกเป็นสตริงสตริง 1 โดยใช้รูปแบบของคู่คีย์ค่า URL (นั่นคือ key1 = value1 & key2 = value2 …):
JSAPI_TICKET = SM4AOVDWFPE4DXKXGES8VMCPGGVI4C3VM0P37WVUCFVKVAY_90U5H9NBSLYY3-SL-HHTDFL 2fzfy1aochkkp7qg & noncestr = wm3wzytpz0wzccnw × tamp = 1414587457 & url = http: //mp.weixin.qq.com
ขั้นตอนที่ 2. Sign String1 กับ SHA1 และรับลายเซ็น:
F4D90DAF4B3BCA3078AB155816175BA34C443A7B
สิ่งที่ควรทราบ
1. noncestr และ timestamp ที่ใช้สำหรับลายเซ็นจะต้องเหมือนกับ noncestr และ timestamp ใน wx.config
2. URL ที่ใช้สำหรับลายเซ็นจะต้องเป็น URL ที่สมบูรณ์ของหน้าเว็บที่เรียกอินเตอร์เฟส JS
3. ด้วยเหตุผลด้านความปลอดภัยนักพัฒนาจะต้องใช้ตรรกะลายเซ็นทางฝั่งเซิร์ฟเวอร์
ภาคผนวก 2 - รายการอินเตอร์เฟส JS ทั้งหมด
• OnMenusharetimeline
• OnMenushareAppMessage
• OnMenushareqq
• OnMenushareweibo
• StarTrecord
• stoprecord
• Onvoicerecordend
• playvoice
• pausevoice
•หยุดพัก
• OnVoicePlayend
• UploadVoice
• downloadvoice
•เลือก Image
• PreviewImage
• uploadimage
• downloadImage
• TranslateVoice
• getNetworktype
• OpenLocation
• getLocation
• hideoptionmenu
• ShowoptionMenu
• Hidemenuitems
•นักแสดง
• HideAllnonBaseMenuitem
• showallnonbasemenuitem
• CloseWindow
• scanqrcode
• choosewxpay
• getLatestaddress
• editaddress
• OpenProductSpecificView
• addcard
• Choosecard
• OpenCard
ภาคผนวก 3 - รายการปุ่มทั้งหมด
หมวดหมู่พื้นฐาน
•รายงาน: "Menuitem: Exposearticle"
•ปรับแบบอักษร: "menuitem: setfont"
•โหมดกลางวัน: "Menuitem: Daymode"
•โหมดกลางคืน: "Menuitem: Nightmode"
•รีเฟรช: "Menuitem: Refresh"
•ดูบัญชีอย่างเป็นทางการ (เพิ่ม): "menuitem: profile"
•ดูบัญชีอย่างเป็นทางการ (ไม่ได้เพิ่ม): "Menuitem: AddContact"
หมวดหมู่การสื่อสาร
•ส่งให้เพื่อน: "Menuitem: แบ่งปัน: AppMessage"
•แบ่งปันกับช่วงเวลา: "Menuitem: แบ่งปัน: Timeline"
•แบ่งปันไปยัง QQ: "Menuitem: Share: QQ"
•แบ่งปันกับ Weibo: "Menuitem: แบ่งปัน: Weiboapp"
•คอลเลกชัน: "Menuitem: โปรด"
•แบ่งปันกับ FB: "Menuitem: Share: Facebook"
ชั้นเรียนป้องกัน
•การดีบัก: "Menuitem: JSDebug"
•แก้ไขแท็ก: "menuitem: edittag"
•ลบ: "menuitem: ลบ"
•การคัดลอกลิงค์: "Menuitem: Copyurl"
•หน้าเว็บดั้งเดิม: "Menuitem: Originpage"
•โหมดการอ่าน: "Menuitem: ReadMode"
•เปิดในเบราว์เซอร์ QQ: "Menuitem: OpenWithQQBrowser"
•เปิดใน Safari: "Menuitem: OpenWithSafari"
•อีเมล: "Menuitem: แบ่งปัน: อีเมล"
•บัญชีสาธารณะพิเศษบางบัญชี: "Menuitem: Share: Brand"
ภาคผนวก 4 - อัลกอริทึมการสร้างลายเซ็นตำแหน่งและที่อยู่
กฎการสร้างของ addrsign นั้นเหมือนกับการตรวจสอบการอนุญาต JSSDK (ดูภาคผนวก 1) แต่พารามิเตอร์ลายเซ็นที่เข้าร่วมจะแตกต่างกัน พารามิเตอร์ลายเซ็นที่เข้าร่วมใน addrsign คือ: appid, url (URL เว็บปัจจุบัน), การประทับเวลา, noncest, accessoken (ข้อมูลรับรองการอนุญาตผู้ใช้, โปรดดูโปรโตคอล OAuth2.0 เพื่อรับ)
ภาคผนวก 5 - ฟิลด์ส่วนขยายการชำระเงินและอัลกอริทึมการสร้างลายเซ็น
รายละเอียดการสั่งซื้อ (แพ็คเกจ) คำจำกัดความสตริงส่วนขยาย
เมื่อผู้ค้าเปลี่ยนเส้นทาง JS API ผู้ค้าจะต้องกำหนดรายละเอียดการสั่งซื้อในเวลานี้และรวมรายละเอียดการสั่งซื้อลงในแพ็คเกจในวิธีใดวิธีหนึ่ง หลังจากเรียก JS API แล้ว WeChat จะสร้างคำสั่งซื้อล่วงหน้าผ่านเนื้อหาของแพ็คเกจ ต่อไปนี้จะกำหนดรายการฟิลด์ที่ต้องการและวิธีการลายเซ็นสำหรับแพ็คเกจ อินเทอร์เฟซต้องมีการบันทึก: พารามิเตอร์ที่เข้ามาทั้งหมดเป็นประเภทสตริง!
บทความนี้ได้รวบรวมไว้ใน "สรุปทักษะการพัฒนา JavaScript WeChat" และทุกคนยินดีที่จะเรียนรู้และอ่าน
ฉันอยากจะแนะนำการสอนเกี่ยวกับโปรแกรม WeChat Mini ที่มีความกังวลอย่างมาก: "การสอนการพัฒนาโปรแกรม WeChat Mini" ได้รับการรวบรวมอย่างระมัดระวังโดยบรรณาธิการของทุกคนฉันหวังว่าคุณจะชอบ
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น