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,appid,secret,e.GetValues("code"))
Dim hc As new HttpClient(ul)
Dim jo As JObject = JObject.Parse(hc.GetData)
If jo("openid") IsNot Nothing Then '如果获取openid成功(成功的话,还会同时返回一个accesstiken,用于获取用户详情)
OpenID = jo("openid")
Dim drwx As DataRow = DataTables("WXUsers").sqlFind("openid ='" & Openid & "'")
If drwx IsNot Nothing Then
UserNamewx = drwx("nickname")
Else
ul = "https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN "
'根据openid和accesstoken获取用户详情,注意这里这个accesstoken不是普通accesston,只能用于网页授权
hc = New HttpClient(CExp(ul, jo("access_token"), OpenId))
jo = jo.Parse(hc.GetData)
If jo("openid") IsNot Nothing Then
UserNamewx = jo("nickname")
drwx = DataTables("WXUsers").AddNew()
Dim nms() As String = {"openid","nickname","sex","city","country","province","headimgurl"} '""
For Each nm As String In nms
drwx(nm) = jo(nm)
Next
drwx("账套") = zhangtao
drwx("addtime") = Date.now
drwx.Save
DataTables("WXUsers").loadfilter = "Openid = ''"
DataTables("WXUsers").load
Else
e.WriteString(jo.ToString) '在用户浏览器显示错误信息
Return
End If
End If
e.AppendCookie("usernamewx",UserNamewx) '用户名和openid存储在Cookie中
e.AppendCookie("OpenID",OpenID)
messagebox.show(Date.now & openid)
Else
e.WriteString(jo.ToString) '在用户浏览器显示错误信息
Return
End If
End If
e.WriteString(sb.ToString)
获取cookies的代码页面:
Dim e As RequestEventArgs = args(0)
Dim wb As New weui
If e.PostValues.Count = 0 Then
wb.AddPageTitle("","ph1","微信关联姓名","")
wb.AddForm("","form1","")
With wb.AddInputGroup("form1","ipg1","请您填写基本信息")
With .AddInput("name","姓名","text")
.Placeholder = "您的姓名"
End With
End With
With wb.AddButtonGroup("form1","btg2",True)
.Add("zc", "注册", "submit")
End With
Else
Dim openid As String = e.cookies("openid")
messagebox.show(Date.now & openid)
Dim dr As DataRow = DataTables("WXUsers").sqlFind("openid ='" & OpenID & "'") '根据openid找出对应的行
If dr IsNot Nothing '
dr("name") = e.PostValues("name")
dr.save()
End If
With wb.AddMsgPage("","msgpage","关联成功", "欢迎您的加入,请关闭此页面") '生成成功提示页
End With
End If
e.WriteString(wb.Build) '生成网页