使用YII2框架实现微信公众号中表单提交功能
发布时间 - 2026-01-11 03:06:11 点击率:次刚接触微信,要做一个在手机上的表单提交功能。

需求有这些:
- 只能在数据库中存在的手机号看到表单。
- 表单可以重复提交。
- 第一次进入表单需要验证
- 分享出去的页面,别人进入后也需要验证。
因为每个手机在同一个公众号当中的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?

