• 步骤一:绑定域名 注意不要加http://     步骤二:引入js文件 --在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.2.0.js   &...l...

     

    步骤一:绑定域名   注意不要加http://

     

     

    步骤二:引入js文件

    --在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.2.0.js

     

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


    步骤三:通过ajax获取参数,完成config接口注入权限验证配置

     

     

    --ajax请求

     

    $(function() {
    	
    	// 获取本页面的url
    	var url = location.href.split('#')[0];
    	$.ajax({
    		type : "GET",
    		url : "signature.action?url=" + url,
    		dataType:"json",
    		success : function(data) {
    			wx.config({
    				debug : true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    				appId: data.appid, // 必填,公众号的唯一标识
          	                        timestamp: data.timestamp,  // 必填,生成签名的时间戳
          	                        nonceStr: data.nonceStr,  // 必填,生成签名的随机串
          	                        signature: data.signature,   // 必填,签名,见附录1
    				jsApiList : [ 
    				                'checkJsApi',
    						'openLocation',// 使用微信内置地图查看地理位置接口
    						'getLocation' // 获取地理位置接口
    				]  // 必填,需要使用的JS接口列表
    			});
    		}
    	});
    	
    	});

     

    --后台代码

     

     

     

    注:jsapi-ticket的获取在前一节中讲过,这里就带过

     

    @RequestMapping(value = "signature", method = RequestMethod.GET)
    	@ResponseBody 
    	public Map<String, String> createSignature(@RequestParam String url) 
    	{
    	  System.out.println("RestFul of createSignature parameters url:"+url);
    	  
    	  return SignatureUtil.sign(tokenService.getJsapi_ticket(), url);
    	}

     

     

     

    public static Map<String, String> sign(String jsapi_ticket, String url) {
    	        Map<String, String> ret = new HashMap<String, String>();
    	        String nonce_str = create_nonce_str();
    	        String timestamp = create_timestamp();
    	        String str;
    	        String signature = "";
    	 
    	        //注意这里参数名必须全部小写,且必须有序
    	        str = "jsapi_ticket=" + jsapi_ticket +
    	                  "&noncestr=" + nonce_str +
    	                  "×tamp=" + timestamp +
    	                  "&url=" + url;
    	 
    	        try
    	        {
    	            MessageDigest crypt = MessageDigest.getInstance("SHA-1");
    	            crypt.reset();
    	            crypt.update(str.getBytes("UTF-8"));
    	            signature = byteToHex(crypt.digest());
    	        }
    	        catch (NoSuchAlgorithmException e)
    	        {
    	            e.printStackTrace();
    	        }
    	        catch (UnsupportedEncodingException e)
    	        {
    	            e.printStackTrace();
    	        }
    	 
    	        ret.put("url", url);
    	        ret.put("jsapi_ticket", jsapi_ticket);
    	        ret.put("nonceStr", nonce_str);
    	        ret.put("timestamp", timestamp);
    	        ret.put("signature", signature);
    	        ret.put("appid", WeChatInfo.WX_APPID);
    	 
    	        return ret;
    	    }
    	    
    	    private static String byteToHex(final byte[] hash) {
    	        Formatter formatter = new Formatter();
    	        for (byte b : hash)
    	        {
    	            formatter.format("%02x", b);
    	        }
    	        String result = formatter.toString();
    	        formatter.close();
    	        return result;
    	    }
    	 
    	    private static String create_nonce_str() {
    	        return UUID.randomUUID().toString();
    	    }
    	 
    	    private static String create_timestamp() {
    	        return Long.toString(System.currentTimeMillis() / 1000);
    	    }
    	     
    	    //获取当前系统时间 用来判断access_token是否过期
    	    public static String getTime(){
    	        Date dt=new Date();
    	        SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    	        return sdf.format(dt);
    	    }

     

    步骤四:通过ready接口处理成功验证

     

     

    wx.ready(function() {
    		// 获取用户位置
    		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; // 位置精度
    			},
    			fail : function(res) {
    				alert("获取位置失败");
    			}
    		});
    	});


    步骤五:通过error接口处理失败验证

     

    	wx.error(function(res) {
    		alert("获取凭据失败");
    	}); 

     

     

     

    展开全文
  • 在这篇微信公众平台开发教程中,我们将介绍如何在网页中获取用户的地理位置信息。 本文分为以下二个部分: 生成JS-SDK权限验证签名使用地理位置接口获取坐标   一、微信JS-SDK 1. 获得Access Token access ...
  • 微信开发,获取位置信息 2016-05-09 09:05:24
    怎么可以实现微信用户给公共号发送信息的同时,微信公共号获取到用户位置信息
  • 微信公众号开发基本流程 2019-04-26 09:40:21
    过年前后做了个微信公众号项目,已经过去一段时间了,抽空回忆总结下基本流程吧,不然很快估计自己就忘了。。 微信公众平台官网:https://mp.weixin.qq.com 文章目录一、注册公众号二、了解公众号管理页面三、必备...
  • 就自己研究了研究里面的一些内容,发现还挺有意思的,而且通过微信公众号可以调用一些比较有意思的接口,就比如百度开发服务平台 点击进入 里面的很有接口,就比较常见的翻译,语音识别,地理位置等等,都挺好的。...
  • 首先要了解,在做微信开发项目的时候,都是需要进行一个token验证的,微信服务端去验证你传来的token,校验通过之后,才能给你开放一些借口以便于你进行一些详细的读写操作,所以我们在做开发之前都是需要先通过微信...
  • 本文来自作者 jerry 在 GitChat 上分享「如何通过微信开发实现财富自由」,「阅读原文」查看交流实录 「文末高能」 编辑 | 嘉仔 相信很多人看到这个标题会想,简直是哗众取宠,标题党。 为什么...
  • 微信上做推广活动一般都是着眼于微信分享,这篇文章介绍如何在页面中加入微信分享的处理。本文使用语言为Java+js。
  • 微信开发之附近商家地理位置计算和腾讯地图坐标转百度地图坐标的方法 腾讯地图坐标转百度坐标 案例:本次开发的系统是一个商家联盟积分系统。在全国各地都有商家联盟的网点。 要求实现的功能 a.微信粉丝...
  • 微信申请退款API~~开发 2019-10-16 17:49:30
    之前有过微信开发的经验,但是第一次接触“微信退款“这一块的业务,查询了很多的博客资料以及走了很多的弯路。也发现“微信退款”分享的博客并不多。特地写了该博客,希望对你们有帮助。个人浅薄的见解 【稍微提...
  • GitChat 作者:极笔北客原文:为微信开发填坑:微信网页支付的开发流程及填坑技巧关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术 【不要错过文末彩蛋】 小程序作为微信之父张小龙钦点,并多次公开为之宣传...
  • 首先我们要先看一下文档 https://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html重点的话... 首先肯定的配置微信公众号里面的内容,这里就不多说了也就是域名,js域名,token,这方面的东西,...
  • 微信开发学习总结 2016-07-11 12:52:18
    微信开发项目学习总结
  • 微信网页获取用户信息 2014-10-03 12:57:19
    刚接触微信开发,想请教下大家,如何在微信的网页里去获取进来的用户基本信息 比如用户A,在我数据里已记录过,他就能看到网页里所有内容 用户B,没有在我数据库里有记录,那他只能看到一部分信息 我就先获取用户...
  • 在实际开发中,我们加入遇到了以下需求,用户操作数据会有相应的提醒,在微信里面的提醒,我想最适合不过的就是模板消息了吧。 开发之前 首先,模板消息,模板消息,肯定是需要模板才能往上面渲染数据,我们能做的...
  • 微信开发__入门 2016-05-31 17:38:04
    本文针对人群是有一定开发基础的人员,可以比较快的帮助你了解和学习微信开发. 其次是本文作者本次书写,全部采用的是个人的订阅号,假如是正常的开发流程,可能会存在不同,请读者注意. 本文代码部分主要提供的是...
  • 微信开发 微信支付 2015-01-06 13:39:33
    此处的微信支付是指微信支付V3版 如何确认自己申请的微信版本是V3版 1.基本9月20以后申请的微信支付均为V3版本 2.查看微信发送的邮件 若其中包含以下信息 商户ID、申请编号、登录帐号、登录密码、商户API密码 商户...
  • 希望肺炎早早过去,最近在家远程办公,想着在家咋也不能闲着是不,在家继续搬砖,刚好这段时间我们公司将微信公众平台的开发交给了me,在自我学习过程中,我将我在微信公众平台这块的学习写一个专栏,(以功能点为...
  • 摘要:微信小程序教程合集、微信小程序开发资源合集、微信小程序DEMO合集、微信小程序商店合集、微信小程序经验合集、微信小程序技巧合集 微信小程序开发工具 5款微信小程序开发工具使用报告 微信小...
  • 自学微信二次开发(1) 2016-03-15 20:12:46
    然后就能注册成功微信公众号了. 在注册微信公众号之后有两种模式,一个是编辑模式,还有一个就是开发者模式.编辑模式其实也是一个后台操作的过程,在编辑模式下基本上一些基本的功能都能实现,像关键字回复,被关注的...
1 2 3 4 5 ... 20
收藏数 24,087
精华内容 9,634