代码如下:GetJsSignature:
Dim gongsi As String = args(3)
Dim dt As DataTable
Dim dr As DataRow
Dim cmd As new SQLCommand
cmd.C
cmd.CommandText = "selec t * from 账套配置 where 账套 = '" & gongsi & "'"
dt = cmd.ExecuteReader(True)
If dt.DataRows.Count > 0 Then
dr = dt.DataRows(0)
Dim TicketCreateTime As Date = dr("TicketCreateTime") '记录最近一次生成access_token的时间
Dim Ticket As String
Dim AppId As String= dr("AppId")
Dim AppSecret As String = dr("AppSecret")
Dim tp As TimeSpan = Date.Now - TicketCreateTime
If tp.TotalSeconds > 3600 Then
Dim url As String = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={0}&type=jsapi"
Dim hc As New HttpClient(CExp(url,Functions.Execute("GetAccessToken",gongsi)))
Dim ret As String = hc.GetData()
If ret = "" Then '如果失败,再尝试一次
hc.GetData()
End If
dr("TicketCreateTime") = Date.Now()
Dim jo As JObject = JObject.Parse(ret)
If jo("errcode") = "0" Then
dr("Ticket") = jo("ticket")
Else
PopMessage("获取jsapi_ticket,原因:" & vbcrlf & jo.ToString)
End If
dr.save()
End If
ticket = dr("Ticket")
Dim signature As String = CExp("jsapi_ticket={0}&noncestr={1}×tamp={2}&url={3}",Ticket,args(0),args(1),args(2))
Return Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(signature, "SHA1").ToLower()
End If
扫一扫网页代码:
Dim e As RequestEventArgs = args(0)
Dim cmd As new SQLCommand
cmd.C
cmd.CommandText = "selec t top 1 创建账套 from {gift} where ka_id = '" & cardid & "'"
Dim dt As DataTable = cmd.ExecuteReader()
Dim dr As DataRow
If dt.DataRows.Count >= 1 Then
dr = dt.DataRows(0)
End If
Dim gongsi As String = dr("创建账套")
Dim wb As new WeUI
wb.AppendHTML("<script src='http://res.wx.qq.com/open/js/jweixin-1.2.0.js'></script>",True) '引入JS-SDK库
wb.AppendHTML("<script src='./lib/jssdk2.js'></script>") '引入脚本文件
'在页面注入权限验证配置
Dim st As New Date(1970,1,1,8,0,0)
Dim appid As String = "wx993xxxxxc690" '开发者ID
Dim timestamp As Integer = CInt((Date.Now - st).TotalSeconds()) '时间戳
Dim noncestr As String = Rand.NextString(16) '随机字符
Dim url As String = e.Request.URL.ToString '当前页面地址
Dim signature As String = Functions.Execute("GetJsSignature", noncestr, timestamp, url,gongsi) '生成权限验证签名
PopMessage("signature:" & signature)
Dim cfg As String = "wx.config({appId:'{0}',timestamp:{1},nonceStr:'{2}',signature:'{3}',jsApiList:['scanQRCode']});"
wb.AppendHTML("<script>" & CExp(cfg,appid,timestamp,noncestr,signature) & "</script>",True)
'开始正常生成网页内容
wb.AddPageTitle("","ph1","支付","XX公司")
wb.AddForm("","form1","http://www.yijiansoft.net:94/koukuancl.htm")
With wb.AddInputGroup("form1","ipg1","")
With .AddInputCell("ic1")
.AddLabel("lbh","小piao单号",0)
With .AddInput("xp","text",1)
.Placeholder = "点右边扫小piao条码"
.Enabled = False
End With
.AddVcodeButton("scan","扫一扫",2) '增加二维码扫描按钮,2表示显示在右边
End With
End With
With wb.AddButtonGroup("form1","btg1",True)
.Add("btn1", "确定", "submit")
End With
e.WriteString(wb.Build) '生成网页
[此贴子已经被作者于2018/6/8 10:24:09编辑过]