微信公众号接口配置,并利用接口获取用户地理位置

作者:vkvi 来源:ITPOW(原创) 日期:2017-12-26

微信公众号获取用户地理位置有两种方法:

一是在进入微信公众号时获取,然后微信服务器将位置传到我们的服务器。

二是在公众号网页中,通过 JS-SDK 获取。

本文介绍的是第一种方法,第二种方法的部分内容请参见:微信 JS-SDK 使用入门

要实现第一种方式,首先是接口配置

一、做一个网页,其内容是:

放在我们的接口服务器上。

二、配置公众号

进入微信公众平台 -> 开发 -> 基本配置 -> 服务器配置。

公众号接口配置

这里面服务器地址填写我们的接口地址,令牌随机写,消息加解密密钥用在线生成的,加密方式暂时用明文吧,以免搞得太复杂。

然后保存,就会提示配置成功。

第一步那个网页是啥意思呢,其实在第二步保存时,微信服务器会访问我们第一步的网页,如果返回的不是 echostr 值,就会说配置失败。

这就让人想不通了,这第一步有啥意思呢,其实官方要我们搞第一步的目的是测试我们的签名算法是否正确,官方提供的代码是如果我们算出来的签名和微信服务器传过来的一致,就输出 echostr。而我们比较自信,觉得我们的算法不会出错,不需要测试,所以就直接输出 echostr 了。

服务器配置好之后,就是写接口文件了

一、这个接口文件,第一步校验签名

以上是 C# 的签名算法,微信这里的签名算法比较简单。

二、如果通过签名,就取业务数据

微信这里的业务数据是没参数的,所以不能用 Request.Form 取。

Xml 就是业务数据,至于是什么格式就得看微信传过来的是什么数据了,是消息数据?还是地理位置数据?

二、本文控讨的是地理位置数据,所以就按地理位置的格式来解析吧,格式示例如下:

三、输出 success

为什么要输出呢?如果不输出微信服务器会认为没处理成功,等一会儿他还会重试(好像是会重试 3 次)。

此时会冒出另一个问题

由于我们开启了接口,所以我们的一些公众号配置会失效,比如公众号菜单就会失效,这就需要我们要主动发送菜单给微信服务器。请参见:通过接口主动发送公众号自定义菜单

微信官方文档中关于本文的地址是:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1472017492_58YV5https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140841

 

相关文章