使用YII2架構開發實現微信公眾號中表單提交功能教程詳解

來源:互聯網
上載者:User
剛剛接觸就要做一個表單提交功能,需求是這樣的只能在資料庫中存在的手機號看到表單。下面通過本文給大家分享使用YII2架構實現公眾號中表單提交功能,感興趣的朋友一起看看吧

剛接觸,要做一個在手機上的表單提交功能。

需求有這些:

  1. 只能在資料庫中存在的手機號看到表單。

  2. 表單可以重複提交。

  3. 第一次進入表單需要驗證

  4. 分享出去的頁面,別人進入後也需要驗證。

因為每個手機在同一個公眾號當中的openid是唯一性的。所以在手機查看這個表單頁面的時候,就將這個openid存到資料庫中,方便下次提交可以驗證。

下面是My Code。使用的是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。沒有就進行手機號碼的驗證。

大概就是這樣了,我第一個簡單的公眾號項目。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.