ASP.net 微信公众平台JSAPI获取地理位置

ASP.Net获取地理位置
  项目需求需要在公众号内获取用户的地理位置,查了很多资料,大部分都是php的代码,很少有ASP.NET的代码,网上的东西大部分都不全,而且很晦涩,实际上很简单,这里给后来的朋友做个指引。
  JSAPI(不仅仅是地理位置)实际上的机制是,后台获取授权并获取相关数据,并把授权后的内容传入前台的JS里,前台的JS微信已经封装好了,调用即可返回所需数据,而实际的操作过程是,用户进入公众号的时候提示授权地理位置,进入到页面的时候就可以获取到地理位置。

相关步骤:
一、获取授权并取得数据
 1、第一步设置JS接口安全域名:公众号设置 功能设置 JS接口安全域名 设为你的网站域名即可。
 2、第二步 由于此接口需要使用到access_token,所以要获取access_token需要设置IP白名单,需要到公众号里面把服务器的IP填写进去。
 3、第三步授权取数据
 首先开看下微信JS需要的数据(通过后台获取的内容):
 appId 这个是公众号里面的
 timestamp 时间戳
 nonceStr 随机串
 jsApiList
 这个就是你要用什么接口,必须事先声明 比如: jsApiList[‘getLocation’,’playVoice’] 就是说你想调用获取地理位置和播放语音接口,详见:微信官方,我们就用jsApiList[‘getLocation’],其他的不管
 signature
 这个是签名,稍微麻烦一点,具体的获取流程是:通过AppID和secret获取access_token,然后通过access_token获取jsapi_ticket,然后通过签名算法生成signature,这些数据的获取官方都有详细的文档,总得来说要写很多,不怕麻烦看一下官方的文档一个个得写完,我这里用了一个第三方的微信SDK,Senparc,可以在NuGet里搜索Senparc.Weixin.MP就可以,代码很简单

C#代码:
首先记得引用

然后是page_load方法

至此获取了全部所需的内容,如不使用第三方SDK则参考https://mp.weixin.qq.com/wiki?action=doc&id=mp1421141115&t=0.5267792197713446#62

二、前台配置JS,前面已经在后台获取了相关的数据,现在只需要传入前台
 1、在前台页面引入http://res.wx.qq.com/open/js/jweixin-1.2.0.js
 2、把后台获取的内容传递给前台JS变量

 3、调用JSAPI方法: