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 :
Le formulaire n'est visible que sur les numéros de téléphone portable qui existent dans la base de données.
Le formulaire peut être soumis à plusieurs reprises.
Une vérification est requise lors de la première saisie du formulaire
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]); } }`
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');
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'); }
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!