以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助:微信开发,文本框字数控制和openid获取 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100790) |
-- 作者:qwz405 -- 发布时间:2017/5/18 14:50:00 -- 求助:微信开发,文本框字数控制和openid获取 1.虽然文本框有提示:输入多少字数的内容。但若使用者超出字数,还是会提交,服务器就会报错,操作中断。 请教:如何控制当输入超出时,中断提交并报错。 2.请教:是否可以在使用者提交时,获取对方的:Openid、国家、城市、省份、地理位置等信息。 3.网页代码: Dim e As RequestEventArgs = args(0) Dim wb As New weui wb.AddPageTitle("","message","用户留言","***有限公司") \'标题 If e.PostValues.Count = 0 Then \'生成用户留言网页 wb.AddTopTips("","toptip1","留言内容/联系电话,必须填写数据!") \'用于显示动态错误提示 wb.AddForm("","form1","s50000_message.htm").Attribute="" \'表单...submit-->接收此表单数据页面为:s50000_message.htm...使用js脚本文件,判断是否有输入完整数据 With wb.AddInputGroup("form1","ipg1","留言内容") .AddTextArea("留言内容",5).Placeholder = "请输入200字以内的内容." End With With wb.AddInputGroup("form1","ipg2") \'.AddInput("留言内容","留言内容","text") .AddInput("联系电话","联系电话","text").Placeholder = "请输入15字以内的内容." .AddInput("联系地址","联系地址","text").Placeholder = "请输入50字以内的内容." .AddInput("电子邮箱","电子邮箱","text").Placeholder = "请输入30字以内的内容." End With With wb.AddButtonGroup("form1","btg1",True) .Add("btn1", "留言", "submit") \'.Add("btn2", "返回","***") End With Else \'保存新增的订单 Dim dr As DataRow = DataTables("用户留言").AddNew() Dim nms() As String = {"留言内容","联系电话","联系地址","电子邮箱"} For Each nm As String In nms dr(nm) = e.PostValues(nm) Next dr("留言时间") = Date.Now() dr.Save() With wb.AddMsgPage("","msgpage","留言成功", "我们会尽快与您取得联系!") \'留言成功成功提示信息 .AddButton("btn1","继续增加","s50000_message.htm") \'.AddButton("btn1","返回列表","list.htm") End With End If wb.AppendHTML("<script src=\'./lib/ajaxform.js\'></script>") \'引入脚本文件 e.WriteString(wb.Build) \'生成网页 4.脚本代码: function getmessage(){ var v1 = document.getElementById("留言内容").value; var v2 = document.getElementById("联系电话").value; if (v1 && v2){return true} show("toptip1",2500); //2500毫秒=2.5秒 return false; } [此贴子已经被作者于2017/5/18 14:51:33编辑过]
|
-- 作者:qwz405 -- 发布时间:2017/5/18 14:52:00 -- 程序文件....论坛不灵光,我上传了N次才成功的。 [此贴子已经被作者于2017/5/18 14:56:02编辑过]
|
-- 作者:lihe60 -- 发布时间:2017/5/18 15:00:00 -- 连接微信,是不是必须有一个URL? |
-- 作者:qwz405 -- 发布时间:2017/5/18 15:06:00 -- 用IP地址(开通80端口),或者申请个域名,或者用现有域名的二级域名。 移动开发指南-->微信接口,一开始就讲这个。
|
-- 作者:有点蓝 -- 发布时间:2017/5/18 15:18:00 -- js里判断字数 function getmessage(){ var v1 = document.getElementById("留言内容").value; var v2 = document.getElementById("联系电话").value; if (v1 && v2 && v2.length <= 15){return true} show("toptip1",2500); //2500毫秒=2.5秒 return false; } 获取用户的信息需要使用授权链接:http://www.foxtable.com/mobilehelp/scr/0236.htm
|
-- 作者:qwz405 -- 发布时间:2017/5/19 15:54:00 -- 试用《网页简单授权》的代码 1.确认微信已关注此测试号; 2.能开启网页 s50000_message.htm; 3.已将网址abc.ngrok.cc加入到网页授权; 问题:打开 abc.ngrok.cc 时,弹错误:未关注该测试号 Dim fl As String = "e:\\baidu\\web\\" & e.path \'设置网页根目录 If filesys.FileExists(fl) Dim idx As Integer = fl.LastIndexOf(".") Dim ext As String = fl.SubString(idx) Select Case ext Case ".jpg",".gif",".png",".bmp",".wmf",".js",".css" ,".html",".htm",".zip",".rar" e.WriteFile(fl) Return \'这里必须返回 End Select End If Select Case e.path Case "abc","abc1" \'接口配置 If e.Request.HttpMethod.ToUpper = "GET" If Functions.Execute("VerifySignature",e) Then e.WriteString(e.GetValues("echostr")) End If End If Case "s50000_message.htm" \'用户留言 Functions.Execute("s50000_message",e) End Select If e.host = "abc.ngrok.cc" Then \'需要授权才能访问的域名 Dim OpenID As String Dim sb As New StringBuilder sb.AppendLine("<meta name=\'viewport\' c>") If e.GetValues.ContainsKey("code") Then \'如果通过授权链接跳转而来,就根据传递过来的code参数调用接口,获取用户的OpenID Dim ul As String = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code" ul = CExp(ul,"wx4718459301f2db8f","827cafff19659d5b93e8c7663db3999a",e.GetValues("code")) Dim hc As new HttpClient(ul) Dim jo As JObject = JObject.Parse(hc.GetData) If jo("openid") IsNot Nothing Then OpenID = jo("openid") e.AppendCookie("openid",OpenID) \'将openid存储在Cookie中 End If Else OpenId = e.Cookies("openid") \'否则从cookie中提取openid End If Dim Verified As Boolean Dim dr As DataRow = DataTables("Users").Find("openid =\'" & OpenID & "\'") \'根据openid找出对应的行 If OpenId > "" AndAlso dr IsNot Nothing Then \'授权成功 Verified = True ElseIf e.GetValues.ContainsKey("code") = False Then \'如果授权失败,且不是通过授权链接跳转而来,那么就跳转到授权链接 Dim ul As String = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8acdb7df5beb68fd&redirect_uri=http%3a%2f%2fwexin.foxtable.com&response_type=code&scope=snsapi_base&state=123#wechat_redirect" sb.Append("<meta http-equiv=\'Refresh\' c>") \'跳转到授权链接 e.WriteString(sb.ToString) Return End If If Verified = False Then sb.AppendLine("你无权访问本系统") Else sb.AppendLine("Foxtable欢迎您, <a href=\'http://wexin.foxtable.com\'>刷新页面</a>") End If e.WriteString(sb.ToString) End If [此贴子已经被作者于2017/5/19 15:54:20编辑过]
|
-- 作者:有点蓝 -- 发布时间:2017/5/19 16:11:00 -- Dim ul As String = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code" Dim ul As String = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8acdb7df5beb68fd&redirect_uri=http%3a%2f%2fwexin.foxtable.com&response_type=code&scope=snsapi_base&state=123#wechat_redirect" 授权Url搞错了吧,你做的是哪个功能的授权?
|
-- 作者:qwz405 -- 发布时间:2017/5/19 16:27:00 -- 看了帮助、视频,还是一头浆糊,只能拷贝代码测试 我是想只有openid在我的users表中的人,才能进行相应的操作。 是公司内部的管理系统,openid我会事先登记到users表中。 我先测试,一点点弄,不懂请教老师。 |
-- 作者:有点色 -- 发布时间:2017/5/19 16:33:00 -- 你访问的是哪个网址?直接访问 s50000_message.htm ?
你要访问的,是微信的授权地址,访问微信的,验证成功,才会跳转到你的网址。 |
-- 作者:qwz405 -- 发布时间:2017/5/19 16:59:00 -- s50000_message.htm 是我的测试网址,能正常使用,说明http服务是可用的。 我登陆是授权网址 abc.ngrok.cc,应该是我url弄错了~
|