有客户需要利用公众号注册会员,方便查询会员积分余额什么的,也有教育系统的需要做个报名功能的,那今天我们来试试用公众号来做这个功能。
公众号其实就是流量入口,完全可以替代掉80%的APP功能,成本还低太多了,如果你打不定主意实现什么商业模式的时候,你完成可以通过公众号来完成这个功能。
关于公众号的商业模式,猫猫以后再更新相关的文章,有时候一些案例,让人拍案叫奇。
VFP祺佑三层框架官网已上线
http://www.sn58.cn
客户需要做公众号报名,经分析一下,功能流程如下。
1 点开公众号菜单 报名,打开右图网页, 用户提交用户名,学号 2 系统接收,后台审核后,推送一条消息给该用户
报名登记
推送消息需要用户的openid,我们直接在公众号菜单绑定的网址 http://192.168.0.99:801/baoming.html 它是静态的,这样是没有办法获取openid
要怎么样才能有openid呢?
注意:正式使用openid要加密
*-- 创建自定义菜单 一个按钮
TEXT TO lcMenu NOSHOW
{
"button":[
{
"type":"click",
"name":"报名",
"key":"baoming"
}
]
}
ENDTEXT
oWxapi=Newobject("weixinapi","weixinapi.prg")
?oWxapi.createMenu(lcMenu)
注意上方的key是baoming
lcContent="感谢您的关注"
IF msgtype=="event"
IF this.getkeyvalue(MsgText,"EventKey")=="baoming"
TEXT TO lcContent NOSHOW TEXTMERGE PRETEXT 1+2
<a href="http://qiyusoft.free.idcfengye.com/ctl_bm.fsp?proc=html&openid=<<FromUserName>>">
点击报名</a>
ENDTEXT
ENDIF
ENDIF
判断事件的Eventkey==baoming之后,我们创建了一个超链接,然后将 lcContent 回发给用户。
用户收到消息,点击点击报名这个超链接后,就要跳转到我们的这个http://qiyusoft.free.idcfengye.com/ctl_bm.fsp?proc=html&openid=<>网址上面。
fsp输出html字符串,html文件的本质也是字符串
form表单的action是ctl_bm.fsp?proc=baoming
网页代码
在ctl_bm.fsp添加baoming的过程
Procedure baoming
cname=HttpQueryParams("name")
ccode=HttpQueryParams("code")
cOpenid=HttpQueryParams("openid")
?cname,ccode,cOpenid &&拿到报名信息存数据库,后台根据openid发模板消息
RETURN “ok" &&正常这里也是输出html网页的
Endproc
至此方案一就完成啦。
公众号点开菜单,就跳转到报名的网页,这个网页直接就能获取到openid 并存放于cookie中,这样需要用openid的时候,就取一下cookie 就可以了
配成自己的域名 不用带http 重要 qiyusoft.free.idcfengye.com
域名配置
Define Class ctl_bm2 As weixinfsp Of Locfile("weixinfsp.prg")
Enddefine
添加view菜单
html代码
注意 This.ReGetOpenID()为关键代码,获取openid并存到cookie中 form action 提交的位置要注意
Procedure baoming
cname=HttpQueryParams("name")
ccode=HttpQueryParams("code")
cOpenid=HttpGetCookie("openid")
?cname,ccode,cOpenid &&拿到报名信息存数据库,后台根据openid发模板消息
Return "ok" &&正常这里也是可以输出html网页的
Endproc
问题:redirect_uri错误
redirect_uri错误
解决: 开启网页授权获取用户基本信息
网页授权