처음 WeChat을 접했을 때, 양식 제출 기능을 만들어야 했습니다. 요건은 데이터베이스에 존재하는 휴대폰 번호로만 볼 수 있다는 것이었습니다. 이 기사를 통해 YII2 프레임워크를 사용하여 WeChat 공개 계정에서 양식 제출 기능을 구현하는 방법을 공유하겠습니다. 관심 있는 친구는 꼭 살펴보시기 바랍니다.
저는 WeChat을 처음 사용하고 있으며 양식을 만들고 싶습니다. 휴대폰의 제출 기능.
요구사항은 다음과 같습니다.
양식은 데이터베이스에 존재하는 휴대폰 번호에서만 볼 수 있습니다.
양식은 반복해서 제출할 수 있습니다.
양식을 처음 입력할 때는 인증이 필요합니다
당신이 공유하는 페이지는 다른 사람이 입력한 후에도 인증이 필요합니다.
동일 공식 계정 내 휴대폰의 오픈ID는 각각 다르기 때문이죠. 따라서 휴대폰에서 이 양식 페이지를 볼 때 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 layer
매우 간단한 리디렉션 페이지
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'); }
공유 페이지에서 오는 경우 휴대폰 여부를 다시 확인해야 합니다. openid에 있습니다. 그렇지 않은 경우 휴대폰 번호를 확인하세요.
이제 저의 첫 번째 간단한 WeChat 공개 계정 프로젝트입니다.
위 내용은 YII2 프레임워크를 사용하여 WeChat 공개 계정에서 양식 제출 기능을 개발하고 구현하는 방법에 대한 자세한 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!