针对thinkphp6做的防伪查询二维码系统,通过微信扫码会出现二次请求问题解决如下:
// 检查请求是否来自微信扫一扫
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ){
$pcfnum = $result1['num']+1;
if($pcfnum == 1){
$data = ['num' =>$pcfnum,'id'=>$result1['id'],'fisrt_time'=>time(),'address'=>getCity()];
}else{
$data = ['num' =>$pcfnum,'id'=>$result1['id']];
}
// 定义操作的唯一标识符
$operationKey = 'unique_operation_key';
// 检查缓存中是否存在操作键
if (!Cache::has($operationKey)) {
Db::name('track')->save($data);
}
// 将操作键添加到缓存中,设置过期时间为3秒
Cache::set($operationKey, true, 3);
$result1['num'] = $result1['num'];
}else{
//记录查询数据
$pcfnum = $result1['num']+1;
if($pcfnum == 1){
$data = ['num' =>$pcfnum,'id'=>$result1['id'],'fisrt_time'=>time(),'address'=>getCity()];
}else{
$data = ['num' =>$pcfnum,'id'=>$result1['id']];
}
Db::name('track')->save($data);
$result1['num'] = $pcfnum;
}