扫二维码的功能,因为你没有特定说明其环境,因此我们假设不绑定微信、支付宝,而是单独设计你自己的网站功能,那么你可以每当(例如在用户注册页面上)要显示二维码图片之前,首先产生一个“授权码”编号,并且在你的服务器端数据库中记录米一个二维码授权码有没有被扫描过的信息(一个 bool 类型的字段)。
然后你的登录页面使用通用的类库方法,产生此“授权码”对应的二维码图片。例如将类似如下这样的url
http://111.abc.com/scan.ashx?id=89kjks23842k
产生为对应的二维码图片,并显示到相关的网页(例如用户注册网页)。
当用户用手机扫二维码的时候,手机实际上访问了上面的页面,你的服务网站上的功能 scan.ashx 自定义服务处理参数 id,将相关的二维码被扫描过的状态记录下来。(同时还可以当发现重复扫描时,直接给出错误提示)
你的用户注册页面(它含有注册二维码)可以捕获扫描二维码事件,并且动态改变前端界面,例如显示”已经扫描,获得了1000次试用次数“之类的提示画面。
而用户注册页面要提交注册,可以先访问服务器判断一下是否已经扫描过二维码。如果没有扫描过则不允许提交用户注册,而是提示”请先扫二维码“。