以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  微信中获取用户的地理位置  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100204)

--  作者:ap9709130
--  发布时间:2017/5/6 18:11:00
--  微信中获取用户的地理位置
我正在设计送货确认的页面,页面中有个确认的按钮,用户确认后跳转到另外一个页面,在这个页面中想要获取当前用户的位置。是企业号的应用。今天怎么不能成功,请帮忙看看是什么原因。代码如下:
Dim e As RequestEventArgs = args(0)
Dim wbiz As New WXBizCrypt("wxa0545235324",Functions.Execute("GetQYAccessToken"),"6ueATjEId-mVYliF0HxdnwdA5BPPsdgsadgdgasdsadasdfad")
If e.Request.HttpMethod = "GET"
    Dim ret As Integer = wbiz.CheckQYSignature(e)
    If ret <> 0 Then \'如果接入验证失败
        Dim err As String = wbiz.GetErorDesc(ret) \'获取错误描述
    End If
ElseIf e.Request.HttpMethod = "Post"            \'
    Dim st As New Date(1970,1,1,8,0,0)
    Dim msg  As String = wbiz.DecryptMsg(e) \'解密
    If  IsNumeric(msg) Then \'如果解密
        MessageBox.show(msg)
        Dim err As String = wbiz.GetErorDesc(CInt(msg)) \'获取错误描述
        MessageBox.show(err)
        Return ""
    End If 
End If

用这个代码,会解密出错。msg 的值 为:-4004, 错误为:AESKEY非法。 我都是按帮助的说明做的,不知道哪里出错了!

--  作者:有点色
--  发布时间:2017/5/7 15:23:00
--  

你在网页上跳转的,那和你上面的代码没有任何关系。参考

 

http://www.foxtable.com/mobilehelp/scr/0237.htm

 

http://www.foxtable.com/mobilehelp/scr/0236.htm

 


--  作者:ap9709130
--  发布时间:2017/5/9 17:50:00
--  
老师

帮忙关于这个看的真的不是很懂,请教如下:
我已经用你的方法合成了按键的url,并且在服务器端能解析出 Useerid ,但还是不知道怎么才能知道他的位置,后面的代码要怎么写?

If e.GetValues.ContainsKey("code") Then \'如果通过授权链接跳转而来,就根据传递过来的code参数调用接口,获取用户的UserId
    Dim ul As String  = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token={0}&code={1}"
    ul = CExp(ul,Functions.Execute("GetQYAccessToken"),e.GetValues("code"))
    Dim hc As new HttpClient(ul)
    Dim jo As JObject = JObject.Parse(hc.GetData)
    If jo("UserId") IsNot Nothing Then
        name = jo("UserId")
    End If
end if

jo("UserId") 是对的,但是怎么才能知道他的位置呢?后面的代码要怎么写?


--  作者:有点色
--  发布时间:2017/5/9 18:18:00
--  

 用户的地理位置,不是获取的,是微信给你推送的,每次推送的时候,你可以在httpRequest那里获取值,并保存到你的数据库里。

 

 需要的时候,直接查找数据库得到

 

https://mp.weixin.qq.com/wiki/8/1b86529d05db9f960e48c3c7ca5be288.html

 

http://www.foxtable.com/mobilehelp/scr/0187.htm

 


--  作者:有点色
--  发布时间:2017/5/9 18:21:00
--  

 换一种方式,你用jssdk获取也行,参考

 

https://mp.weixin.qq.com/wiki?action=doc&id=mp1421141115&t=0.8138827698946394#dlwz

 

http://www.foxtable.com/mobilehelp/scr/0247.htm

 


--  作者:ap9709130
--  发布时间:2017/5/9 21:10:00
--  
老师

关于推送方面真的看的不是很懂。比如我现在做的是企业号,在菜单中有个按纽  名称为:送货确定  ,当有人按这个送货确定时,我现在已经可以知道他的USERID ,但同时我还想知道他的位置,这种可以实现吗?要怎么写代码?

能不能帮我写个头,帮忙我已经看了很多次了,只是没有想明白。多谢!

--  作者:有点蓝
--  发布时间:2017/5/9 22:10:00
--  
微信不支持你主动去获取用户的地理位置。只能被动获取:https://work.weixin.qq.com/api/doc#10427/上报地理位置

一般用户进入应用会提示是否允许上报地理位置,如果允许,那么每5秒上报一次地理位置,你可以在回调接口把接收的地理消息数据保存起来,然后通过地图接口查看某个保存的时间点用户在什么地方:https://work.weixin.qq.com/api/doc#10029/使用企业微信内置地图查看位置接口

如果用户选择拒绝上报,是没有办法获取他的位置的

--  作者:有点色
--  发布时间:2017/5/10 9:32:00
--  
以下是引用ap9709130在2017/5/9 21:10:00的发言:
老师

关于推送方面真的看的不是很懂。比如我现在做的是企业号,在菜单中有个按纽  名称为:送货确定  ,当有人按这个送货确定时,我现在已经可以知道他的USERID ,但同时我还想知道他的位置,这种可以实现吗?要怎么写代码?

能不能帮我写个头,帮忙我已经看了很多次了,只是没有想明白。多谢!

 

如果是在微信里面浏览器的网页的话,你可以用js获取获取地理位置, 具体看5楼的帮助文档。

 

获取到值以后,填入文本框,最后一起提交到服务器不就好了?


--  作者:ap9709130
--  发布时间:2017/5/10 22:40:00
--  
终于搞懂了。也成功了。多谢!老师
--  作者:有点色
--  发布时间:2017/5/11 1:07:00
--  
以下是引用ap9709130在2017/5/10 22:40:00的发言:
终于搞懂了。也成功了。多谢!老师

 

好东西要大家分享,你怎么做的?