Эта статья поделилась подробной версией интерфейса JS WeChat для вашей ссылки. Конкретный контент заключается в следующем
Основные инструкции
Инструкции для использования
1. Принципировать файлы JS
Представьте следующий файл JS на странице, который должен вызвать интерфейс JS (поддержка https): http://res.wx.qq.com/open/js/jweixin-1.0.0.js
Примечание. Поддержка загрузки с использованием метода загрузки стандартного модуля AMD/CMD
2. Включите и настройте интерфейс конфигурации
Все страницы, которые необходимо использовать JSSDK, должны сначала вводить информацию о конфигурации, в противном случае они не будут вызваны (один и тот же URL должен вызывать только один раз, и веб -приложение SPA, которое изменяет URL -адрес, можно вызывать каждый раз, когда меняется URL).
wx.config ({Debug: true, // Включить режим отладки, возвращаемые значения всех API, вызванных клиентом, будут предупреждены. Чтобы просмотреть пропущенные параметры, вы можете открыть их на стороне ПК, информация о параметрах будет напечатана через журнал и будет напечатан только на стороне ПК. noncestr: '', // требуется случайная строка, сгенерированная для подписи подписи: '', // требуется, подпись показана в Приложении 1 Jsapilist: [] // Требуется, в списке интерфейсов JS, которые будут использоваться, и все интерфейсы JS перечислены в Приложении 2});3. Проверьте через готовую интерфейс
wx.ready (function () {// после проверки конфигурации, метод готового. Не нужно размещать в готовой функции.4. Интерфейс ошибки проверки.
wx.error (function (res) {// Если информация конфигурации не может быть подтверждена, функция ошибки будет выполнена. Если подпись истекает, проверка не удастся. Для конкретных сообщений об ошибках вы можете открыть режим отладки для просмотра, или вы сможете просмотреть его в возвращенном параметре резкости. Для спасков вы можете обновить подпись здесь.});Инструкции по интерфейсу
Все интерфейсы вызываются через объекты wx (также могут использоваться с объектами jwexin). Параметры являются объектом. В дополнение к параметрам, которые должен пройти каждый интерфейс, существуют также следующие общие параметры:
1. Успех: функция обратного вызова, выполняемая при успешном интерфейсе.
2. Неудача: функция обратного вызова, выполненная при сбое интерфейсных вызовов.
3. Завершите: функция обратного вызова, выполненная при завершении интерфейсного вызова, и будет выполнена независимо от успеха или сбоя.
4. Отмена: функция обратного вызова, когда пользователь нажимает, чтобы отменить, будут использоваться только некоторые API, в которых пользователи отменяют операции.
5. Триггер: метод, который слушает триггер, когда кнопка нажимается в меню. Этот метод поддерживает только связанные интерфейсы в меню.
Все вышеуказанные функции имеют параметр, объект типа, в дополнение к данным, возвращаемым каждым интерфейсом, также существует общее свойство errmsg, формат значения которого заключается в следующем:
1. Когда вызов успешно: «XXX: OK», где XXX - это имя интерфейса вызова
2. Когда пользователь отменяет: «XXX: Cancel», где xxx - это имя интерфейса.
3. Когда вызов снят сбой: его значение является конкретным сообщением об ошибке
Базовый интерфейс
Определите, поддерживает ли текущая версия клиента указанный интерфейс JS
wx.checkjsapi ({jsapilist: ['selectiMage'] // Список интерфейсов JS, которые необходимо обнаружить, все интерфейсы JS перечислены в Приложении 2, успех: функция (res) {// Возврат в виде пары ключа-значения, доступное значение API истин. {"checkResult": {"selectImage": true}, "errmsg": "checkjsapi: ok"}});Обмен интерфейсом
Получите статус нажатия кнопки «Поделиться в моменты» и настроить интерфейс общего содержания
wx.onmenusharetimeline ({title: '' ', // Сообщите ссылку на заголовок:' ', // совместное использование ссылки imgurl:' ', // share incon success: function () {// Функция обратного вызова, выполненное после того, как пользователь подтверждает обмен}, Cancel: function () {// Функция обратного вызова, выполненную после того, как пользовательские отмены}});Получите статус нажмите кнопку «Поделиться с друзьями» и настроить интерфейс общего содержания
wx.onmenushareappmessage ({title: '', // поделиться депутатом на заголовок: '', // поделиться описанием ссылки: '', // поделиться ссылкой imgurl: '', // поделиться типом значка: '', // поделиться типом, музыкой, видео или ссылкой, не заполняйте ссылку по умолчанию: '). // Функция обратного вызова, выполненная после того, как пользователь подтверждает общий доступ}, Cancel: function () {// Функция обратного вызова, выполненная после того, как пользователь отменит обмен}});Получите статус нажатия кнопки «Поделиться в QQ» и настроить интерфейс общего содержания
wx.onmenushareqq ({title: '', // share title desc: '', // поделиться описанием ссылки: ', // поделиться ссылкой imgurl:' '// share incon success: function () {// Функция обратного вызова, выполненную после того, как пользователь подтверждает общий доход}, отмена: function () {// callback Функция выполнена после того, как пользователь Cancels the Sharing}});Получите статус нажмите кнопку «Поделиться в Tencent Weibo» и настроить интерфейс общего содержания
wx.onmenushareweibo ({title: '', // поделиться Title Desc: '', // Поделиться описание Ссылка: '', // Поделиться ссылкой Imgurl: '' // Share Icon Success: function () {// Функция обратного вызова, выполненная после того, как пользователь подтверждает общий доход}, Cancel: function () {// Callback Function, выполненная после того, как пользователь Cancels The Sharing};Интерфейс изображения
Сделайте снимок или выберите изображение в интерфейсе альбома мобильного телефона
wx.chooseimage ({success: function (res) {var localids = res.localids; // Возвращает локальный список идентификации выбранной фотографии. Localid может отображать изображения в качестве атрибута SRC тега IMG}});Предварительный просмотр интерфейса изображения
wx.previewimage ({current: '', // отображаемые в настоящее время ссылки на изображение: [] // Список ссылок изображений, которые необходимо предварительно просмотреть});Загрузите интерфейс изображения
wx.uploadimage ({localid: '', // локальный идентификатор изображения, подлежащего загрузку, полученное из интерфейса CheckeMage isshowprogresstips: 1 // По умолчанию 1, а подсказка прогресса отображается успешным: функция (res) {var serverd = res.serverid; // возврат идентификатор сервера});Примечание. Вы можете загрузить загруженное изображение WeChat, используя мультимедийный файловый интерфейс. Сервер, полученный здесь, Media_id. Справочный документ ../ 12/58BFCFABBD501C7CD77C19BD9CFA8354.HTML
Скачать интерфейс изображения
wx.downloadImage ({serverId: '', // идентификатор сервера на стороне изображения, который будет загружен, получен из интерфейса oploadImage isshowProgressTips: 1 // По умолчанию 1, а подсказка прогресса отображается успешно: функция (res) {var localid = res.Localid; // Возвращение к локальному идентификатору после загрузки изображения});Аудио -интерфейс
Начните записывать интерфейс
wx.startrecord ();
Прекратите записывать интерфейс
wx.stoprecord ({success: function (res) {var localid = res.localid;}});Автоматический интерфейс остановки для мониторинга записи
wx.onvoicerecordend ({// Полный обратный вызов будет выполнен, когда время записи превышает одну минуту и не останавливается. Заполните: function (res) {var localid = res.localid;}});Воспроизвести голосовой интерфейс
wx.playvoice ({localid: '' // Локальный идентификатор звука, который будет воспроизведен, полученный интерфейсом StopRecord});Пауза воспроизводить интерфейс
wx.pausevoice ({localid: '' // Локальный идентификатор звука, который необходимо приостановить, полученная интерфейсом StopRecord});Остановить интерфейс воспроизведения
wx.stopvoice ({localid: '' // локальный идентификатор звука, который необходимо остановить, полученным интерфейсом StopRecord});Мониторинг интерфейса воспроизведения голоса
wx.onvoiceplayend ({serverid: '', // идентификатор сервера аудио, который необходимо загрузить, получить успех: function (res) {var localid = res.localid; // возвращать локальный идентификатор аудио}});Загрузите голосовой интерфейс
wx.uploadvoice ({localid: '', // локальный идентификатор звука, который необходимо загрузить, полученная из интерфейса StopRecord isshowprogresstips: 1 // По умолчанию 1, отображая успех в ходе прогресса: function (res) {var server = res.serverid; // возврат идентификатор сервера Audio});Примечание. Вы можете скачать загруженный голос с помощью мультимедийного файлового интерфейса WeChat. Сервер, полученный здесь, Media_id. Справочный документ ../ 12/58BFCFABBD501C7CD77C19BD9CFA8354.HTML
Скачать голосовой интерфейс
wx.downloadvoice ({ServerId: '', // идентификатор сервера звука, который необходимо загрузить, полученное из интерфейса oploadVoice isshowProgressTips: 1 // По умолчанию 1, а подсказка прогресса отображается успешным: функция (res) {var locald = res.localid; // return Local Id a audio});Интеллектуальный интерфейс
Определите аудио и верните интерфейс результатов распознавания
wx.translatevoice ({localid: '', // локальный идентификатор звука, который необходимо распознать, isshowprogresstips: 1, // По умолчанию 1, отображая ход успеха прогресса: function (res) {alert (res.translateresult); // результат распознавания голоса}});Информация о оборудовании
Получить интерфейс состояния сети
wx.getnetworktype ({success: function (res) {var networkType = res.netWorkType; // возвращать типы сети 2G, 3G, 4G, WiFi}});Географическое расположение
Используйте встроенную карту WeChat для просмотра интерфейса местоположения
wx.openlocation ({wititude: 0, // широта, номер с плавающей запятой, диапазон 90 ~ -90 Долгота: 0, // долгота, номер плавающей точки, диапазон 180 ~ -180. Название: '', // Имя места. Отображается в нижней части интерфейса позиции просмотра, вы можете нажать, чтобы прыгнуть});Получите интерфейс геолокации
wx.getLocation ({timeStamp: 0, // Положение подписи TimeStamp, предоставленная не CESTR: '', // Положение подписи случайной строки, предоставленная только тогда, если совместим с версией 6.0.2, AddrSign: '', // позиционирование подписи, предоставленная только при совместимости с версией 6.0.2, см. Приложение 4 для подробности. Успешное: функция (res) ravitude = res.Litude; 90 ~ -90 var latitude = res.latity;Операция интерфейса
Скрыть интерфейс меню wx.hideoptionmenu () в верхнем правом углу;
Показать интерфейс меню wx.showoptionmenu () в верхнем правом углу;
Закрыть текущий интерфейс веб -окна wx.closewindow ();
Кнопка «Скрыть»
wx.hidemenuitems ({Menuist: [] // Скрыть элементы меню, см. Приложение 3});Кнопка функции пакетного отображения
wx.showmenuitems ({Menuist: [] // Все элементы меню, которые будут отображаться, показаны в Приложении 3});Скрыть все не-базовые кнопки интерфейсы wx.hideallnonbasemenuitem ();
Показать все функциональный интерфейс wx.showallnonbasemenuitem ();
Сканируйте WeChat
Нажмите на интерфейс сканирования WeChat
wx.scanqrcode ({desc: 'scanqrcode desc', eepresult: 0, // по умолчанию 0, результат сканирования обрабатывается WeChat, и 1 непосредственно возвращает результат сканирования, Scantype: ["qrCode", "шаркод"], // вы можете указать, можно ли Scantype QR -код или 1R -код. res.resultstr;Адрес урожая
Редактировать интерфейс адреса доставки
wx.editAddress (TimeStamp: 0, // TimeStamption Signature, только если она должна быть совместима с версией 6.0.2, не Cestrest: '', // Стоимость значения местоположения, только если она должна быть совместимой с версией 6.0.2, AddrSign: '', // местоположение), только если он должен быть совместимы с версией 6.0.2, см. В приложении. username = res.username; Адрес var address = res.address;
Получите ближайший интерфейс адреса доставки
wx.getLateStAddress ({{TimeStamp: 0, // Signature Signature TimeStamp, только если она должна быть совместима с версией 6.0.2, не Cestr: '', // Стоимость определения случайной строки местоположения, только если она должна быть совместимой с версией 6.0.2, AddrSign: ', // местоположение, только если он должен быть совместимой с версией 6.0.2. (res) {var users = res.username; // Национальный адрес доставки третьего уровня адрес var address = res.address;WeChat Store
Перейти к интерфейсу страницы продукта WeChat
wx.openproductspecificview ({productId: '', // продукт iDviewType: '' // 0. Значение по умолчанию, обычные данные о продукте страница 1. Сканируйте сведения о продукте Страница 2. Хранить сведения о продукте});WeChat Card Coupon
Выпустите список купонов карты для магазинов и получите список выбора пользователя
wx.choosecard ({ShopId: '', // Store Id Cardtype: '', // Тип карты Cardid: '', // ID CARD TimeStamp: 0, // ID CARD TimeStamp: nonCestr: '', // Card Vusher Signature Random String CardSign: '', // Card Vucrard, см. Приложение 6 для подробностей: function (res). Информация о списке ваучеров, выбранная пользователем}});Добавить интерфейс купона карты в партиях
wx.addcard ({cardlist: [{cardid: '', cardext: ''}], // Список купонов карты, который должен быть добавлен успешно: function (res) {var cardlist = res.cardlist; // Информация о списке купонов карты}});Проверьте интерфейс купона карты в пакете карт WeChat
wx.opencard ({cardlist: [{cardid: '', code: ''}] // Список купонов карты, которые будут открыты});WeChat платеж
Инициировать запрос на оплату WeChat
wx.choosewxpay ({timeStamp: 0, // Платежная подпись TimeStamp noncestr: '', // Подпись платежей Стоимость случайных строк: '', // Подробная информация о заказа - это расширенная строка, см. Приложение 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/4B08382E91217687730A2DFC71E9218C.HTML
2. Используйте Access_token, полученный на первом шаге, чтобы запросить jsapi_ticket (действительный в течение 7200 секунд, разработчик должен кэшировать jsapi_ticket в своей службе): https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=Access_tokepekepehpehpepehpehpepehpepehpehpehpehpepehpehpehpehpehpehpehpepehpehpehpehpehpepehpehpehpehpehpepeh
Успешно возвращает следующий JSON:
{"errcode": 0, "errmsg": "OK", "Ticket": "bxldikrxvbtpdhsm05e5u5suoxnkd8-41zo3mhkoyn5ofkwitdggnr2fwj0m9e8nyzwkvzvdvtaugwvsdshfa" expires_in expires_in expires_in 'expires_in' expires_in 'expires_in' expires_in expires_in.После получения jsapi_ticket вы можете генерировать подпись для проверки разрешения JSSDK.
Алгоритм подписи
Правила генерации подписей следующие: поля, участвующие в подписи, включают в себя uncestr (случайная строка), действительный JSAPI_Ticket, TimeStamp (TimeStamp), URL (URL -адрес текущей веб -страницы, не включая # и ее последующие части). После сортировки всех параметров, которые должны быть подписаны от малого до большого (словарь-порядок) в соответствии с кодом ASCII имени поля, формат пары значений ключей URL (то есть key1 = value1 & key2 = value2…) используется для разбивания в строкости строки1. Здесь следует отметить, что все имена параметров являются нижними символами. String1 зашифруется, а имя поля и значение поля являются исходными значениями, и не выполняется выход URL.
То есть signature = sha1 (string1). Пример:
• noncestr = wm3wzytpz0wzccnw
• JSAPI_TICKET = SM4AOVDWFPE4DXKXGES8VMCPGGVI4C3VM0P37WVUCFVKVAY_90U5H9NBSLYY3-HHTDFL2FZFY1AOCHKP7QG
• TimeStamp = 1414587457
• url = http: //mp.weixin.qq.com
Шаг 1. После сортировки всех параметров, которые должны быть подписаны от малого до большого (порядок словаря) в соответствии с кодом ASCII имени поля, разбивайте их в строку String1, используя формат пары значений ключей URL (то есть key1 = value1 & keal2 = value2…):
jsapi_ticket = sm4aovdwfpe4dxkxges8vmcpggvi4c3vm0p37wvucfvkvay_90u5h9nbslyy3-htdfl 2fzfy1aochkp7qg & noncestr = wm3wzytpz0wzccnw × tamp = 1414587457 & url = http: //mp.wexin.qq.com
Шаг 2. Подписать строку1 с SHA1 и получить подпись:
F4D90DAF4B3BCA3078AB155816175BA34C443A7B
Что следует отметить
1. Несоответствующая и временная метка, используемая для подписи, должны быть такими же, как и неэптр и временная метка в wx.config.
2. URL -адрес, используемый для подписи, должен быть полным URL -адресом страницы, вызывающего интерфейс JS.
3. По соображениям безопасности разработчики должны реализовать логику подписи на стороне сервера.
Приложение 2 - Список всех интерфейсов JS
• OnmenushareTimeline
• onmenushareappmessage
• Onmenushareqq
• Онменушаревейбо
• Startrecord
• StopRecord
• onvoicereCordend
• Playvoice
• Pausevoice
• Stopvoice
• onvoiceplayend
• uploadvoice
• Скачать voice
• Выберите
• Предварительный размер
• uploadimage
• Скачать image
• TranslateVoice
• GetNetWorkType
• Открыть
• GetLocation
• Hideoptionmenu
• ShowoptionMenu
• Hidemenuitems
• Showmenuitems
• Hideallnonbasemenuitem
• Showallnonbasemenuitem
• Закрыть
• ScanqrCode
• Выберите whpay
• getLateStAddress
• EditAddress
• OpenProductSpecificview
• Addcare
• Выборка
• Opencard
Приложение 3 - Список всех кнопок
Основные категории
• Отчет: «Menuitem: Exposearticle»
• Отрегулируйте шрифт: "Menuitem: SetFont"
• Дневной режим: "Menuitem: Daymode"
• Ночной режим: «Menuitem: Nightmode»
• Обновление: "Menuitem: обновить"
• Просмотреть официальную учетную запись (добавлена): «Menuitem: профиль»
• Просмотреть официальную учетную запись (не добавлена): «Menuitem: AddContact»
Коммуникационная категория
• Отправить другу: «Menuitem: Share: AppMessage»
• Поделиться в моменты: «Menuitem: Share: Timeline»
• Поделиться в QQ: "Menuitem: Share: QQ"
• Поделиться с Weibo: "Menuitem: поделиться: weiboapp"
• Коллекция: "Menuitem: любимый"
• Поделиться с FB: "Menuitem: поделиться: Facebook"
Защитный класс
• отладка: "Menuitem: jsdebug"
• Редактировать тег: "Menuitem: Edittag"
• Удалить: "Menuitem: Delete"
• Ссылка копирования: "Menuitem: copyurl"
• Оригинальная веб -страница: "Menuitem: OriginPage"
• Режим чтения: "Menuitem: READMODE"
• Открыть в браузере QQ: «Menuitem: OpenWithQQBRowser»
• Открыто в Safari: «Menuitem: OpenWithsafari»
• Электронная почта: "Menuitem: поделиться: электронная почта"
• Некоторые специальные общественные аккаунты: «Menuitem: Share: Brand»
Приложение 4 - Алгоритм генерации подписи местоположения и адреса.
Правила генерации AddrSign такие же, как и у проверки разрешений JSSDK (см. Приложение 1), но участвующие параметры подписи различны. Параметры подписи, участвующие в AddrSign: Appid, URL (текущий веб -URL), TimeStamp, не CESTR, AccessOken (учетные данные авторизации пользователя, см. Протокол OAUTH2.0, чтобы получить).
Приложение 5 - поле расширения платежей и алгоритм генерации подписи
Определение строки расширения данных (пакет)
Когда продавец перенаправляет API JS, продавцу необходимо определить детали заказа в это время и объединить данные заказа в упаковке определенным образом. После того, как JS API будет вызван, WeChat будет генерировать заказ о предоплате через содержание пакета. Следующее будет определять требуемый список поля и метод подписи для пакета. Необходимо отметить интерфейс: все входящие параметры являются типами строк!
Эта статья была составлена в «Краткое описание навыков развития WeChat JavaScript», и все могут учиться и читать.
Я хотел бы порекомендовать учебник по программе WeChat Mini, которая очень обеспокоена: «Учебник по разработке мини -программы WeChat» был тщательно скомпилирован редактором всех, я надеюсь, вам понравится.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.