Foxtable(狐表)用户栏目专家坐堂 → 求助:微信开发,文本框字数控制和openid获取


  共有3665人关注过本帖树形打印复制链接

主题:求助:微信开发,文本框字数控制和openid获取

帅哥哟,离线,有人找我吗?
qwz405
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:522 积分:5033 威望:0 精华:0 注册:2015/4/15 15:25:00
求助:微信开发,文本框字数控制和openid获取  发帖心情 Post By:2017/5/18 14:50:00 [只看该作者]

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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:522 积分:5033 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2017/5/18 14:52:00 [只看该作者]

程序文件....论坛不灵光,我上传了N次才成功的。


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:http20170518.foxdb


[此贴子已经被作者于2017/5/18 14:56:02编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2017/5/18 15:00:00 [只看该作者]

连接微信,是不是必须有一个URL?

 回到顶部
帅哥哟,离线,有人找我吗?
qwz405
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:522 积分:5033 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2017/5/18 15:06:00 [只看该作者]

用IP地址(开通80端口),或者申请个域名,或者用现有域名的二级域名。

移动开发指南-->微信接口,一开始就讲这个。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106761 积分:543006 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:522 积分:5033 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106761 积分:543006 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:522 积分:5033 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2017/5/19 16:27:00 [只看该作者]

看了帮助、视频,还是一头浆糊,只能拷贝代码测试

我是想只有openid在我的users表中的人,才能进行相应的操作。

是公司内部的管理系统,openid我会事先登记到users表中。

我先测试,一点点弄,不懂请教老师。



 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/19 16:33:00 [只看该作者]

 你访问的是哪个网址?直接访问 s50000_message.htm ?

 

 你要访问的,是微信的授权地址,访问微信的,验证成功,才会跳转到你的网址。


 回到顶部
帅哥哟,离线,有人找我吗?
qwz405
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:522 积分:5033 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2017/5/19 16:59:00 [只看该作者]

 s50000_message.htm 是我的测试网址,能正常使用,说明http服务是可用的。

我登陆是授权网址 abc.ngrok.cc,应该是我url弄错了~

 回到顶部
总数 20 1 2 下一页