使用YII2框架实现微信公众号中表单提交功能

发布时间 - 2026-01-11 03:06:11    点击率:

刚接触微信,要做一个在手机上的表单提交功能。

需求有这些:

  1. 只能在数据库中存在的手机号看到表单。
  2. 表单可以重复提交。
  3. 第一次进入表单需要验证
  4. 分享出去的页面,别人进入后也需要验证。

因为每个手机在同一个公众号当中的openid是唯一性的。所以在手机查看这个表单页面的时候,就将这个openid存到数据库中,方便下次提交可以验证。

下面是我的代码。使用的是YII2框架。

Controller

//获得回调函数
 public function actionCallback($code,$state){
    $model = new tp_tstz_proposal();
    $model1= new tp_tstz_staff();
    // 微信开放平台网站应用的appid和秘钥secret
    $appid = '';
    $secret = '';
    $curl = new curl\Curl();
    //获取access_token
    $wxresponse = $curl->get('https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $appid
      . '&secret=' . $secret . '&code=' . $code . '&grant_type=authorization_code');
    $wxresult = json_decode($wxresponse);
    if(isset($wxresult->errcode) && $wxresult->errcode > 0){
      //分享出去,重新认证
     return $this->render('login');
      // 向微信请求授权时出错,打印错误码
      // echo json_encode($wxresult);
      // exit;
    }
    $openid=$wxresult->openid;
    $result=$model1::find()->where(['openid'=>$openid])->one();
    //如果OPENID存在就去表单
    if(count($result)>0){
      $key=123456;
      return $this->render('view',['model'=>$model,'key'=>$key]);
    }else{
      return $this->render('tel',['model'=>$model1,'openid'=> $openid]);
    }
  }`

view层

很简单的重定向页面

header('Location:https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8ba95fc51672e844&redirect_uri=http%3a%2f%2fjifen.wendu.cn%2fts%2fweb%2findex.php%3fr%3dproposal%2fcallback&response_type=code&scope=snsapi_base&state=123asd#wechat_redirect');

返回的路径就是进入controller的路径。

在表单页面,我先做了一个简单的认证

if(!isset($key)){
  header('Location:http://jifen.wendu.cn/ts/web/index.php?r=say/login');
}

判断是否是从分享的页面来的,如果是从分享的页面来就要重新验证,判断是否在数据库中有此手机的openid。没有就进行手机号码的验证。

大概就是这样了,我第一个简单的微信公众号项目。

总结

以上所述是小编给大家介绍的使用YII2框架实现微信公众号中表单提交功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# yii2  # 微信公众号表单提交  # 记录Yii2框架开发微信公众号遇到的问题及解决方法  # 完美利用Yii2微信后台开发的系列总结  # Yii PHP Framework实用入门教程(详细介绍)  # YII Framework框架使用YIIC快速创建YII应用之migrate用法实例详解  # YII Framework框架教程之使用YIIC快速创建YII应用详解  # Yii Framework框架获取分类下面的所有子类方法  # YiiFramework入门知识点总结(图文教程)  # YII Framework框架教程之缓存用法详解  # YII Framework框架教程之国际化实现方法  # YII Framework框架教程之安全方案详解  # Yii Framework框架开发微信公众平台示例  # 表单  # 是从  # 数据库中  # 小编  # 的是  # 判断是否  # 第一个  # 在此  # 中有  # 要做  # 给大家  # 很简单  # 就去  # 就将  # 机上  # 所述  # 在手  # 回调  # 给我留言  # 感谢大家 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 大连网站制作公司哪家好一点,大连买房网站哪个好?  javascript日期怎么处理_如何格式化输出  焦点电影公司作品,电影焦点结局是什么?  Laravel如何创建自定义中间件?(Middleware代码示例)  Laravel如何实现API速率限制?(Rate Limiting教程)  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  大型企业网站制作流程,做网站需要注册公司吗?  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  北京网站制作的公司有哪些,北京白云观官方网站?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  JS去除重复并统计数量的实现方法  如何快速搭建虚拟主机网站?新手必看指南  如何在Windows虚拟主机上快速搭建网站?  LinuxCD持续部署教程_自动发布与回滚机制  如何快速打造个性化非模板自助建站?  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  Laravel如何为API编写文档_Laravel API文档生成与维护方法  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  大连 网站制作,大连天途有线官网?  什么是javascript作用域_全局和局部作用域有什么区别?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  高端网站建设与定制开发一站式解决方案 中企动力  新三国志曹操传主线渭水交兵攻略  Android中AutoCompleteTextView自动提示  Laravel Session怎么存储_Laravel Session驱动配置详解  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  如何用腾讯建站主机快速创建免费网站?  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  Python函数文档自动校验_规范解析【教程】  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  历史网站制作软件,华为如何找回被删除的网站?  Laravel如何使用Telescope进行调试?(安装和使用教程)  如何挑选最适合建站的高性能VPS主机?  如何在企业微信快速生成手机电脑官网?  Laravel如何使用Gate和Policy进行授权?(权限控制)  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  如何快速启动建站代理加盟业务?  七夕网站制作视频,七夕大促活动怎么报名?  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  原生JS获取元素集合的子元素宽度实例  Laravel如何与Inertia.js和Vue/React构建现代单页应用  如何在万网开始建站?分步指南解析  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?