ホームページ  >  記事  >  バックエンド開発  >  YII2 フレームワークを使用して WeChat パブリック アカウントでフォーム送信機能を開発および実装するための詳細なチュートリアル

YII2 フレームワークを使用して WeChat パブリック アカウントでフォーム送信機能を開発および実装するための詳細なチュートリアル

巴扎黑
巴扎黑オリジナル
2017-09-07 13:53:381643ブラウズ

私が初めて WeChat に出会ったとき、フォーム送信機能を作成する必要があったのは、データベースに存在する携帯電話番号でのみフォームを閲覧できるということでした。この記事では、YII2 フレームワークを使用して WeChat パブリック アカウントにフォーム送信機能を実装する方法を紹介します。興味のある方はぜひ参考にしてください。私は WeChat を初めて使用するので、フォームを作成したいと思っています。携帯電話での投稿機能。

要件は次のとおりです:

    このフォームは、データベースに存在する携帯電話番号でのみ表示できます。
  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]);
    }
  }`

ビューレイヤー

非常に単純なリダイレクトページ

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');

返されるパスは、コントローラーへのパスです。

フォームページでは、まず簡単な認証

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

を行い、共有ページからのものであるかどうかを判断します。共有ページからのものである場合は、携帯電話かどうかを判断するために再認証する必要があります。データベースにあります。そうでない場合は、携帯電話番号を確認してください。


これで、私の最初の簡単な WeChat パブリック アカウント プロジェクトです。

以上がYII2 フレームワークを使用して WeChat パブリック アカウントでフォーム送信機能を開発および実装するための詳細なチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。