网页手机号抓取程序(架构君,一个会写代码吟诗的架构师())
优采云 发布时间: 2022-04-11 14:26网页手机号抓取程序(架构君,一个会写代码吟诗的架构师())
登录首先在app.js中创建一个login()方法,将回调函数作为参数传入;调用后台接口判断用户是否登录;如果是,则调用回调函数(用于主页等地方,例如一旦加载显示一些数据);如果没有登录,则调用 wx.login() 方法获取登录凭据;在这一步中,还需要调用wx.getSetting()方法来判断用户是否已经被授权;如果已经被授权,调用 wx.getUserInfo...
大家好,我是建筑师,一个会写代码,会背诗的建筑师。今天来聊聊微信小程序登录、授权手机号、授权用户信息、支付、提现、转发、订阅新闻、客服新闻、跳转其他小程序、拨打电话、收货地址、地图导航、获取剪贴板内容,查看文档“推荐采集”,希望可以帮助大家提高!!!
静默登录:
静默登录的过程对用户来说是察觉不到的,只能获取一些匿名数据(随机假名、假头像等)。
调用 wx.login() 方法获取登录凭据代码。调用后端接口并传入代码;后端调用auth.code2Session接口换取用户唯一标识OpenID、微信开放平台账号下用户唯一标识UnionID(如果当前小程序已绑定微信开放平台账号)和session Key session_key;返回 OpenID 和 UnionID 到前端。
如果开发者有多个移动应用、网站应用、公众号(包括小程序),可以使用UnionID来区分用户的唯一性,因为只要是同一个微信开放平台下的移动应用account,网站应用和公众号(包括小程序),用户的UnionID是唯一的。也就是说,同一个用户在同一个微信开放平台下,不同的应用使用同一个UnionID。
wx.login({
success: (res)=>{
if(res.code){
// 调用后端接口,传入code获取用户openid
}
}
})
只听到建筑师办公室传来建筑师的声音:
早晨从苍梧溪出发,傍晚到达县园。谁将向上或向下匹配?
授权电话号码:
获取微信用户绑定的手机号,需要先调用wx.login接口。
不建议在 bindgetphonenumber 事件回调中调用 wx.login 登录,登录状态可能会刷新。此时服务器换码的sessionKey不是用于加密的sessionKey,可能会导致解密失败。
用户需要主动触发接口发起获取手机号,所以该函数不被API调用,需要通过按钮组件的点击触发。按钮组件的open-type值需要设置为getPhoneNumber。用户点击同意后,可以通过bindgetphonenumber事件回调获取微信服务器返回的加密数据,然后传递给后端解密得到手机号。
目前,该接口面向非个人开发者,以及已完成认证的小程序(不包括境外实体)开放。
此代码由Java架构师必看网-架构君整理
//authorize.wxml
授权用户手机号
//authorize.js
//点击按钮触发bingtap,调用wx.login()获取code;同时系统会弹出授权面板
login(){
wx.login({
success: (res)=>{
_this.setData({
code: res.code
})
}
})
}
// 点击授权面板的允许/拒绝后触发bindgetphonenumber,此时携带code肯定是新鲜的,不会过期
getPhoneNumber(e) {
//存在e.detail.encryptedData,表明授权面板用户点击了允许;否则表明用户点击了拒绝;
if (e.detail.encryptedData) {
//调用后端接口,传入code、encryptedData、iv获取用户解密的手机号
...
}
}
授权用户信息:
wx.getUserProfile() 用于获取用户信息。只有页面产生点击事件后才能调用(比如在按钮上的bindtap回调中),每次请求都会弹出一个授权窗口,用户同意后返回userInfo。
用户的个人信息(头像、昵称、性别、地区)无法通过wx.getUserInfo获取,调用会静音不弹窗,直接获取匿名数据(随机假名、假头像)。
//authorize.wxml
授权用户信息
//authorize.js
wx.getUserProfile({
desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中
success: (res) => {}
})
向前:
Page.onShareAppMessage 用于监控用户点击页面中的转发按钮(按钮组件 open-type="share")或右上角菜单中的“转发”按钮的行为。
按钮组件 open-type="share" 可以在用户点击按钮后触发 Page.onShareAppMessage 事件。
如果当前页面没有定义该事件,右上方菜单中的“前进”按钮将灰显且不可用。
页面内转发:
通过给按钮组件设置属性open-type="share",可以点击拉起转发面板,触发Page.onShareAppMessage事件。
此代码由Java架构师必看网-架构君整理
转发
右上角菜单“前进”:
页面没有定义onShareAppMessage事件,右上方菜单“前进”按钮可用。
Page({
onShareAppMessage () {}
})
自定义转发内容:
如果不自定义转发图片,默认会取当前页面,从顶部开始,高度为屏幕宽度80%的图片作为转发图片。
onShareAppMessage: function(ops) {
return {
title: '标题',
imageUrl: '图片’,
desc: '描述',
path: `路径`,
}
},
获取更多转发信息:通过调用 wx.showShareMenu 并将 withShareTicket 设置为 true。
onShareAppMessage: function(ops) {
wx.showShareMenu({
withShareTicket: true
})
}
用户转发小程序到任意一个群聊后,当群聊中其他用户打开转发卡片时,可以在App.onLaunch或App.onShow中获取shareTicket。转发信息可以通过调用wx.getShareInfo接口,传入这个shareTicket来获取。
onShow(res) {
wx.getShareInfo({
shareTicket: res.shareTicket,
success(res) {
console.log(res)
}
})
},
订阅新闻:
订阅消息有两种类型:
一次性订阅消息:用于解决用户使用小程序后后续服务链接的通知问题。用户自主订阅后,开发者可以无限期发送相应的服务消息;每条消息都可以单独订阅或取消订阅。长期订阅消息:一次性订阅消息可以满足大部分小程序服务场景的需求,但线下公共服务中存在一次性订阅无法满足的场景(如航班延误,需要发送根据航班实时动态多次消息提醒)。为方便服务,提供长期订阅消息。用户订阅一次后,开发者可以长时间发送多条消息。现在,
订阅新闻特点:
订阅消息推送位置:服务通知。订阅消息传递条件:用户独立订阅。订阅留言卡跳转能力:点击查看详情跳转到小程序页面。
订阅消息使用步骤:
获取模板ID:在微信公众平台手动配置获取模板ID。
获取分发权限:使用wx.requestSubscribeMessage(Object object)调用客户端小程序订阅消息接口,返回用户订阅消息的操作结果。
当用户在订阅面板中勾选“始终保持上述选择,不再询问”时,模板消息将被添加到用户的小程序设置页面,用户对相关模板消息的订阅状态可以通过wx.getSetting 接口。.
wx.requestSubscribeMessage() 的参数:
tmplIds:需要订阅的消息模板的id集合。一次通话最多可订阅 3 条消息。success:接口调用成功的回调函数。fail:接口调用失败的回调函数。complete:接口调用结束的回调函数(调用成功或失败都会执行)。
wx.requestSubscribeMessage({
tmplIds: [''],
success (res) { }
})
调用接口发送订阅消息(后端工作)。
发送的订阅消息将显示在服务通知中。
客服留言:
用户向小程序发送消息:开发者在小程序中添加客服消息按钮组件,用户可以在小程序中调出客服对话页面,向小程序发送消息。
小程序向用户发送消息: 有两种方式。一是在微信公众平台开启消息推送,进行相关配置,后端开发者调用客服消息接口发送客服消息;另一种是直接使用微信公众平台网页版客服工具或手机端小程序客服小助手即可回复客服消息。
调用客服消息接口发送客服消息:
开发者在小程序中添加客服消息按钮组件,用户可以在小程序中调出客服对话页面,向小程序发送消息。
如果用户在会话中点击小程序消息,会返回到小程序,开发者可以通过bindcontact事件回调获取用户点击消息的页面路径路径和对应的参数查询。
客服
登录微信公众平台->开发->开发管理->开发设置->消息推送,开启消息推送,配置消息服务器;开发者提交消息服务器配置后,微信服务器会向填写的服务器地址 URL 发送 GET 请求;后端开发者验证请求,成功后消息推送访问生效。(这一步是后端的工作)
URL:开发者用来接收微信消息和事件的接口。
Token:可由开发者填写,用于生成签名。
EncodingAESKey:由开发者手动或随机生成,作为消息体的加解密密钥。
填写服务器配置后,点击提交,发现无法保存,说明Token验证失败。这里的原因是微信会向配置的服务器地址发送令牌验证请求,以验证请求是否来自微信。这种情况下,服务端代码不在线,token会一直处于验证失败的状态。
当用户在客服会话中发送消息,或者某些特定的用户动作触发事件推送时,微信服务器会将消息或事件包POST到开发者填写的URL中。开发者收到请求后,可以使用发送客服消息的接口进行异步回复。(这一步是后端的工作)
已使用的小程序客服消息将汇总显示在微信会话“小程序客服消息”中。用户可以在小程序外查看历史客服消息,并向小程序客服发送消息。
通过网页版客服工具和手机小程序客服工具发送客服消息。
如果小程序没有开启消息推送,用户发送的消息会被转发到网页版和手机小程序客服工具,客服人员可以在网页版和手机小程序中访问和回复用户客户服务工具。
第一步和第四步同上。在使用网页版和手机小程序客服工具之前,您需要在微信公众平台->功能->客服中完成客服人员的绑定。目前小程序支持绑定不超过100名客服人员。
已绑定的小程序客服人员可在微信搜索“客服小助手”或扫码登录小程序小程序,选择对应的小程序账号。访问聊天;或扫描二维码登录微信官方平台网页版客服工具(),选择对应的小程序账号。登录后,您可以看到正在与小程序聊天的用户,您可以选择访问聊天。支付:调用后端接口,返回微信支付接口需要的参数。调用微信支付接口发起微信支付。
拨打电话前,您需要在小程序-功能-微信支付的微信公众平台申请接入微信支付。
//调用后端接口
wxPay({}).then((data)=>{
if(data){
//调用微信支付API
const prepayId = `prepay_id=${data.prepayId}`;
wx.requestPayment({
timeStamp: data.timeStamp, //时间戳
nonceStr: data.nonceStr, //随机字符串
package: prepayId, //统一下单接口返回的 prepay_id 参数值,需拼接固定格式
signType: data.signType, //签名算法
paySign: data.paySign, //签名
success (res) {
wx.navigateTo({
url: '../success/success'
})
},
fail (err) {
showToast(err);
}
})
}
})
提取:
微信小程序没有提现相关的API,一般都是通过企业支付来实现的。
企业支付改功能是微信支付的功能,需要后台调用微信支付的功能;小程序只需要调用后端的接口即可。
跳转到其他小程序:
使用 wx.navigateToMiniProgram() 打开另一个小程序。如果用户没有点击小程序页面的任何地方,开发者将无法调用该接口自动跳转到其他小程序。在跳转到其他小程序之前,会增加弹窗询问是否跳转,用户确认后可以跳转到其他小程序。如果用户点击取消,回调失败取消。
wx.navigateToMiniProgram({
appId: '',
path: 'page/index/index?id=123',
extraData: {
foo: 'bar'
},
envVersion: 'develop',
success(res) {}
})
拨打号码:
handleCallPhone(val){
wx.makePhoneCall({
phoneNumber: val
})
}
收件地址:
wx.chooseAddress() 获取用户的收货地址。调用原生界面供用户编辑收货地址,编辑完成后返回用户选择的地址。
wx.chooseAddress({
success (res) {
console.log(res.userName)
console.log(res.postalCode)
console.log(res.provinceName)
console.log(res.cityName)
console.log(res.countyName)
console.log(res.detailInfo)
console.log(res.nationalCode)
console.log(res.telNumber)
}
})
地图导航:
纬度和经度是数字类型,而不是字符串类型。
handleNav(item){
//使用微信内置地图查看位置
wx.openLocation({
latitude:parseFloat(item.lat),//地址的纬度
longitude: parseFloat(item.lon),//地址的经度-
address: item.deliveryAddress//详细地址
})
}
获取剪贴板内容:
wx.getClipboardData({
success (res){
console.log(res.data);
}
})
查看文档:需要在微信公众平台->开发->开发管理->开发设置->服务器域名中配置downloadFile的合法域名。首先,使用 wx.downloadFile(Object object) 将文件资源下载到本地,会返回文件的本地路径;然后使用 wx.openDocument(Object object) 打开一个新页面来打开文档。
wx.downloadFile({
url: 'https://xxxx.xxx.com/test.doc',
success: function (res) {
var filePath = res.tempFilePath
wx.openDocument({
filePath: filePath,
})
},
})
我想你会喜欢: