微信公众号平台-pc-微信登陆
2020-06-20 本文已影响0人
端木安玉
直接上代码
后台tp5
php
//判断是否扫码
public function getapiopenid(){
$sence_id = input('sence_id');
$user = db('apitem');
$where['str']=array('like','%'.$sence_id.'%');
$res_istrue = $user->where($where)->find();
$openid = $res_istrue['openid'];
Session::set('openid',$openid);
$data = array(
'data' => true,
'code' => 200,
'msg' => '成功 !',
);
// 修改失败 返回信息
if (!$res_istrue) {
$data = array(
'data' => false,
'code' => 500,
'msg' => '失败 !',
);
}
return $data;
}
// pc端扫码微信会给这个方法推送消息
private function getticket(){
$signature = input('signature');
// $timestamp =input('timestamp');
// $nonce = input('nonce');
// $echoStr = $_GET["echostr"];
// $token = 'kinder';
// $tmpArr = array($token, $timestamp, $nonce);
// sort($tmpArr, SORT_STRING);
// $tmpStr = implode( $tmpArr );
// $tmpStr = sha1( $tmpStr );
//
// if( $tmpStr == $signature ){
// echo $echoStr;
// }
// die;
//$GLOBALS["HTTP_RAW_POST_DATA"]; //这个用不了了;换成下面那个
//$GLOBALS["HTTP_RAW_POST_DATA"]; //这个用不了了;换成下面那个
$postStr = file_get_contents("php://input");
if($postStr){
$postObj = json_decode(json_encode(simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA)),true);
$openid = isset($postObj['FromUserName'])?$postObj['FromUserName']:0;;
$str = isset($postObj['EventKey'])?$postObj['EventKey']:0;
$list['openid'] = $openid;
$list['str'] = $str;
// 储存用户信息
$user = db('apitem');
$res_istrue = $user->where(['openid'=>$openid])->find();
if(!$res_istrue){
$user->insert($list);//主表添加
}else{
$user->where(['openid'=>$openid])->update($list);
}
};
return "success";
}
// 获取令牌
private function getactionGetToken(){
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.appid.'&secret='.appsecret;
$res = json_decode($this->actionCurlRequest($url));
return $res->access_token;
}
//curl请求,支持post和get
private function actionCurlRequest($url,$data=null){
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);
if(!empty($data)){
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
}
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
前台
$(document).ready(function(){
setInterval(getLoc,1000);
});
//对接后台查看是否登陆
function getLoc(){
var sence_id = $(".sence_id").html();
if(sence_id != 0){
// ajax 后台读取信息
$.ajax({
type:"get",
dataType:'json',
async:false,
url:'{:url("/index/apiopenid")}',
data:{"sence_id":sence_id},
success:function(dd){
if (dd.code == 200) {
// alert("报名成功");
// 跳转地址
location.href ='{:url("/index/sign")}'
return false;
}else{
console.log("未登录");
}
}
})
}
}