Tutoriel détaillé sur l'utilisation du framework YII2 pour développer et implémenter la fonction de soumission de formulaire dans les comptes publics WeChat

巴扎黑
Libérer: 2023-03-15 19:54:02
original
1665 Les gens l'ont consulté

Lorsque je suis entré en contact avec WeChat, j'ai dû créer une fonction de soumission de formulaire. L'exigence était que le formulaire ne puisse être vu que par le numéro de téléphone portable qui existe dans la base de données. À travers cet article, je vais partager avec vous comment utiliser le framework YII2 pour implémenter la fonction de soumission de formulaire dans les comptes publics WeChat. Les amis intéressés devraient y jeter un œil ensemble

Je suis nouveau sur WeChat et je souhaite créer. une fonction de soumission de formulaires sur les téléphones mobiles.

Les exigences sont les suivantes :

  1. Le formulaire n'est visible que sur les numéros de téléphone portable qui existent dans la base de données.

  2. Le formulaire peut être soumis à plusieurs reprises.

  3. Une vérification est requise lors de la première saisie du formulaire

  4. Les pages partagées par d'autres doivent également être vérifiées après la saisie.

Parce que l'openid de chaque téléphone mobile dans un même compte officiel est unique. Par conséquent, lors de la visualisation de cette page de formulaire sur un téléphone mobile, l'openid est enregistré dans la base de données afin qu'il puisse être vérifié la prochaine fois qu'il sera soumis.

Ci-dessous mon code. Le framework YII2 est utilisé.

Contrôleur


//获得回调函数
 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]);
    }
  }`
Copier après la connexion

afficher la couche

Page de redirection très simple


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');
Copier après la connexion

Le chemin renvoyé est le chemin pour entrer dans le contrôleur.

Sur la page du formulaire, j'ai d'abord fait une simple authentification


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

Pour déterminer si ça vient de la page partagée, si ça vient de la page partagée Lorsque vous arrivez sur la page, vous devez revérifier pour déterminer si l'openid de ce téléphone mobile est dans la base de données. Sinon, vérifiez le numéro de mobile.

Ça y est, mon premier projet simple de compte public WeChat.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal