Unionid机制

1、请注意,网页授权获取用户基本信息也遵循UnionID机制。即如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求。
2、UnionID机制的作用说明:如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的。
// wx.getUserInfo 获取到的用户信息: <button open-type="getUserInfo"
bindgetuserinfo="bindGetUserInfo" >授权登录</button>
detail:{
encryptedData:"CbyOnqSv8XSdm8eiSckRJqv5aTXplRch8+cAT9Bc1M5/HTp1/5zBQWzERShR9y+wktv1SgHIRVSKB1O3c0eSGg2PVPvgI==",
errMsg:"getUserInfo:ok",
iv:"yL3kb3lSMmYgpSzGOSSPLA==",
rawData:"{"nickName":"小裴","gender":2,"language":"zh_CN","city":"Jiangmen","province":"Guangdong","country":"China","avatarUrl":"https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTImLHSGibrIeaLZfvTT8YLSsD9CeXo7Lic7ibqWzxxnravtVDBbQeeb5rE1veiaQ8UdHHQ9thOlaseshg/132"}",
signature:"21e0a35469586e4af9c0b7abe28c62bf57b621e1",
userInfo:{nickName: "小裴", gender: 2, language: "zh_CN", city: "Jiangmen", province: "Guangdong"}
}
getUserInfo:微信服务器以session_key签名/加密,传输数据+签名+密文
session_key:会话密钥【为了防止数据被篡改,session_key不应该传输到小程序客户端等服务器外环境】

解密openid和unionid等敏感数据

array:9 [
"openId" => "oDWSZ5dZRlNAR-NW-xxxxxxx"
"nickName" => "小裴"
"gender" => 2
"language" => "zh_CN"
"city" => "Jiangmen"
"province" => "Guangdong"
"country" => "China"
"avatarUrl" => "https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTI0fXcVppTAWTunvFCqROV3jtWRBs2gNzjuXk2icPK4Jsib1bYSpK0iaMIOkf8glqdm2kbPsyLLFkU5g/132"
"watermark" => array:2 [
"timestamp" => 1542954155
"appid" => "wx9999999999999"
]
]
小程序绑定开放平台账号
有两种方式:
1、调用接口绑定:
开放平台文档:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1498704199_1bcax&token=112f24f84ab91925807953575613e34057318584&lang=zh_CN

2、图形界面绑定
小程序绑定微信开放平台账号之后,可与账号下的其他移动应用、网站应用及公众号打通,通过Unionid机制满足多个应用与公众号之间统一用户账号的需求。

UnionID机制说明:如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过UnionID来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。用户的UnionID可通过调用“获取用户信息”接口获取。
获取带参数的小程序二维码,并进行操作判断
简述
通过后台接口可以获取小程序任意页面的二维码,扫描该二维码可以直接进入小程序对应的页面。
目前微信支持两种二维码,小程序码和小程序二维码
为满足不同需求和场景,这里提供了三个接口,开发者可挑选适合自己的接口。
A接口,生成小程序码,可接受path参数较长,生成个数受限。
B接口,生成小程序码,可接受页面参数较短,生成个数不受限。
C接口,生成二维码,可接受path参数较长,生成个数受限。
带参数的二维码推荐使用B接口:适用于需要的码数量极多的业务场景
接口地址:https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN
POST 参数说明
- scene
- page 必须是已经发布的小程序存在的页面(否则报错),例如 "pages/index/index" ,根路径前不要填加'/',不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面
- width 二维码的宽度,默认430
- auto_color 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认false
- line_color auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示
注意:通过该接口生成的小程序码,永久有效,数量暂无限制。用户扫描该码进入小程序后,开发者需在对应页面获取的码中 scene 字段的值,再做处理逻辑。使用如下代码可以获取到二维码中的 scene 字段的值。调试阶段可以使用开发工具的条件编译自定义参数 scene=xxxx 进行模拟,开发工具模拟时的 scene 的参数值需要进行 urlencode
// 这是首页的 js
Page({
onLoad: function(options) {
// options 中的 scene 需要使用 decodeURIComponent 才能获取到生成二维码时传入的 scene
var scene = decodeURIComponent(options.scene)
}
})
多媒体--图片,音频,视频,照相机
下拉加载
授权登陆,一键开卡
发现更好的小程序
小程序更容易开发的规划
- 自定义组件: 官方自定义组件,可视化编程(拖拽进来直接用),在开发者社区提供一个可以找到优秀插件和组件的地方,支持npm包管理功能【未来会推出】,
- 插件:插件内支持登陆,插件内支持微信支付
让小程序体验更好:体验评分功能【指出小程序性能不好的地方,优化指引】
- 图片加载慢
- 点击区域小
- 遇到的问题: 不知道怎么修改问题,怎么定位问题
更好的开发体验
小程序原生组件:客户端原生渲染
其他普通组件: web浏览器渲染
过渡方案:使用 cover-view 来覆盖
最终解决方案:同层渲染,ios已开发完成,安卓已取得突破性 【指日可待】
开发生态
- 公众号
- 小程序
- 微信支付
基本配套:文档,教程【观念官方教材,合作视频】
开发支持:开发工具,卡发着社区
运营支持:运维性能监控,性能分析
开发者工具
更灵活的开发配置
- 自定义编译
- 支持typeScript【未来】
更完善的项目管理
- 代码仓库 TGit ,,结合腾讯云
- 集成Git,可视化
更丰富的调试场景
- 测试号:代替游客模式
- 多账号登陆
- 真机调试: 远程调试,程序断点,查看小程序日志输出
小程序云
- 不用服务器搭建,不用配置数据库,不用域名配置
小程序性能优化:
- 代码包压缩
- 分包加载:主包保留最常用的核心页面,启用时只加载主包,其他分包按需加载
- 不免不当的setData使用:尽量合并setData,并注意可以在切换到后台的时候setData
网友评论