前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VFP为公众号添加一个报名功能,代码不多,但谁能得扬名立万

VFP为公众号添加一个报名功能,代码不多,但谁能得扬名立万

作者头像
加菲猫的VFP
发布2021-12-01 20:45:08
3880
发布2021-12-01 20:45:08
举报
文章被收录于专栏:加菲猫的VFP

有客户需要利用公众号注册会员,方便查询会员积分余额什么的,也有教育系统的需要做个报名功能的,那今天我们来试试用公众号来做这个功能。

公众号其实就是流量入口,完全可以替代掉80%的APP功能,成本还低太多了,如果你打不定主意实现什么商业模式的时候,你完成可以通过公众号来完成这个功能。

关于公众号的商业模式,猫猫以后再更新相关的文章,有时候一些案例,让人拍案叫奇。

VFP祺佑三层框架官网已上线

http://www.sn58.cn

需求分析

客户需要做公众号报名,经分析一下,功能流程如下。

1 点开公众号菜单 报名,打开右图网页, 用户提交用户名,学号 2 系统接收,后台审核后,推送一条消息给该用户

报名登记

找出需要解决的问题点

推送消息需要用户的openid,我们直接在公众号菜单绑定的网址 http://192.168.0.99:801/baoming.html 它是静态的,这样是没有办法获取openid

要怎么样才能有openid呢?

方案一:事件消息中获取

  1. 制作一个自定义菜单,这个菜单触发一个事件,取得用户的openid,
  2. 根据这个事件发送一个动态的网址http://192.168.0.99:801/ctl_bm.fsp?proc=html&openid=用户openid
  3. 上面的这个网址可以用vfp直接输出html

注意:正式使用openid要加密

 一、梳理操作流程如下
  1. 用户点击菜单
  2. 后台发送动态网址 http://192.168.0.99:801/ctl_bm.fsp.fsp?proc=html&openid=用户openid
  3. fsp文件根据openid 拼接生成 html字符串发送
  4. 动态页面提交action到指定的接收网址
二、自定义菜单
代码语言:javascript
复制
*-- 创建自定义菜单 一个按钮
TEXT TO lcMenu NOSHOW 
 {
     "button":[
      {    
          "type":"click",
          "name":"报名",
          "key":"baoming"
      }
      ]
 }
ENDTEXT 
oWxapi=Newobject("weixinapi","weixinapi.prg")
?oWxapi.createMenu(lcMenu)

注意上方的key是baoming

三、后台应答类响应这个baoming key事件
代码语言:javascript
复制
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的过程

代码语言:javascript
复制
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 的子类

代码语言:javascript
复制
Define Class ctl_bm2 As weixinfsp Of Locfile("weixinfsp.prg")


Enddefine

三、添加view菜单

添加view菜单

四、编写生成html过程

html代码

注意 This.ReGetOpenID()为关键代码,获取openid并存到cookie中 form action 提交的位置要注意

五、获取报名数据 httpGetCookie

代码语言:javascript
复制
Procedure baoming        
    cname=HttpQueryParams("name")
    ccode=HttpQueryParams("code")
    cOpenid=HttpGetCookie("openid")
    ?cname,ccode,cOpenid  &&拿到报名信息存数据库,后台根据openid发模板消息
    Return "ok"  &&正常这里也是可以输出html网页的
Endproc

常见错误

问题:redirect_uri错误 

redirect_uri错误

解决: 开启网页授权获取用户基本信息

网页授权

好看html怎么来

  1. 别人做好的模板,拿来改改, 组件拿来拼装一下,开源的组件也蛮多,去找找. weui 手机端 layui 后端
  2. 请美工来设计,程序员的直男审美,真的不好看.一个样式美工一小时,你调三天.
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲猫的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求分析
  • 找出需要解决的问题点
    • 方案一:事件消息中获取
      •  一、梳理操作流程如下
      • 二、自定义菜单
      • 三、后台应答类响应这个baoming key事件
      • 二、制作报名网页
      • 三、接收HTML提交的数据
  • 方案二
    • 一、公众号后台配置一下域名权限
      • 二、定义weixinfsp 的子类
        • 三、添加view菜单
          • 四、编写生成html过程
            • 五、获取报名数据 httpGetCookie
            • 常见错误
            • 好看html怎么来
            相关产品与服务
            访问管理
            访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档