微信开发获得微信定位_微信开发定位 - CSDN
  • 在这篇微信公众平台开发教程中,我们将介绍如何在网页中获取用户的地理位置信息。 本文分为以下二个部分: ...access token的获得方法在前面有介绍,详情见 微信公众平台开发(26) ACCESS TOKEN 2. 获取jsapi_tic

    在这篇微信公众平台开发教程中,我们将介绍如何在网页中获取用户的地理位置信息。

    本文分为以下二个部分:

    1. 生成JS-SDK权限验证签名
    2. 使用地理位置接口获取坐标

     

    一、微信JS-SDK

    1. 获得Access Token

    access token的获得方法在前面有介绍,详情见 微信公众平台开发(26) ACCESS TOKEN

    2. 获取jsapi_ticket

    生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。

    参考以下文档获取access_token(有效期7200秒,开发者必须在自己的服务全局缓存access_token):
    用第一步拿到的access_token 采用http GET方式请求获得jsapi_ticket(有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket),接口地址如下

    https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi

    成功返回如下JSON:

    {
        "errcode":0,
        "errmsg":"ok",
        "ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA",
        "expires_in":7200
    }

    获得jsapi_ticket之后,就可以生成JS-SDK权限验证的签名了。

    3. 签名算法实现

    签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) 。对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。对string1作sha1加密,字段名和字段值都采用原始值,不进行URL 转义。

    即signature=sha1(string1)。 示例:

    noncestr=Wm3WZYTPz0wzccnW
    jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg
    timestamp=1414587457
    url=http://mp.weixin.qq.com?params=value

    步骤1. 对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1:

    jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW&timestamp=1414587457&url=http://mp.weixin.qq.com?params=value

    步骤2. 对string1进行sha1签名,得到signature:

    0f9de62fce790f9a083d5c99e95740ceb90c27ed

    完整代码如下

    复制代码
    <?php
    class JSSDK {
      private $appId;
      private $appSecret;
    
      public function __construct($appId, $appSecret) {
        $this->appId = $appId;
        $this->appSecret = $appSecret;
      }
    
      public function getSignPackage() {
        $jsapiTicket = $this->getJsApiTicket();
    
        // 注意 URL 一定要动态获取,不能 hardcode.
        $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
        $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
    
        $timestamp = time();
        $nonceStr = $this->createNonceStr();
    
        // 这里参数的顺序要按照 key 值 ASCII 码升序排序
        $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url";
    
        $signature = sha1($string);
    
        $signPackage = array(
          "appId"     => $this->appId,
          "nonceStr"  => $nonceStr,
          "timestamp" => $timestamp,
          "url"       => $url,
          "signature" => $signature,
          "rawString" => $string
        );
        return $signPackage; 
      }
    
      private function createNonceStr($length = 16) {
        $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        $str = "";
        for ($i = 0; $i < $length; $i++) {
          $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
        }
        return $str;
      }
    
      private function getJsApiTicket() {
        // jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例
        $data = json_decode(file_get_contents("jsapi_ticket.json"));
        if ($data->expire_time < time()) {
          $accessToken = $this->getAccessToken();
          // 如果是企业号用以下 URL 获取 ticket
          // $url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=$accessToken";
          $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken";
          $res = json_decode($this->httpGet($url));
          $ticket = $res->ticket;
          if ($ticket) {
            $data->expire_time = time() + 7000;
            $data->jsapi_ticket = $ticket;
            $fp = fopen("jsapi_ticket.json", "w");
            fwrite($fp, json_encode($data));
            fclose($fp);
          }
        } else {
          $ticket = $data->jsapi_ticket;
        }
    
        return $ticket;
      }
    
      private function getAccessToken() {
        // access_token 应该全局存储与更新,以下代码以写入到文件中做示例
        $data = json_decode(file_get_contents("access_token.json"));
        if ($data->expire_time < time()) {
          // 如果是企业号用以下URL获取access_token
          // $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret";
          $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";
          $res = json_decode($this->httpGet($url));
          $access_token = $res->access_token;
          if ($access_token) {
            $data->expire_time = time() + 7000;
            $data->access_token = $access_token;
            $fp = fopen("access_token.json", "w");
            fwrite($fp, json_encode($data));
            fclose($fp);
          }
        } else {
          $access_token = $data->access_token;
        }
        return $access_token;
      }
    
      private function httpGet($url) {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_TIMEOUT, 500);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($curl, CURLOPT_URL, $url);
    
        $res = curl_exec($curl);
        curl_close($curl);
    
        return $res;
      }
    }
    复制代码

     

    二、网页获得地理位置坐标

    1. 绑定域名

    先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

    2. 获取签名包

    <?php
    require_once "jssdk.php";
    $jssdk = new JSSDK("yourAppID", "yourAppSecret");
    $signPackage = $jssdk->GetSignPackage();
    ?>

    3. 引入JS文件

    在需要调用JS接口的页面引入如下JS文件,(支持https):

    <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

    4.通过config接口注入权限验证配置

    所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用。

    复制代码
     wx.config({
        debug: false,
        appId: '<?php echo $signPackage["appId"];?>',
        timestamp: <?php echo $signPackage["timestamp"];?>,
        nonceStr: '<?php echo $signPackage["nonceStr"];?>',
        signature: '<?php echo $signPackage["signature"];?>',
        jsApiList: [
            // 所有要调用的 API 都要加到这个列表中
            'checkJsApi',
            'openLocation',
            'getLocation'
          ]
    });
    复制代码

    5. 通过ready接口处理成功验证

    地理位置需要在页面加载时就调用,需要把相关接口放在ready函数中调用来确保正确执行

    wx.ready(function () {
    });

    5.1 通过checkJsApi判断当前客户端版本是否支持指定获取地理位置

    复制代码
    wx.checkJsApi({
        jsApiList: [
            'getLocation'
        ],
        success: function (res) {
            // alert(JSON.stringify(res));
            // alert(JSON.stringify(res.checkResult.getLocation));
            if (res.checkResult.getLocation == false) {
                alert('你的微信版本太低,不支持微信JS接口,请升级到最新的微信版本!');
                return;
            }
        }
    });
    复制代码

    5.2. 使用getLocation接口获取地理位置坐标

    复制代码
    wx.getLocation({
        success: function (res) {
            var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
            var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
            var speed = res.speed; // 速度,以米/每秒计
            var accuracy = res.accuracy; // 位置精度
        },
        cancel: function (res) {
            alert('用户拒绝授权获取地理位置');
        }
    });
    复制代码

     

    三、实现效果

    弹出请求获取页面

    JS成功获取地理位置参数

    展开全文
  • 微信定位使用access_token是普通access_token 下图的标红的位置记住必须要写这两个 二、微信定位代码实例 服务端代码 下方需要的类cardSignature:https://blog.csdn.net/cl11992/article/details/86589656 /...

    一、介绍

    微信不支持服务端定位,只有JS接口进行实现定位,在这里面记录一下

    二、注意

    1. 微信定位使用access_token是普通access_token
    2. 下图的标红的位置记住必须要写这两个

    二、微信定位代码实例

    服务端代码

    下方需要的类cardSignature:https://blog.csdn.net/cl11992/article/details/86589656

    /**
     * 定位
     */
    @ProductException
    @RequestMapping(value = "location")
    public ModelAndView location(HttpServletRequest request, HttpServletResponse response) throws Exception {
    	ModelAndView mv = new ModelAndView("wx/location");// 微信定位页面
    	// 定位
    	String appid = "XXXXXXXXX";//公众号appid
    
    	mv.addObject("config", cardSignature.getSignature(request, appid));
    	return mv;
    }

    location.html

    进入页面自动调用微信定位,查看控制台可以看到微信经度和微信纬度

    <body>
    	<script type="text/javascript" src="${ctx}/js/common/jquery-1.11.3.min.js"></script> 
    	<script type="text/javascript" src="${ctx}/js/JS-SDK.js"></script>
    	<script>
    		wxobj.getLocation(function(longitude, latitude) {
    		    console.log("微信经度:"+longitude);
    		    console.log("微信纬度:"+latitude);
    	    });
    	</script>
    </body>

    JS-SDK.js

    ##  微信接口
    <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
    <script type="text/javascript">
    	var wxobj = {
    		//位置服务
    		getLocation : function(callback){
    			//判断当前客户端版本是否支持指定JS接口
    			wx.ready(function(){
    			    // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
    				wx.checkJsApi({
    					jsApiList: ['getLocation'],
    					success: function(res) {
    						// 以键值对的形式返回,可用的api值true,不可用为false
    						//如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
    						if (res.checkResult.scanQRCode == false) {
    							alert('你的微信版本太低,不支持微信JS接口,请升级到最新的微信版本!');
    				            return;
    						}
    						if (res.checkResult.getLocation == false) {
    				            alert('你的微信版本太低,不支持微信JS接口,请升级到最新的微信版本!');
    				            return;
    						}
    						wx.getLocation({
    							type: 'wgs84',						// 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
    						    success: function (res) {
    								try{
    							    	console.log("微信data"+res);
    									var latitude = res.latitude; 	// 纬度,浮点数,范围为90 ~ -90
    									var speed = res.speed; 			// 速度,以米/每秒计
    									var accuracy = res.accuracy; 	// 位置精度
    									var longitude = res.longitude;  // 经度,浮点数,范围为180 ~ -180。
    									
    									console.log("微信经度:"+longitude);
    									console.log("微信纬度:"+latitude);
    									
    									callback(longitude, latitude);
    						   		}catch(error){
    						   			alert('解析地理位置错误');
    						   		}
    							},
    							cancel: function (res) {
    						       	alert('用户拒绝授权获取地理位置');
    							},
    							fail:function(res) {
    							    //alert(JSON.stringify(res));
    							    alert("未能获取地理位置,首先检查手机是否启用微信定位");
    							}
    						});
    				       
    				   }
    				});
    			});
    		}
    	};
    	jQuery(function(){ 
    		wx.config({
    		  //  debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    		    appId: '$config.appId', // 必填,公众号的唯一标识
    		    timestamp: '$config.timestamp', // 必填,生成签名的时间戳
    		    nonceStr: '$config.nonceStr', // 必填,生成签名的随机串
    		    signature: '$config.signature',// 必填,签名,见附录1
    		    jsApiList: ['openLocation','getLocation'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
    		});
    		//wx.ready(function(){
    		    // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
    		//});
    		//wx.error(function(res){
    		    // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
    		//});
    		//判断当前客户端版本是否支持指定JS接口
    		//wx.checkJsApi({
    		//    jsApiList: ['chooseImage'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
    		 //   success: function(res) {
    		        // 以键值对的形式返回,可用的api值true,不可用为false
    		        // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
    		  //  }
    		//});
    		
    	});
    </script>
    

     

    展开全文
  • 个人微信开发api文档

    2019-07-14 15:15:09
    个人微信开发api文档,个人微信开发sdk,个人微信开发协议接口 微信开发sdk服务端调用接口 1、基础消息类型 1、客户端发送的心跳包 HeartBeatReq = 1001; 2、消息接收确认回复(接收或拒绝接收) MsgReceivedAck = ...

    个人微信开发api文档,个人微信开发sdk,个人微信开发协议接口
    微信开发sdk服务端调用接口
    1、基础消息类型
    1、客户端发送的心跳包 HeartBeatReq = 1001;

    2、消息接收确认回复(接收或拒绝接收) MsgReceivedAck = 1002;

    3、错误单独提升为一种消息类型 Error = 1003;

    2、设备客户端授权类消息

    1、设备(手机客户端、客服客户端)获取通信token请求 DeviceAuthReq = 1010;

    2、设备(手机客户端、客服客户端)获取通信token响应 DeviceAuthRsp = 1011;

    3、设备授权后退出(仅用于服务端内部) DeviceExitNotice = 1012;

    4、账号强制下线通知 AccountForceOfflineNotice = 1013;

    个人微信开发api文档,个人微信开发sdk,个人微信开发协议接口
    3、手机客户端上传的通知类消息

    1、手机客户端微信上线通知 WeChatOnlineNotice = 1020;

    2、手机客户端微信下线通知 WeChatOfflineNotice = 1021;

    3、微信个人号新增好友通知 FriendAddNotice = 1022;

    4、微信个人号移除好友通知 FriendDelNotice = 1023;

    5、微信好友发来聊天消息 FriendTalkNotice = 1024;

    6、任务执行结果通知 TaskResultNotice = 1025;

    7、手机上回复好友的聊天消息 WeChatTalkToFriendNotice = 1026;

    8、有好友请求添加好友的通知 FriendAddReqeustNotice = 1027;

    9、手机端向服务端通知聊天执行结果 TalkToFriendTaskResultNotice = 1028;

    10、图片或视频消息的详细内容结果 RequestTalkDetailTaskResultNotice = 1029;

    11、上传手机客户端上微信的二维码 PullWeChatQrCodeTaskResultNotice = 1030;

    12、手机上发送了朋友圈通知 CircleNewPublishNotice = 1031;

    13、手机上删除朋友圈通知 CircleDelNotice = 1032;

    14、手机检测到有人点赞/取消点赞通知 CircleLikeNotice = 1033;

    15、手机检测到有人评论/删除朋友圈通知 CircleCommentNotice = 1034;

    16、消息标记为已读 PostMessageReadNotice = 1035;

    17、联系人信息上传 ContactsInfoNotice = 1036;

    18、群聊新增通知 ChatRoomAddNotice = 1037;

    19、联系人标签新增,修改通知 ContactLabelAddNotice = 1038;

    20、收钱任务执行结果通知 TakeMoneyTaskResultNotice = 1039;

    21、朋友圈图片上传 CircleDetailNotice = 1040;

    22、群聊删除通知 ChatRoomDelNotice = 1041;

    23、群聊信息变更通知 ChatRoomChangedNotice = 1042;

    24、群二维码 PullChatRoomQrCodeTaskResultNotice = 1043;

    个人微信开发api文档,个人微信开发sdk,个人微信开发协议接口
    4、服务端、客服客户端发给设备的指令类消息

    1、给好友发消息任务 TalkToFriendTask = 1070;

    2、发送朋友圈任务 PostSNSNewsTask = 1071;

    3、主动添加好友任务 AddFriendsTask = 1072;

    4、发送朋友圈任务后数据回传 PostSNSNewsTaskResultNotice = 1073;

    5、删除朋友圈 DeleteSNSNewsTask = 1074;

    6、客户端或者服务端接受好友请求通知 AcceptFriendAddRequestTask = 1075;

    7、群发消息任务 WeChatGroupSendTask = 1076;

    8、执行养号动作命令 WeChatMaintenanceTask = 1077;

    9、请求图片或视频消息的详细内容 RequestTalkDetailTask = 1078;

    10、服务端主动要求手机上传当前登录的微信二维码 PullWeChatQrCodeTask = 1079;

    11、触发手机推送好友列表任务 TriggerFriendPushTask = 1080;

    12、触发手机推送朋友圈列表任务 TriggerCirclePushTask = 1081;

    13、朋友圈评论删除任务 CircleCommentDeleteTask = 1082;

    14、朋友圈评论删除任务反馈 CircleCommentDeleteTaskResultNotice = 1083;

    15、朋友圈评论回复任务 CircleCommentReplyTask = 1084;

    16、朋友圈评论回复反馈 CircleCommentReplyTaskResultNotice = 1085;

    17、通知手机将某个聊天窗口置为已读 TriggerMessageReadTask = 1086;

    18、消息撤回 RevokeMessageTask = 1087;

    19、转发消息 ForwardMessageTask = 1088;

    20、通知手机推送聊天记录 TriggerHistoryMsgPushTask = 1089;

    21、获取群聊二维码 PullChatRoomQrCodeTask = 1090;

    个人微信开发api文档,个人微信开发sdk,个人微信开发协议接口
    5、服务端通知执行的命令

    1、服务端通知pc客户版本升级 UpgradeAppNotice = 1093;

    2、通知手机客户端软件升级 UpgradeDeviceAppNotice = 1094;

    3、清粉任务 PostFriendDetectTask = 1095;

    4、终止清粉任务 PostStopFriendDetectTask = 1096;

    5、删除设备通知 PostDeleteDeviceNotice = 1097;

    6、朋友圈点赞任务 PostMomentsPraiseTask = 1098;

    7、停止朋友圈点赞任务 PostStopMomentsPraiseTask = 1099;

    8、养号任务停止 PostStopWeChatMaintenanceTask = 1100;

    9、修改备注任务 ModifyFriendMemoTask = 1101;

    10、领取红包或转账 TakeLuckyMoneyTask = 1200;

    11、获取指定好友朋友圈 PullFriendCircleTask = 1201;

    12、获取朋友圈图片 PullCircleDetailTask = 1202;

    13、单条朋友圈点赞任务 CircleLikeTask = 1203;

    14、触发手机推送群聊列表 TriggerChatroomPushTask = 1210;

    15、请求具体群聊的详细信息 RequestChatRoomInfoTask = 1211;

    16、获取联系人详细信息(不一定是好友,如群聊成员) RequestContactsInfoTask = 1212;

    17、群聊管理 ChatRoomActionTask = 1213;

    18、群内加好友 AddFriendInChatRoomTask = 1214;

    19、通讯录加好友 AddFriendFromPhonebookTask = 1215;

    20、删除好友 DeleteFriendTask = 1216;

    21、发红包 SendLuckyMoneyTask = 1217;

    22、获取聊天消息的原始内容(主要是xml内容) RequestTalkContentTask = 1218;

    23、返回聊天消息的原始内容 RequestTalkContentTaskResultNotice = 1219;

    24、转发消息内容 ForwardMessageByContentTask = 1220;

    个人微信开发api文档,个人微信开发sdk,个人微信开发协议接口
    6、手机端主动发出的交互类消息

    1、手机端推送好友列表 FriendPushNotice = 2026;

    2、手机端推送当前安装版本 PostDeviceInfoNotice = 2027;

    3、手机端回传检测清粉好友数 PostFriendDetectCountNotice = 2028;

    4、手机回传朋友圈数据 CirclePushNotice = 2029;

    5、手机回传朋友圈点赞数量 PostMomentsPraiseCountNotice = 2030;

    9、手机端推送群聊列表 ChatroomPushNotice = 2031;

    7、手机端推送标签列表 ContactLabelInfoNotice = 2032;

    8、推送历史消息 HistoryMsgPushNotice = 2033;

    9、群成员(陌生人)信息 ChatRoomMembersNotice = 2034;

    个人微信开发api文档,个人微信开发sdk,个人微信开发协议接口
    case HeartBeatReq: {// 客户端发送的心跳包
    heartBeatReqHandler.handleMsg(ctx, msgVo);
    break;
    }
    case DeviceAuthReq: {// 设备客户端授权 设备(手机客户端、客服客户端)获取通信token请求
    deviceAuthReqHandler.handleMsg(ctx, msgVo);
    break;
    }
    case AccountForceOfflineNotice: {// 设备账号强制下线通知
    accountForceOfflineNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    ///////// 手机客户端通知类消息 start///////////
    case WeChatOnlineNotice: {// 手机客户端微信上线通知
    weChatOnlineNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case WeChatOfflineNotice: {// 手机客户端微信下线通知
    weChatOfflineNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case FriendAddNotice: {// 微信个人号新增好友通知
    friendAddNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case FriendDelNotice: {// 微信个人号移除好友通知
    friendDelNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case FriendTalkNotice: {// 微信好友发来聊天消息
    friendTalkNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case TaskResultNotice: {// 任务执行结果通知
    taskResultNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case WeChatTalkToFriendNotice: {// 手机上回复好友的聊天消息
    weChatTalkToFriendNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case FriendAddReqeustNotice: {// 有好友请求添加好友的通知
    friendAddReqeustNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case TalkToFriendTaskResultNotice: {// 手机端向服务端通知聊天执行结果
    talkToFriendTaskResultNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case RequestTalkDetailTaskResultNotice: {// 图片或视频消息的详细内容结果
    requestTalkDetailTaskResultNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case PullWeChatQrCodeTaskResultNotice: {// 上传手机客户端上微信的二维码
    pullWeChatQrCodeTaskResultNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case CircleNewPublishNotice: {// 手机上发送了朋友圈通知
    circleNewPublishNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case CircleDelNotice: {// 手机上删除朋友圈通知
    circleDelNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case CircleLikeNotice: {// 手机检测到有人点赞/取消点赞通知
    circleLikeNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case CircleCommentNotice: {// 手机检测到有人评论/删除朋友圈通知
    circleCommentNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case CircleCommentReplyTaskResultNotice: {// 朋友圈评论回复反馈
    circleCommentReplyTaskResultNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case CircleCommentDeleteTaskResultNotice: {// 朋友圈评论删除任务反馈
    circleCommentDeleteTaskResultNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case PostFriendDetectCountNotice: {// 手机端回传检测清粉好友数
    postFriendDetectCountNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case CirclePushNotice: {// 手机回传朋友圈数据
    circlePushNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case PostMomentsPraiseCountNotice: {// 手机回传朋友圈点赞数
    postMomentsPraiseCountNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case PostMessageReadNotice: {// 手机端微信 消息标记为已读
    postMessageReadNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    ///////////////////// 手机客户端通知类消息 end////////////////
    //////////////////////客服pc客户端发给设备的指令类消息 start//////////////////////////
    case TalkToFriendTask: {// 给好友发消息任务
    talkToFriendTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case PostSNSNewsTask: {// 发送朋友圈任务
    postSNSNewsTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case AddFriendsTask: {// 主动添加好友任务
    addFriendsTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case PostSNSNewsTaskResultNotice: {// 发送朋友圈任务后数据回传
    postSNSNewsTaskResultNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case DeleteSNSNewsTask: {// 删除朋友圈
    deleteSNSNewsTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case AcceptFriendAddRequestTask: {// 客户端或者服务端接受好友请求通知
    acceptFriendAddRequestTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case WeChatGroupSendTask: {// 群发消息任务
    weChatGroupSendTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case WeChatMaintenanceTask: {// 执行养号动作命令
    weChatMaintenanceTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case PostStopWeChatMaintenanceTask: {// 养号任务停止
    postStopWeChatMaintenanceTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case RequestTalkDetailTask: {// 请求图片或视频消息的详细内容
    requestTalkDetailTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case PullWeChatQrCodeTask: {// 服务端主动要求手机上传当前登录的微信二维码
    pullWeChatQrCodeTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case TriggerFriendPushTask: {// 触发手机推送好友列表任务
    triggerFriendPushTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case FriendPushNotice: {// 手机端推送好友列表
    friendPushNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case TriggerCirclePushTask: {// 触发手机推送朋友圈列表任务
    triggerCirclePushTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case CircleCommentDeleteTask: {// 朋友圈评论删除任务
    circleCommentDeleteTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case CircleCommentReplyTask: {// 朋友圈评论回复任务
    circleCommentReplyTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case PostFriendDetectTask: {// 清粉任务
    postFriendDetectTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case PostStopFriendDetectTask: {// 终止清粉任务
    postStopFriendDetectTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case PostMomentsPraiseTask: {// 朋友圈点赞任务
    postMomentsPraiseTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case PostStopMomentsPraiseTask: {// 停止朋友圈点赞任务
    postStopMomentsPraiseTaskHandler.handleMsg(ctx, msgVo);
    break;
    }
    case GetWeChatsReq: {// 拉取当前微信个人号列表请求
    getWeChatsReqHandler.handleMsg(ctx, msgVo);
    break;
    }
    case SyncFriendMessageAsyncReq: {// 同步好友消息数据请求
    syncFriendMessageAsyncReqHandler.handleMsg(ctx, msgVo);
    break;
    }
    case AccountLogoutNotice: {//pc客户端退出通知
    accountLogoutNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case WeChatLoginNotice: {//pc客户端选择微信号登陆/登出通知
    weChatLoginNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    case ReadChatMessageNotice: {//pc客户端 标记消息已读
    readChatMessageNoticeHandler.handleMsg(ctx, msgVo);
    break;
    }
    /////////客服客户端发给设备的指令类消息 end//////////////////////////
    //////////////其他公共消息处理start//////////////////////////////////////
    case MsgReceivedAck: {//消息接收确认回复(接收或拒绝接收)
    msgReceivedAckHandler.handleMsg(ctx, msgVo);
    break;
    }

    个人微信开发api文档,个人微信开发sdk,个人微信开发协议接口,SDK的功能API列表

    微信加好友功能API

    1、导入手机通讯录

    2、手机通讯录加好友

    3、加指定微信群好友

    4、自动通过微信好友请求

    5、手机模拟定位

    6、附近人加好友

    7、各种账号加好友(QQ号、手机号、微信号)

    8、陌陌自动回复引流加好友

    9、探探自动回复引流加好友

    10、摇一摇打招呼加好友

    个人微信开发api文档,个人微信开发sdk,个人微信开发协议接口
    微信群发功能API

    1、微信群发好友(文字、图片、长短视频、链接、名片)

    2、微信群发群(文字、图片、长短视频、链接、名片)

    3、微信群发收藏(文字、图片、长短视频、链接、名片)

    4、按标签群发、指定好友群发

    个人微信开发api文档,个人微信开发sdk,个人微信开发协议接口
    微信群管理功能API

    1、入群欢迎语

    2、指定群管理员

    3、群管理统计(活跃度、发言数、总人数、邀请数、退出数等)

    4、群管理员踢人、群消息警告

    5、群关键词回复,群智能客服

    6、建群、拉人功能接口

    7、多群消息同步

    8、群成员关系链

    9、群二维码、群公告

    10、群资料整理

    个人微信开发api文档,个人微信开发sdk,个人微信开发协议接口
    微信营销功能API

    1、发朋友圈(图文、链接、长短视频)

    2、发长视频到微信朋友圈

    3、朋友圈点赞,按比例点赞,按数量点赞

    4、发漂流瓶信息

    5、智能自动回复

    6、同步指定微信好友朋友圈

    7、红包、转账

    个人微信开发api文档,个人微信开发sdk,个人微信开发协议接口
    微信聊天对话功能API

    1、微信上线通知

    2、微信下线通知

    3、微信新增好友通知

    4、微信删除好友通知

    5、微信好友发来信息通知

    6、回复微信好友聊天消息、聊天消息撤回

    7、聊天执行结果通知

    8、获取微信通讯录好友列表

    9、获取群列表

    10、好友请求添加好友的通知

    11、获取手机客户端上微信的二维码

    个人微信开发api文档,个人微信开发sdk,个人微信开发协议接口
    微信营销辅助工具API

    1、打开微信

    2、定时执行任务

    3、任务执行结果通知

    4、清理僵尸粉

    5、清理微信空间

    6、智能随机养号

    7、智能抢红包服务

    8、微信运动智能点赞

    9、提取指定朋友圈内容

    10、关注指定公众号

    个人微信开发api文档,个人微信开发sdk,个人微信开发协议接口
    永久地址 https://www.wuliaokankan.cn/url301/138.html

    转载于:https://www.cnblogs.com/wuliaokankan/p/10912926.html

    展开全文
  • 之前在微信企业号开发:微信考勤中使用了百度地图的定位组件,但发现在部分手机上会出现定位失败的提示,于是有研究了一下百度地图。原来使用的Web组件百度不打算更新了,也是重新查了一下百度地图的其他API,还有一...

        之前在微信企业号开发:微信考勤中使用了百度地图的定位组件,但发现在部分手机上会出现定位失败的提示,于是有研究了一下百度地图。原来使用的Web组件百度不打算更新了,也是重新查了一下百度地图的其他API,还有一个JavaScript API大众版,于是试了试,没想到竟然解决了。

      核心代码很简单:

    <div id="allmap"></div>
     <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=kkkk"></script>
     <script type="text/javascript">
        // 百度地图API功能
        var map = new BMap.Map("allmap");
        var circle = new BMap.Geolocation();
        circle.getCurrentPosition(locationResult); //
        map.addOverlay(circle);
        function locationResult(geolocationResult) {
            var Status = this.getStatus()
            if (Status == 0)//检索成功。对应数值“0”。
            {
                $("#lng").val(geolocationResult.point.lng);
                $("#lat").val(geolocationResult.point.lat);
                var address = geolocationResult.address;
                $("#city").val(address.city);
                $("#district").val(address.district);
                $("#street").val(address.street);
                $("#address").val(address.province + address.city + address.district + address.street + address.street_number);
            }
            else {
                alert("定位失败错误码" + Status)
            }
        }
    
    </script>

    实现效果


    展开全文
  • 那么,我们怎么去获取用户的地理位置定位呢?  可以采用百度地图接口获取用户的地理位置定位。要使用该服务,你得先注册成为百度地图开发者。http://lbsyun.baidu.com/ 百度地图开放平台地址  注册成为开发者后...
  • 在本篇博客之前,博主已经写了4篇关于微信相关文章,其中三篇是本文基础:1、微信开发之入门教程,该文章详细讲解了企业号体验号免费申请与一些必要的配置,以及如何调用微信接口。2、微信开发之通过代理调试本地...
  • 微信公众平台开发定位导航功能是会员日常生活中不可缺少的查询导航工具。它给会员提供了更为快捷和全面的服务,会员可以通过我们的官方微信导航到自己想要去的地方,方便会员的出行。它可以提高会员对我们官方微信...
  • 最近在做微信公众号网页开发,遇到两个需要用到微信的JSSDK,上传图片和自动定位微信开发者文档有详细的步奏内容,链接点击进入微信开发者文档,也可以看看我这篇文章,看我是如何实现的。 首先第一步,需要在...
  • 接触微信公众帐号已经有两个多月的时间了,在这期间,除了陆续完善个人公众帐号xiaoqrobot以外,还带领团队为公司开发了两个企业应用:一个是普通类型的公众帐号,另一个是会议类型的公众帐号。经过这3个公众帐号的...
  • 如果你要开发自己的微信小程序或者小游戏,微信开发者工具是必不可少的,因为有些微信封装的方法只有微信开发者工具上才能使用,还有一个重要的原因就是,我们提交我们的代码审核必须通过该工具来提交,所有要做微信...
  • 这个其实在18年都不是问题,因为微信定位的不准,我们可以选择直接用地图的获取当前经纬度的方法,还是很准的,但是微信更新后我发现在微信浏览器中都不能使用其他地图的定位功能了,这里我自己是测试了百度和腾讯...
  • C#微信开发

    2017-12-24 10:35:37
    C#开发微信门户及应用教程   作者:伍华聪   C#开发微信门户及应用(1)--开始使用微信接口 6 1、微信账号 6 2、微信菜单定义 7 3、接入微信的链接处理 8 4、使用开发方式创建菜单 14 5、我创建的菜单案例 17 C#...
  • 关于手机端的浏览器的兼容性问题相信一直是开发者们的一块心病,对于微信开发前端组件这一块总是找不到合适的移动端组件,什么都要自己去实现,这个开发成本就大了去了。于是乎博主打算另辟蹊径,找找基于微信开发的...
  • 项目中需要使用到定位功能,定位用户所在的省市,并自动填充到省市的选择列表中,微信开发中,定位功能直接使用微信提供的接口,方便并且简单,兼容性相对好处理 因为微信定位或者百度地图的定位都是先通过定位获取...
  • 【课程内容】Java微信二次开发微信验证Java微信二次开发智能机器人java微信二次开发微信公众号平台基于java的微信订阅号自动回复接口基于java的微信二次开发必备要素基于java的微信二次开发智能机器人基于java的微信...
  • 不会的朋友可以看看《微信开发-初级接入微信公众平台MP》2. 引用微信js-sdk, http://res.wx.qq.com/open/js/jweixin-1.0.0.js,然后通过config接口注入权限验证配置。先在自己的服务器上写个获取数据的接口:[html...
  • 最近项目组在开发一款运行在微信小游戏环境的斗地主游戏,项目的第一个版本收尾阶段突然出现了一个奇怪的bug,因为之前开发阶段的测试都是在浏览器以及微信开发工具上的模拟器进行的测试,所以直到临近项目上线才...
  • 微信小程序源代码,小程序地图定位利用微信定位实现导航,微信小程序开发,微信小程序之地图定位源码。
  • 升级ios10 后,微信开发 html5 获取不到定位,请问各位有遇到过吗?
1 2 3 4 5 ... 20
收藏数 45,288
精华内容 18,115
关键字:

微信开发获得微信定位