主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
文章目录
本教程系统要求:Windows 10系统,phpcms v9版本,DELL G3电脑
如何使用phpcms实现微信登录? >phpcms实现微信登录(无需注册,直接充值)
思路:回调参数,直接注册 (代码不太规范,我自己整理一下)
在根目录下新建一个目录wechat.php。
访问http://www.xxxxxx.cn/wechat.php。
注意回调地址。
phpcms实现微信登录(无需注册,直接充值)
wechat.php
在\phpcms\modules\member\index.php下添加
注意:输出注册状态$status 可以返回错误信息。
电子邮件地址是必填字段,因此只需添加它。
error('身份验证失败'); ://api. weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$appsecret.'&code='.$code.'&gr ant_type=authorization_code'; $token = json_decode(file_get_contents($ token_url)); if (isset($token->errcode)) { showmessage(L('
错误消息:
'.$token->errmsg) , HTTP_REFERER); 退出; 'https://api.weixin.qq.com/sns/oauth2/refresh_token?appid='.$appid.'&grant_type=refresh_token&refresh_token='.$token->刷新令牌; //转换为对象 $access_token = json_decode(file_get_contents($access_token_url)); if (isset($access_token->errcode)) { showmessage(L('
Error 错误消息:
'.$access_token->errmsg), HTTP_REFERER); openid='.$access_token->openid.'&lang=zh_CN'; //转换为对象 $user_info = json_decode(file_get_contents($user_info_url)); if (isset($user_info->errcode)) { show message(L( '
错误消息:
'.$user_info->errmsg), HTTP_REFERER); $rs = json_decode(json_encode($user_info),true);// 转换为数组。 --------用户信息代码获取完成------------*/ header("Cache-control: private"); $checkname = trim($rs['nickname']); . "_".substr(md5($rs['unionid']),0,5); $this->_init_phpss o (); $cstatus = $this->client->PS_Checkname($Checkname); if($cstatus == -4 || $cstatus == -1) { $username = $rs['nickname']."_".substr(md5( $rs['unionid']),0, 5) ; $密码 = substr(md5($rs['unionid']),0,10); s_password($_POST['密码']) && is_badword($_POST['password'])==false ? trim($_POST['password']) : showmessage(L('password_format_in Correct'), $cookietime = int Val ($ _ Post ['Cookietime') ]);_config('系统', 'phpsso')) { $this->_init_phpsso(); 他 -> 客户端 -> ps_member_login($username, $password); if(isset($memberinfo['uid'])) $r = $this->db->get_one(array('phpssouid'= > $memberinfo['uid'])); if(!$r) { // 插入会员详细信息。 不要插入成员 存在 'phpssouid'=>$memberinfo['uid'], 'usern ame'=>$memberinfo['username'], 'password'=>$memberinfo['password'], ' encrypt'=> $memberinfo['随机'], 'email'=>$memberinfo['email'], 'regip'=>$memberi nfo['regip'], 'lastip'=>$memberinfo['lastip'], 'lastda te'=>$memberinfo[' lastdate'], 'groupid'=>$this->_get_usergroup _bypoint(), // 成员的默认组 SSION['connectid'])) { ; ;$userinfo['from'] = $userinfo['from'] 取消设置($_SESSION['connectid'], $_SESSION['from']); $this->db->insert($info); pssouid'=>$memberinfo['uid'])); $synloginstr = $this->client->ps_member_synlogin($r['phpssouid']); } Else {if ($ Status == -1) { // 用户在 showMessag 中不存在 e(L('user_not_exist'), '/login.html'); showmessage(L('password_error'), '/login.html');showmessage(L('login_failure'), '/login.html'); ::load_model('times_model'); $rtime = $this->times_db->get_one(array('username'=> $username)); if($rtime['times'] > 4) { $分钟 = 60 - 楼层((SY S_TIME - $rtime['登录时间']) / 60); showmessage(L('wait_1_hour', array('minu te'=>$ 分钟))); ray('用户名'=>$用户名)); If(!$r) showmessage(L('user_not_exist'),'/login.html' );if ($r['password']!=$password) {$ip = ip() if($rtime && $rtime['times'] times_db->update(array('ip'=>$ip, ' times'=>'+ =1'), array('用户名'=>$用户名)) >times_db->insert(array('用户名'=>$用户名, 'ip'=>$ip, 'logintime'=>SYS_TIME, 'times'=>1)); ssword_error', array('times'=>$times)), '/login.html', 3000); this->times_db->delete(array('username'=>$username)); If($r['islock']) { showmessage(L('user_is_lock'));$userid = $r['userid']; $group ID = $r['group ID']; $username = $r['username']; $nickname = 空($r['nickname']) ?用户名 : $r['昵称']; $upda Tea = array('lastip'=>ip(), 'lastdate'=>SYS_TIME); 使用 R ['overdueDate'] = 0 && !in_array($r['groupid'], array('1', '7', '8')) && 空($r[vip])) { $grouplist = getcache('组列表'); !empty($grouplist[$r['groupid']][ 'allowupgrade'])) { $check_groupid = $this->_get_usergroup_bypoint($r['点']; if ($check_groupid!= $r['组ID']) {$updatearr['组ID'] = $groupid = $check_groupid;//对于已连接的用户 if(!empty($_SESSION['connectid'])) { nnectid'] = $_SESSION['connectid']; $updatearr['from'] = $_SESSION['from'], $_SESSION['from']); $this->db->update($updatearr, array('userid'=>$userid) )); If(!isset($cookietime)) { $get_cookietime = param::get_cookie('cookietime') ; et_cookietime : 0); $cookietime = $_cookietime ? SYS_TIME + $_cookietime : 0 $phpcms_auth = sys_auth($userid."\t".$password, 'ENCODE', get_auth_key('login'));am::set_cookie('auth', $phpcms_auth, $cookietime); param::set_cookie('_userid', $userid, $cookietime); param::set_cookie('_username', $username, $cookietime); :set_cookie('_groupid', $groupid, $cookietime); 参数::set_cookie('_nickname' , $nickname, $cookietime); //print_r($_COOKIE); //退出; //param ::set_cookie('cookietime', $_cookietime, $cookietime); 使用 - '】? urldecode($_ POST['forward']): 'index.php?m=member&c=index';]."&username=".$_COOKIE[ 'vuGYB__usernamee']."&userid=".$_COOKIE['vuGYB__userid']."&groupid=".$_COOKIE['vuGYB__groupid']; header("local:".$url."");} // 用户注册 If $useInfo = Array (); $userinfo['加密'] = create_randomstr(6); $userinfo['用户名'] = $rs['昵称']."_".substr(md5($rs['unionid']),0,5); _".substr(md5($rs['unionid']),0,5); $userinfo['email'] = time().' @yangpeili.com'; $userinfo['modelid'] = isset($_POST['modelid']) : 10 ] = $member_setting['默认点int'] ? $member_setting['默认点'] : 0; ['最后日期'] = SYS_TIME; $userinfo['connectid'] = iss et($_SESSION [' connectid']) ? $_SESSION['连接 ID'] : ''; $userinfo['from'] = isset($_SES SION['from']) ? $_SESSION['from']: ''; if($member_setting['choosemodel']) { require_once CACHE_MODEL_PATH.'member_input.cl ass.php'; require_once CACHE_MODEL_PATH.'member_update.class.php'; member_input($userinfo['modelid']); $_POST['信息'] = 数组映射('new_html_special_chars',$_POST['info']); POST['信息']); 图('系统', 'phpsso')) { $this->_init_phpsso(); 客户端->ps_member_register($userinfo['用户名'], $userinfo['密码'], $userinfo['email'], $userinfo['regip'], $userinfo['加密']); if($status > 0) { $userinfo['phpssouid'] = $状态; $userinfo['phpssouid'] cms_v9 $password d'] = 密码($userinfo['密码'], $userinfo['加密']);db->insert($userinfo, 1); If($member_setting['choosemodel']) { //如果选择模型在 $user_model_info['userid'] = $userid; $this->db->set_model($userinfo['modelid']); sert($user_model_info); $_cookietime = $cookietime intval($cookietime) : ($get_cookietime ? $get_cookietime : 0); $cookietime = $_cookietime ? TIME + $_cookietime : 0; IF ($ Userinfo ['GROUPID'] == 7)_cookie('_username', $userinfo['用户名'], $cookietime); param::set_cookie('email', $userinfo['email'], $cookietime); word'], 'ENCODE', get_auth_key('login')); 'groupid'=> "6"), array('userid'=>$userid)); ber` SET `groupid`='6' WHERE ` userid` = $userid ";//更改用户级别为注册用户 mysql_query($sql); 参数::set_cookie('_userid', $userid, $cookietime);param::set_cookie('_username', $userinfo['username'], $cookietime); param::set_cookie('_groupid', $userinfo['groupid'], $cookietime); param::set_cookie('cookietime', $_cookietime, $cookietime); $forward = isset($_POST['forward']) && !empty($_POST['forward']) ? ]) : 'index.php?m=member&c=index'; //https 和 http 域间传递用户名 跳转至cookie $url = "http://www.zhiliaoke.com.cn/set_cookie_www.php?nickname=".$_COOKIE['vuGYB__nickname']."&username=" .$ _COOKIE['vuGYB__username' ]."&userid=".$_COOKIE['vuGYB__userid']."&groupid=".$_COOKIE['vuGYB__groupid']; header("位置:".$url.""); Showmessage(L('enable_register').L('enable_phpsso'), '/login.html'); showmessage(L('operation_failed'), HTTP_REFERER); }?>
添加最后一步马苏。
这非常重要,但最容易被忽视。 ! !
有人被困在这里。
在phpcms\modules\member\classes\foreground.class.php文件第21行左右,我们需要检查用户是否通过微信功能登录。
欢迎来到PHP中文网,有很多免费的PHPCMS教程和在线学习
下载微信小程序
微信是一款支持发送语音消息的手机通讯软件! 、视频、照片和文本。 微信支持个人聊天和群聊,您还可以根据您的地理位置找到附近的人,给您带来全新的移动通讯体验。 有需要的朋友,请快来保存您的下载体验吧!
下载!
这几篇文章你可能也喜欢:
- 如何配置phpcms邮箱(php实现邮箱验证码)
- 如何使用phpcms的评论功能(phpcms呢)
- 如何用phpcms压缩图片(php自动压缩图片)
- 哪个数据库适合 PHPCMS?(php 还是 cms?)
- phpcms中打不开手机版(phpstudy中打不开网站)怎么办?
本文由主机参考刊发,转载请注明:phpcms中如何实现微信登录(php微信登录流程) https://zhujicankao.com/140264.html
评论前必须登录!
注册