Products
GG网络技术分享 2025-03-18 16:13 0
大至每一栋建筑、流经的河流,小至一个井盖、消防栓,在无锡蠡桥社区,通过“数字蠡桥”平台,不仅可以直观地看到地面设施,深埋在楼宇间、地下的管线也都能悉数掌握。究其原因,蠡桥社区按照真实世界1:1建立了数字社区模型,这也是无锡首个运用数字孪生技术实现实时动态管理的社区。
近年来,从智慧交通到智慧管理,再到智慧建造,随着5G、物联网、工业互联网等新一代信息技术的广泛应用,智慧城市建设步入一个崭新阶段:加速布局新基建,充分运用新一代信息技术,以公共数据开放共享为突破口,提升城市运行效能,挖掘数字经济红利。
在2022中国国际智能产业博览会上,重庆城市管线综合管理事务中心展示的综合管廊智慧管理平台技术备受关注。截至6月底,重庆共有36个区县(含开发区)启动综合管廊建设。其中,开州区地下综合管廊已进入全面运营阶段,在全市率先实现综合管廊全天候智慧化运营。
前不久,石家庄智慧城市时空大数据平台正式通过自然资源部组织的竣工验收,标志着河北省首个国家级智慧城市时空大数据平台建成。该平台整合了涉及石家庄市基础时空、公共领域、自然资源、行业部门、物联网实时感知、互联网在线抓取共700余类数据,融合形成石家庄市统一的时空大数据“一张图”。
“一网管全城”的智慧城市建设将在更多区域铺开。今年7月,北京市通州区提出打造副中心城市大脑、搭建副中心政务大数据平台等28项标杆示范工程;上海明确支撑城市迈向全场景智慧时代;广州也提出全面布局广州CIM(城市信息模型)平台,提高广州城市建设智能治理水平。
一位业内人士表示,加码智慧城市建设已成各地共识。通过建设智慧管廊等基础设施“强体”,集中解决城市“里子”问题,尤其是“大城市病”。同时,加码新基建建设“增智”,用新技术新手段,加快数字化信息化智慧化建设,提高城市快速响应机制,应急机制等。
中国科学院院士、中国科学院上海技术物理研究所研究员褚君浩表示,建设智慧城市重在实时感知和智慧分析。他认为,在互联网、物联网、大数据和云计算的技术支撑下,城市综合管理、交通物流、贸易、能源环境安全、医疗文化教育将迎来更多应用落地。
智慧城市的建设将带来多方共赢。《“十四五”全国城市基础设施建设规划》做出明确指引。“十四五”时期,我国城市建设将以解决人民群众最关心、最直接、最现实的利益问题为立足点,着力补短板、强弱项、提品质、增效益,最终实现经济效益、社会效益、生态效益、安全效益相统一。
上述业内人士指出,城市基础设施从构建新发展格局来看,促投资和扩内需是两位一体的。要发挥政策性开发性金融工具的政策效能,重点围绕城市交通、产业、能源、信息科技、地下管廊等基础设施领域,撬动社会资本,扩大有效投资,促进社会消费,带动微观就业。智慧城市投资将会继续加码。智慧城市基础设施,如物联网、环境传感器、全光网络、5G全覆盖、人脸识别与物体识别摄像头、智能抄表、车联网等将是智慧城市的重点投向。
“此前都是我们到各个城市主动展示我们的技术和智慧解决方案,但现在这种四处路演找项目的情况完全变了。”一家城市车联网企业的负责人表示,近两年来,发展智慧城市已成为各地发展的重点之一,有更多地方政府主动找到他们要求合作。他预计,今年企业与地方合作落地规模或将超100亿元,几乎是前几年之和。(记者 梁倩)
来源:经济参考报
需求:用户扫描二维码关注公众号,成功关注后才可以参与抽奖活动,当然,可以根据自己需求限定用户可抽奖次数。
实现思路:
利用微信公众平台生成带参数的二维码接口(需要认证服务号)生成临时二维码,场景值传递一个Key,用于识别用户。
当用户扫描二维码并关注公众号时,会触发关注公众号事件,微信会推送信息给微信公众平台基本配置中的“服务器地址”,该页面接收微信推送过来的信息保存到数据库,保存的信息包括openid、用户昵称(使用获取用户基本信息接口获取)和场景值Key
抽奖页面用户点击“已完成关注按钮”或者是定时读取数据库,通过Key查询数据库可以获得用户openid,将openid写入cookie,用户不再需要扫描即可开始抽奖。
function get_weixin_access_token($AppID, $AppSecret) {$url = \\\'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=\\\' . $AppID . \\\'&secret=\\\' . $AppSecret;$token = wp_remote_retrieve_body(wp_remote_get($url));$token = json_decode($token, true);return $token[\\\'access_token\\\'];}
这里的Get请求我是用WordPress函数wp_remote_get()来完成的,你可以用自己的CURL函数来替换。
function verifi_weixin_token($AppID, $AppSecret) {$url = \\\'https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=\\\' . get_option(\\\'weixin_token\\\');$ip = wp_remote_retrieve_body(wp_remote_get($url));$ip = json_decode($ip, true);if( empty($ip[\\\'ip_list\\\']) ) {$token = get_weixin_access_token($AppID, $AppSecret);update_option(\\\'weixin_token\\\', $token);}}
通过获取微信服务器IP接口可以判断Token是否有效,如果无效就获取Token,并保存到数据库,这里我是用的WordPress函数update_option()保存到了wp_options表。
function generate_weixin_code($key = \\\'\\\') {$url = \\\'https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=\\\' . get_option(\\\'weixin_token\\\');$data = array(\\\'expire_seconds\\\' => 600,\\\'action_name\\\' => \\\'QR_STR_SCENE\\\',\\\'action_info\\\' => array(\\\'scene\\\' => array(\\\'scene_str\\\' => $key)));$args = array(\\\'body\\\' => json_encode($data),);$ticket = wp_remote_retrieve_body(wp_remote_post($url, $args) );$ticket = json_decode($ticket, true);if( empty($ticket[\\\'ticket\\\']) ) return false;return \\\'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=\\\' . $ticket[\\\'ticket\\\'];}
这里我生成一个有效时间为10分钟的临时二维码,Post数据是用WordPress函数wp_remote_post()来完成的,微信二维码接口参数如下:
需要注意Post的数据为JSON格式,看上去像这样子:
{\\\"action_name\\\": \\\"QR_STR_SCENE\\\", \\\"action_info\\\": {\\\"scene\\\": {\\\"scene_str\\\": \\\"nspmq7ke\\\"}}}
注意action_info里是一个scene数组,包含scene_str值。
Post数据后实际上返回的是Ticket值,使用以下URL拼接就可以得到二维码图片:
https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=$ticket
当用户扫描生成的二维码并关注公众号后,微信会推送事件给我们在微信公众平台填写的服务器地址,该页面获取微信推送过来的信息并保存。
if( isset($_POST) ) {echo \\\' \\\'; //如果5秒内不返回数据,微信会重试3次推送,造成我们脚本多次执行//$postStr = $GLOBALS[\\\'HTTP_RAW_POST_DATA\\\'];$postStr = file_get_contents(\\\'php://input\\\'); //获取微信推送过来的XML数据if($postStr) {//解析XML$data = simplexml_load_string($postStr, \\\'SimpleXMLElement\\\', LIBXML_NOCDATA);//当事件为关注公众号事件时执行if($data->Event && $data->Event == \\\'subscribe\\\') {$FromUserName = $data->FromUserName; //openid$EventKey = $data->EventKey; //带前缀的Key$EventKey = ltrim($EventKey, \\\'qrscene_\\\'); //去掉前缀就是我们传递给微信的Key}}}
我们需要的数据一般就是openid和生成二维码时传递的Key,特别要注意,如果使用:
$GLOBALS[\\\'HTTP_RAW_POST_DATA\\\']
全局变量接收不到微信推送过来的信息,可能是主机限制的原因,需要使用:
file_get_contents(\\\'php://input\\\')
微信推送的参数如下:
<xml> <ToUserName><![CDATA[gh_fbe8a958756e]]></ToUserName> <FromUserName><![CDATA[otAzGjrS4AYCmeJM1GhEOcHXXTAo]]></FromUserName> <CreateTime>1433259128</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[subscribe]]></Event> <EventKey><![CDATA[scene|keystandard|keystr|extinfo]></EventKey></xml>
推送参数说明:
有了openid,就可以获取用户信息。
function get_weixin_userinfo($openid = \\\'\\\') {$url = \\\'https://api.weixin.qq.com/cgi-bin/user/info?access_token=\\\' . get_option(\\\'weixin_token\\\') . \\\'&openid=\\\' . $openid . \\\'&lang=zh_CN\\\';$info = wp_remote_retrieve_body(wp_remote_get($url));$info = json_decode($info, true);return $info;}
现在,我们数据库中有了用户的openid、Key、用户昵称,因为Key是在抽奖页面生成的,所以抽奖页面可以通过Key发出Ajax请求获取数据库中的用户openid并写入cookie
至于大转盘的实现,我用的是jquery.rotate插件,当然抽奖次数限制、中奖结果计算全部是在服务端完成的,前端只是象征性的转几下。
Demand feedback