赞
踩
注册路径
注册企业账号,分 企业认证 和 微信认证
企业认证 :需企业打钱到腾讯账户(注册时会提供),但是事后会原额退换,有些关键的api却不能用
微信认证:每年需要花300块钱提交认证 api功能齐全
新建项目选择小程序项目,选择代码存放的硬盘路径,填入刚刚申请到的小程序的 AppID
,给你的项目起一个好听的名字,勾选 “不使用云服务” (注意: 你要选择一个空的目录才可以创建项目),点击新建,你就得到了你的第一个小程序了,点击顶部菜单编译就可以在微信开发者工具中预览你的第一个小程序。
小程序代码构成
.json 后缀的 JSON 配置文件
.wxml 后缀的 WXML 模板文件
.wxss 后缀的 WXSS 样式文件
.js 后缀的 JS 脚本逻辑文件
JSON 配置
注册pages页面
注册底部tabbar
设置window窗口样式
需要点击才能 首次加载是不可以触发的 当用户点击一键登录时,就可以做到上面一套流程 wx.login({ success (res) { if (res.code) { //发起网络请求 wx.request({ url: 'https://example.com/onLogin', data: { code: res.code } }) } else { console.log('登录失败!' + res.errMsg) } } })
get请求 需要传四个参数 https://api.weixin.qq.com/sns/jscode2session 'appid': config.appId,//我们的appId 'secret': config.appSecret,//我们的appSecret 'js_code': req.query.code,//前端传给后台的 'grant_type': 'authorization_code'//固定写死 返回的数据有 1、session_key (如TRlCliLmFFXop3OmRvDvhQ 每次请求都会变) 2、openid 用户唯一表示 (oukWq5c-vtpR1-hcUtvCP_JZn7Pw 固定不变的) const jwt = require('jsonwebtoken') let token = jwt.sign( {sessionKey, openid}, //上面返回的 config.token_key, //配置我们自定义的key {expiresIn: 60 * 60 * 24}// 配置登录有效期24小时 )//将token返回给前端 wx.setStorageSync('token',token)//前端存token wx.getStorageSync('token')//前端取token
<button
open-type="getPhoneNumber"
bindgetphonenumber="getPhoneNumber">
</button>
点击一键登录时触发 这时弹出选择手机号的弹框
getPhoneNumber: function (e) { var iv = e.detail.iv var encryptedData= e.detail.encryptedData var codeObj = ""; var that = this; wx.login({ success: res => { const code = res.code wx.request({ url: 'https://你的接口文件路径', //接口地址 data: { appid: "你的小程序APPID", secret: "你的小程序appsecret", code: code, encryptedData: encryptedData, iv: iv }, success: function (res) { 后台解析好的json数据 包括手机号 }) if (e.detail.errMsg == 'getPhoneNumber:user deny') { //用户点击拒绝 wx.navigateTo({ url: '../index/index', }) } else { //用户点击授权了 进入交互页面 } } }); },
返回数据
{
"phoneNumber": "13580006666",//用户绑定的手机号
"purePhoneNumber": "13580006666",//没有区号的手机号
"countryCode": "86",//区号
"watermark":
{
"appid":"APPID",
"timestamp": TIMESTAMP
}
}
上面代码 前端参考链接
上面代码 java解密 encryptedData 和 iv 为手机号 参考链接
wx.getUserProfile({
desc: '为了方便使用,请求登录。',
success: (res) => {
res.userInfo
//avatarUrl city country gender language nickName province
},
fail(){
that.loginSaveToken()
}
})
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。