VFP为公众号添加一个报名功能,代码不多,但谁能得扬名立万
VFP为公众号添加一个报名功能,代码不多,但谁能得扬名立万
有客户需要利用公众号注册会员,方便查询会员积分余额什么的,也有教育系统的需要做个报名功能的,那今天我们来试试用公众号来做这个功能。
公众号其实就是流量入口,完全可以替代掉80%的APP功能,成本还低太多了,如果你打不定主意实现什么商业模式的时候,你完成可以通过公众号来完成这个功能。
关于公众号的商业模式,猫猫以后再更新相关的文章,有时候一些案例,让人拍案叫奇。
需求分析
客户需要做公众号报名,经分析一下,功能流程如下。
1 点开公众号菜单 报名,打开右图网页, 用户提交用户名,学号
2 系统接收,后台审核后,推送一条消息给该用户
找出需要解决的问题点
推送消息需要用户的openid,我们直接在公众号菜单绑定的网址
http://192.168.0.99:801/baoming.html
它是静态的,这样是没有办法获取openid
要怎么样才能有openid呢?
方案一:事件消息中获取
- 制作一个自定义菜单,这个菜单触发一个事件,取得用户的openid,
- 根据这个事件发送一个动态的网址http://192.168.0.99:801/ctl_bm.fsp?proc=html&openid=用户openid
- 上面的这个网址可以用vfp直接输出html
注意:正式使用openid要加密
一、梳理操作流程如下
- 用户点击菜单
- 后台发送动态网址
http://192.168.0.99:801/ctl_bm.fsp.fsp?proc=html&openid=用户openid - fsp文件根据openid 拼接生成 html字符串发送
- 动态页面提交action到指定的接收网址
二、自定义菜单
*-- 创建自定义菜单 一个按钮
TEXT TO lcMenu NOSHOW
{
"button":[
{
"type":"click",
"name":"报名",
"key":"baoming"
}
]
}
ENDTEXT
oWxapi=Newobject("weixinapi","weixinapi.prg")
?oWxapi.createMenu(lcMenu)
注意上方的key是baoming
三、后台应答类响应这个baoming key事件
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
三、接收HTML提交的数据
在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
二、定义weixinfsp 的子类
Define Class ctl_bm2 As weixinfsp Of Locfile("weixinfsp.prg")
Enddefine
三、添加view菜单
四、编写生成html过程
注意
This.ReGetOpenID()为关键代码,获取openid并存到cookie中
form action 提交的位置要注意
五、获取报名数据 httpGetCookie
Procedure baoming
cname=HttpQueryParams("name")
ccode=HttpQueryParams("code")
cOpenid=HttpGetCookie("openid")
?cname,ccode,cOpenid &&拿到报名信息存数据库,后台根据openid发模板消息
Return "ok" &&正常这里也是可以输出html网页的
Endproc
常见错误
问题:redirect_uri错误
解决: 开启网页授权获取用户基本信息
好看html怎么来
-
别人做好的模板,拿来改改, 组件拿来拼装一下,开源的组件也蛮多,去找找.
weui 手机端
layui 后端 -
请美工来设计,程序员的直男审美,真的不好看.一个样式美工一小时,你调三天.
猫言猫语
不要啥都自己干,很多狐友都是单干,单干归单干,也要懂得整合资源,记住你的时间价值比请人高的时候,不要自己干,很亏的。
有些人认为请人会花钱,感觉花钱自己就亏了,而这种感觉是错的,老板开公司请人,请的人是帮你赚钱的,而单干的人首先要突破这个点,请人花钱是替你赚钱的,而这个人你得找对。