最近公司需要做一个智能试衣镜,微信导流是一个核心功能。就是用户扫描试衣镜上的二维码进入我们的公众号。为了唯一标识照片,需要动态生成二维码,该试衣镜后续的每张照片都会和一个二维码绑定。用户进入扫描二维码进入我们的公众号后,会携带二维码的参数值,我们的微信公众号后台程序就找到这些的照片,然后通过点击图片用户认证过程来实现照片和用户绑定。为了改善体验,我们还使用AI识别用户进入退出试衣镜行为,一个用户为一个session。同时增加用户手势识别等功能,以方便用户更换衣服实时查看用户试衣效果。
微信场景二维码
为了满足用户渠道推广分析的需要,微信公众平台提供了动态生成带参数二维码的接口。用户扫描后,公众号后台程序可以接收到事件推送。
场景二维码分别两类:
二维码:
有过期时间,最大为1800秒,但能够生成较多数量
永久二维码:
无过期时间,数量较少(目前参数只支持1--100000)。
两种二维码分别适用于帐号绑定、用户来源统计等场景。考虑到照片数量繁多,我们使用临时二维码实现,永久绑定通过用户微信认证绑定实现。
用户扫描带场景值二维码时,后台服务器可接收到如下两种事件:
如果用户还未关注公众号,扫码后则用户跳转到关注也面,关注后微信会将带场景值关注事件推送给开发者,此时开发者可主动推送刚刚的照片Url, 在URL请求用户授权,进而将用户信息和照片信息绑定,进而形成永久绑定。
如果用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者。
获取带参数的二维码的过程包括两步:首先创建二维码ticket,然后凭借ticket到指定URL换取二维码,这些操作都需要通过后台服务器实现。
创建二维码ticket
每次创建二维码ticket需要提供一个开发者自行设定的参数(scene_id),分别介绍临时二维码和永久二维码的创建二维码ticket过程。
临时二维码请求说明
http请求方式: POST
URL: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN
POST数据格式:json
POST数据例子:{"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}