Foxtable(狐表)用户栏目专家坐堂 → [求助]无法获取openid


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

主题:[求助]无法获取openid

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


加好友 发短信
等级:童狐 帖子:255 积分:2359 威望:0 精华:0 注册:2011/4/25 9:23:00
[求助]无法获取openid  发帖心情 Post By:2017/7/21 15:19:00 [只看该作者]

为何我参照帮助写的代码无法获取用户的openid,是哪里写错了吗?

内部函数maintest的代码(手机主界面)
Dim e As RequestEventArgs = args(0)
Dim wb As New weui
If e.PostValues.Count = 0 Then
    wb.AddPageTitle("","ph1","查询条件")    
    wb.AddForm("","form1","viewtest.htm")

    With wb.AddButtonGroup("form1","btg1",True)
        .Add("btn1", "查询信息","submit")
        .Add("btn2", "新增信息","","addtest.htm?ordertype=weixin")
    End With
    e.WriteString(wb.Build)
End If

内部函数addtest的代码(手机录入界面):
Dim e As RequestEventArgs = args(0)
Dim wb As New weui
If e.PostValues.Count = 0 Then '生成增加订单网页
    wb.AddForm("","form1","addtest.htm")
    With wb.AddInputGroup("form1","ipg1","录入资料")
        .AddInput("姓名","姓名","text")
        .AddSelect("性别","性别","男|女")
        .AddInput("身份证号","身份证号","text")
        .AddInput("手机号","手机号","text")
        With .AddUploader("身份证照片","身份证照片",False)
            .TextPosition = 0 '标题靠左
        End With
        With .AddUploader("操作证照片","操作证照片",False)
            .TextPosition = 0 '标题靠左
        End With
        With .AddUploader("合同照片","合同照片",False)
            .TextPosition = 0 '标题靠左
        End With
        
    End With
    With wb.AddButtonGroup("form1","btg1",True)
        .Add("btn1", "提交", "submit")
        .Add("btn2", "返回", "","maintest.htm")
    End With
Else '保存新增的订单
    Dim nms() As String = {"姓名","性别","身份证号","手机号"}
    For Each nm As String In nms
        If e.PostValues.ContainsKey(nm) = False Then '生成错误提示页
            With wb.AddMsgPage("","msgpage","增加失败", nm & "不能为空!")
                .icon = "Warn" '改变图标
                .AddButton("btn1","返回").Attribute = ""
            End With
            e.WriteString(wb.Build)
            Return Nothing '必须返回
        End If
    Next
    Dim nms2() As String = {"身份证照片","操作证照片","合同照片"}
    
    Dim dr As DataRow
    dr = DataTables("员工资料").AddNew()

    Dim orderType As String = e.Values("ordertype" )
    Dim code As String = e.Values( "code" )
    If orderType= "weixin" Then '微信授权的网页才会有code参数
        Dim wechatserv = WeChat.WeChatServer.Server ("wxe491a3cc46a558fe")
        Dim uinfo = wechatserv.UserController.GetOauth2UserInfo(code) '获取微信用户信息
        If uinfo.Success Then            
            dr("openid") = uinfo.openid 
        End If
    End If

    For Each nm As String In nms
        dr(nm) = e.PostValues(nm)
    Next        
    
    For Each key As String In e.Files.Keys
        For Each fln As String In e.Files(key)
            e.SaveFile(key, fln, ProjectPath & "Attachments\" & fln)
        Next
        If key = "身份证照片" Then
            dr.Lines("身份证照片") = e.Files(key)
        ElseIf key = "操作证照片" Then
            dr.Lines("操作证照片") = e.Files(key)
        ElseIf key = "合同照片" Then
            dr.Lines("合同照片") = e.Files(key)
        End If
    Next 
    dr.Save()
    
    With wb.AddMsgPage("","msgpage","提交成功", "数据已上传到服务器") '增加订单成功提示信息
        .AddButton("btn1","确定","maintest.htm")
    End With
End If
e.WriteString(wb.Build) '生成网页
[此贴子已经被作者于2017/7/21 15:19:40编辑过]

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


加好友 发短信
等级:童狐 帖子:255 积分:2359 威望:0 精华:0 注册:2011/4/25 9:23:00
  发帖心情 Post By:2017/7/21 15:23:00 [只看该作者]

初始化微信服务,则在一个按钮中写了如下代码

Dim pinfo As New WeChat.WeChatPublicNoInfo()
pinfo.DeveloperID = "wxe491a3cc46a558fe" '公众号开发者ID
pinfo.DeveloperSecret = "8ca98fcf1ffec41f1fb8761e218fd64a" '公众号的开发者密钥
pinfo.Token = "MyToken" '消息令牌
pinfo.EncodingAESKey = "H6ALCg8tM8akB9aUmZeFsoXOEzMAkleQRAw6WkQcQjh" '消息加密密钥
pinfo.PublicNoType = 1 '1=服务号 3=订阅号
pinfo.CryptMsgType = 1 '明文消息 2=加密消息
WeChat.WeChatServer.Add(pinfo) '添加服务号到服务'
msgbox("微信服务初始化成功")
Dim url As String = "http://kensou11111.gnway.cc/addtest.htm"
url = WeChat.WeChatOauth2Helper.GetOAuth2Uri("wxe491a3cc46a558fe", url,True , "123456789", "snsapi_base", "code")


httprequest 代码:
Dim fl As String = "e:\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 "addtest.htm"
        Functions.Execute("addtest",e)
    Case "viewtest.htm"
        Functions.Execute("viewtest",e)
    Case "maintest.htm"
        Functions.Execute("maintest",e)  
End Select

测试时其余资料和图片都可以正常保存,但用户的openid没有保存成功。
[此贴子已经被作者于2017/7/21 15:35:49编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/21 16:02:00 [只看该作者]


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


加好友 发短信
等级:童狐 帖子:255 积分:2359 威望:0 精华:0 注册:2011/4/25 9:23:00
  发帖心情 Post By:2017/7/21 16:22:00 [只看该作者]

以下是引用有点甜在2017/7/21 16:02:00的发言:

 你没有弄授权

 

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

 

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

 


我参考的是微新接口帮助中的这个例子 http://wechat.foxtable.com:9009/WebHelp/scr/we9011.htm

那么我是不是应该将主界面中跳转的录入界面的url换成授权验证的url?

[此贴子已经被作者于2017/7/21 16:22:29编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/21 16:42:00 [只看该作者]

是的,进入你的网站的时候,就应该获取授权了,只需要授权一次。

 

跳转后,才能获取openid的。


 回到顶部