Введение
Используйте WeChat для обмена, вы можете получить лучший эффект общения. Как использовать общедоступную учетную запись WeChat для обмена информацией с друзьями?
поделиться здесьwechat красный конвертНапример, я научу вас, как реализовать авторизацию и совместное использование WeChat.
Шаг 1. Сбор информации о пользователе
1. Зарегистрируйте тестовый официальный аккаунт
мы вhttps://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
Вы можете подать заявку на тестовую учетную запись, и вы можете увидеть наш appId и другую информацию на странице управления тестовой учетной записью.Есть возможность изменить информацию о конфигурации интерфейса, которую нам необходимо заполнить.
Здесь мы должны побеспокоить внутренних студентов, чтобы они предоставили нам URL-адрес и токен (URL-адрес — это URL-адрес интерфейса, который разработчики используют для получения сообщений и событий WeChat. Токен может быть заполнен разработчиками и использоваться для создания подписей) Токен будет сравниваться с токеном, содержащимся в URL-адресе интерфейса, для проверки безопасности.
2. Авторизация на веб-странице WeChat
В проекте необходимо получить личную информацию пользователя, такую как номер мобильного телефона и аватар WeChat и т. д. Здесь для этого нам нужна авторизация веб-страницы WeChat.Во-первых, найдите таблицу разрешений интерфейса опыта в управлении тестовой учетной записью WeChat.
Нажмите, чтобы изменить, чтобы ввести:
Добавьте доменное имя вашей веб-страницы.После завершения настройки мы получим доступ к этому пути.https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
может получитьcode
значение, чтобы получить личную информацию, такую как openid.
3. Измените путь после настройки
① .appid
для нас в тестовом номереappid
② .redirect_uri为我们页面路径,访问微信提供的路径会获取code值重定向到我们页面路径(这里的url需要进行
обработка urlEncode`)
③ .scope
Есть два значения:
-
snsapi_base
При тихой авторизации пользователь не воспринимает, а может только получитьopenid
, другой информации нет. -
snsapi_userinfo
Это всплывающее окно с запросом на авторизацию, и вы можете получить его после подтверждения авторизации.openid
А потом получить никнейм, аватарку и прочую информацию
Таким образом, мы можем авторизовать информацию о пользователе:
возможные проблемы
-
scope
параметр неправильный или нетscope
разрешения, проверьтеscope
назначение параметровsnsapi_base
илиsnsapi_userinfo
-
redirect_uri
Если параметр неверный, проверьте проблему с конфигурацией доменного имени на странице авторизации веб-страницы и обратите внимание на пробел при копировании -
response_type
Неверный параметр, проверьте, выполняется ли URL-адресurlEncode
иметь дело с
Шаг 2. Использование WeChat JS-SDK
WeChat JS-SDK — это набор инструментов для веб-разработки на основе WeChat, предоставляемый общедоступной платформой WeChat для веб-разработчиков. Через JS-SDK можно использовать функции обмена, оплаты, сканирования и других функций WeChat. Здесь мы используем обмен WeChat.
1. Настройка безопасного доменного имени js
Используйте JS-SDK, чтобы сначала найти имя домена безопасности интерфейса JS тестового номера и настроить доменное имя, используемое на странице.
2. Представьте JS-SDK
В проекте мы вводим ресурсы JS-SDk, доступ к которым можно получить черезhttp://res.wx.qq.com/open/js/jweixin-1.4.0.js
(поддержка https)
Или импортировать по модульной загрузкеimport wx from 'weixin-js-sdk'
3. Получите конфигурацию конфигурации подписи
На этом этапе нам также нужна поддержка со стороны студентов RD, чтобы предоставить интерфейс подписи WeChat.Подробности см. На рисунке ниже.
После получения подписи устанавливаем конфиг.После завершения настройки конфига будет вызван метод ready и мы сможем выполнять обработку бизнес логики в методе ready.
Шаг 3. Общий доступ к интерфейсу
getSignature (){ //获取微信签名
return new Promise((resolve, reject)=>{
Axios.get(API.getWechatSign,{
params:{
appid: appId,
url: window.location.href.split('#')[0]
}
}).then( res => {
resolve(res.data)
}).catch((err)=>{
reject(err)
})
})
},
async setWx(){
let res = await this.getSignature()
let {timestamp, nonceStr, appId, signature} = res
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: appId, // 必填,公众号的唯一标识
timestamp: timestamp, // 必填,生成签名的时间戳
nonceStr: nonceStr, // 必填,生成签名的随机串
signature: signature, // 必填,签名
jsApiList: ["onMenuShareTimeline", "onMenuShareAppMessage"] // 必填,需要使用的JS接口列表
});
wx.ready(() => {
wx.onMenuShareTimeline({
title: '测试分享', // 分享标题
link: window.location.href,// 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: 'http://icon.mobanwang.com/UploadFiles_8971/200910/20091011134333685.png',// 分享图标
success: function() {
// 用户点击了分享后执行的回调函数
}
});
wx.onMenuShareAppMessage({
title: '测试分享', // 分享标题
desc: '一个测试的分享!!!', // 分享描述
link: window.location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: 'http://icon.mobanwang.com/UploadFiles_8971/200910/20091011134333685.png', // 分享图标
type: "", // 分享类型,music、video或link,不填默认为link
dataUrl: "", // 如果type是music或video,则要提供数据链接,默认为空
success: function() {
// 用户点击了分享后执行的回调函数
}
})
})
}
Таким образом, мы реализуем обмен WeChat, эффект следующий: Поделиться с друзьями
Поделиться с друзьями
Общая проблема
-
invalid url domain
Проверьте правильность имени домена безопасности js. -
invalid signature
Проблема довольно обширная:- Проверьте правильность интерфейса подписи, WeChat предоставляет инструменты проверки
http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign
-
config
Проблема с китайской орфографией, обратите внимание на заглавные буквыnonceStr
- При входе
url
Путь не может содержать'#'hash
часть - Имя домена общей ссылки должно совпадать с именем домена безопасности общедоступной учетной записи js.
-
debug
показыватьconfig:ok
Но обмен не имеет никакого эффекта, проверьте метод обмена иjs-sdk
Версия
- Проверьте правильность интерфейса подписи, WeChat предоставляет инструменты проверки
напиши в конце
Самое важное в разработке веб-страниц WeChat — настройка среды, тщательно настройте, чтобы избежать ям. Имя домена безопасности js в официальной учетной записи может быть настроено с тремя, а авторизованное доменное имя веб-страницы — 2. Проект разработки должен обратить внимание на эти моменты заранее. Также обратите внимание на публичный аккаунт в тестовом аккаунте. Функции, необходимые для такого проекта в красном конверте, в основном завершены.
еще хочу сказать
Разработка всего проекта включает в себя большую часть конечной поддержки.В качестве примера возьмем Kuaigou Taxi, есть сторона водителя, сторона пользователя, оплата и т. д. Функция обмена WeChat выделена в независимую службу для достижения унификации и стандартизации для поддержки использования различных направлений бизнеса.