微信公众号页面开发和移动端项目开发过程是一致的,都需要把页面放在导航树的mobile和免登录模块这两个模块下面。
微信中内嵌了一个浏览器,所以通过微信公众号访问MIsshop平台的页面和通过手机浏览器访问Misshop平台的页面没有本质的区别,最终都需要访问mobile.jsp或mobile.tab.jsp。
但是微信公众号开发有其特殊之处:
- 微信公众号自带菜单导航栏,需要通过微信公众平台的自定义菜单体系将公众号菜单和Misshop页面关联起来。具体的关联方法请参考https://www.jianshu.com/p/09984d7129b2
- 微信公众号的访客天然自带微信身份(微信OpenID),系统因此需要实现一次注册,永久自动登录。
根据用户的微信OpenID, Misshop平台会检查微信公众号访客是否已经在用户表里,如果用户表里没有相关的微信OpenID, 则页面自动跳转到免登录模块下的注册页面,敲黑板了,微信公众号项目通常都需要在免登录模块下建立一个名叫注册的页面。当系统跳转这个注册页面时,同时携带了一个重要参数,敲黑板了, 这个参数的名字叫做wxopenid。所以这个注册页面的参数列表应该加入这个接收参数,如下图所示:
image.png
这个注册页面有一种特殊情况,那就是系统面向的用户群是固定的,系统只针对这些指定用户开放,在这种情况下,用户信息已经导入到了用户表中,只是不知道用户的微信身份,那么在这种场合,这个页面的名字虽然固化了叫“注册”,但其实要做的是一个身份校验+更新微信身份的事情,这种情况下,这个页面里有些特殊用法:
参考上面的图:A3,A5,A9都是供用户输入身份认证信息的输入控件,这些控件的保存至需要使用特殊的用户验证函数,下图展示了A9的保存至的公式写法:
![](https://img.haomeiwen.com/i12920178/cdfb19d8a3f9ce61.png)
A3和A5是类似的,分别是save.验证.用户验证.名称和save.验证.用户验证.手机号,最后一个属性是用户表中对应的字段名字。
除此之外,如果匹配上了用户记录,我们还需要更新该用户的微信OpenID, 怎么做呢,请看下图中的A12的写法及其保存至的写法:
![](https://img.haomeiwen.com/i12920178/4f5091c8e7ef0538.png)
这里的写法和上面用来验证的字段是一致的(save.验证.用户验证.wx_openid),但是在实现上有本质的不同,微信OpenID作为一个特例,会在用户的其他校验字段都校验成功的同时更新该用户记录的微信OpenID,并且进行自动化登录。
A11是一个保存按钮,这也是注册页面的标配,如果注册成功并自动化登录成功后希望跳转页面,目前的暂时的做法是配置该保存按钮的保存后跳转属性,如下图所示:
![](https://img.haomeiwen.com/i12920178/6f9681aae28dbd6a.png)
至于说普通的注册,它和传统的新建页面没有什么区别,把用户的姓名、手机号等信息保存至对应的记录字段即可,需要注意的地方有两个方面:
* 必须给用户记录保存一个角色值,比如normal角色,或者角色管理中的其他角色。
* 必须把参数wxopenid保存至用户记录的wx_openid字段。
网友评论