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

 更新时间:2017年09月04日 16:15:25   作者:a329958_1  
刚刚接触微信就要做一个表单提交功能,需求是这样的只能在数据库中存在的手机号看到表单。下面通过本文给大家分享使用YII2框架实现微信公众号中表单提交功能,感兴趣的朋友一起看看吧

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

需求有这些:

  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框架实现微信公众号中表单提交功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • laravel5表单唯一验证的实例代码

    laravel5表单唯一验证的实例代码

    今天小编就为大家分享一篇laravel5表单唯一验证的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • 体育彩票排列三组选三算法分享

    体育彩票排列三组选三算法分享

    这篇文章主要介绍了php实现体育彩票排列三组选三算法示例,根据用户投注的多个号码,拆成单注的数组形式
    2014-03-03
  • 使用Appcan客户端自动更新PHP版本号(全)

    使用Appcan客户端自动更新PHP版本号(全)

    在项目开发过程中遇到app端自动更新,查阅了相关资料然后把Appcan客户端自动更新PHP版本号的方法整理出来,有需要的小伙伴可以来参考下
    2015-07-07
  • php preg_match的匹配不同国家语言实例

    php preg_match的匹配不同国家语言实例

    这篇文章主要介绍了php preg_match的匹配不同国家语言实例的相关资料,需要的朋友可以参考下
    2016-12-12
  • PHP代码判断设备是手机还是平板电脑(两种方法)

    PHP代码判断设备是手机还是平板电脑(两种方法)

    随着互联网移动设备的普及,很多网站都兼容手机端浏览,为了更好的让网页在手机端显示,我们都选择了使用CSS媒体查询制作响应式模版。本文给大家介绍PHP代码判断设备是手机还是平板电脑(两种方法),感兴趣的朋友一起学习吧
    2015-10-10
  • PHP之CI框架学习讲解

    PHP之CI框架学习讲解

    这篇文章主要介绍了PHP之CI框架学习讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 简述PHP7.4 新特性和废弃的功能

    简述PHP7.4 新特性和废弃的功能

    这篇文章主要介绍了简述PHP7.4 新特性和废弃的功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • PHP实现多图上传和单图上传功能

    PHP实现多图上传和单图上传功能

    本文通过实例代码给大家介绍了基于PHP实现多图上传和单图上传功能,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • 制作安全性高的PHP网站的几个实用要点

    制作安全性高的PHP网站的几个实用要点

    这篇文章主要介绍了制作安全性高的PHP网站的几个实用要点,需要的朋友可以参考下
    2014-12-12
  • php反引号与短标签脚本示例

    php反引号与短标签脚本示例

    这篇文章主要为大家介绍了php反引号与短标签的脚本示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04

最新评论