<%
|
'接口信息
|
If weixinID="" Then weixinID=1
|
Set rs = Server.CreateObject("ADODB.Recordset")
|
sql="select * from GBR.dbo.weixinAPP where id="&weixinID
|
'Response.Write sql &"<br><br>"
|
rs.open sql,objConn,1,1
|
wx_Name = rs("wx_Name")
|
APPID = rs("APPID")
|
APPSECRET = rs("APPSECRET")
|
token = rs("token")
|
access_token = rs("access_tokenID")
|
access_token_time= rs("access_tokenTime")
|
jsapi_ticket = rs("jsapi_ticketID")
|
jsapi_ticket_time= rs("jsapi_ticketTime")
|
mch_id = rs("mch_id")
|
mch_key = rs("mch_key")
|
mch_customs = rs("mch_customs")
|
mch_customs_no = rs("mch_customs_no")
|
OriginalID=rs("OriginalID")
|
rs.close()
|
If InStr(jsapi_ticket,"40001")>0 Or InStr(access_token,"40001")>0 Then
|
access_token_time=now()-1
|
jsapi_ticket_time=now()-1
|
End If
|
|
'access_token_time="2016-10-1 10:00:00"
|
If weixinID="10" Then
|
access_token=GetAccess_token_qy(weixinID,access_token,access_token_time)
|
Else
|
access_token=GetAccess_token(weixinID,access_token,access_token_time)
|
End If
|
|
|
'--------------------------UNIX时间戳---------------------begin
|
'ToUnixTime(now(), +8)
|
Function ToUnixTime(strTime, intTimeZone)
|
If IsEmpty(strTime) or Not IsDate(strTime) Then strTime = Now
|
If IsEmpty(intTimeZone) or Not isNumeric(intTimeZone) Then intTimeZone = 0
|
ToUnixTime = DateAdd("h",-intTimeZone,strTime)
|
ToUnixTime = DateDiff("s","1970-1-1 0:0:0", ToUnixTime)
|
End Function
|
'--------------------------UNIX时间戳---------------------end
|
|
'把UNIX时间戳转换为标准时间---------------------begin
|
Function FromUnixTime(intTime, intTimeZone)
|
If IsEmpty(intTime) or Not IsNumeric(intTime) Then
|
FromUnixTime = Now()
|
Exit Function
|
End If
|
If IsEmpty(intTime) or Not IsNumeric(intTimeZone) Then intTimeZone = 0
|
FromUnixTime = DateAdd("s", intTime, "1970-01-01 00:00:00")
|
FromUnixTime = DateAdd("h", intTimeZone, FromUnixTime)
|
End Function
|
'把UNIX时间戳转换为标准时间---------------------end
|
|
'获取access_token
|
Function GetAccess_token(weixinID,access_token,access_token_time)
|
If DateDiff("s",access_token_time,now())>0 Then
|
'获取新的access_token
|
url="https://api.weixin.qq.com/cgi-bin/token" '//定义要获取源代码的网址,一般是通过变量传递过来
|
Origin="grant_type=client_credential&appid="&APPID&"&secret="&APPSECRET
|
HTMLCODE= GetBody(url,Origin)
|
access_token=replace(HTMLCODE,"{""access_token"":""","")
|
access_token=Left(access_token,InStr(access_token,""",""")-1)
|
access_token_time=DateAdd("s",7000,now())
|
'写入数据库
|
sql="update GBR.dbo.weixinAPP set access_tokenID='"&access_token&"',access_tokenTime='"&access_token_time&"' where id="&weixinID
|
objConn.Execute sql
|
End if
|
GetAccess_token = access_token
|
End Function
|
|
'获取jsapi_ticket
|
Function Getjsapi_ticket(weixinID,jsapi_ticket,jsapi_ticket_time)
|
If DateDiff("s",jsapi_ticket_time,now())>0 then
|
'获取新的jsapi_ticket
|
url="https://api.weixin.qq.com/cgi-bin/ticket/getticket" '//定义要获取源代码的网址,一般是通过变量传递过来
|
Origin="access_token="&access_token&"&type=jsapi"
|
HTMLCODE= GetBody(url,Origin)
|
jsapi_ticket=replace(replace(HTMLCODE,"{""errcode"":0,""errmsg"":""ok"",""ticket"":""",""),""",""expires_in"":7200}","")
|
jsapi_ticket_time=DateAdd("s",7000,now())
|
'写入数据库
|
sql="update GBR.dbo.weixinAPP set jsapi_ticketID='"&jsapi_ticket&"',jsapi_ticketTime='"&jsapi_ticket_time&"' where id="&weixinID
|
objConn.Execute sql
|
End if
|
Getjsapi_ticket = jsapi_ticket
|
End Function
|
|
'获取企业号access_token
|
Function GetAccess_token_qy(weixinID,access_token,access_token_time)
|
If DateDiff("s",access_token_time,now())>0 Then
|
'获取新的access_token
|
url="https://qyapi.weixin.qq.com/cgi-bin/gettoken" '//定义要获取源代码的网址,一般是通过变量传递过来
|
Origin="corpid="&APPID&"&corpsecret="&APPSECRET
|
HTMLCODE= GetBody(url,Origin)
|
str="["&HTMLCODE&"]"
|
set obj = getjson(str)
|
access_token = obj.get(0).access_token
|
expires_in = obj.get(0).expires_in
|
access_token_time=DateAdd("s",(expires_in-100),now())
|
'写入数据库
|
sql="update GBR.dbo.weixinAPP set access_tokenID='"&access_token&"',access_tokenTime='"&access_token_time&"' where id="&weixinID
|
objConn.Execute sql
|
End if
|
GetAccess_token_qy = access_token
|
End Function
|
|
'获取企业号jsapi_ticket
|
Function Getjsapi_ticket_qy(weixinID,jsapi_ticket,jsapi_ticket_time)
|
If DateDiff("s",jsapi_ticket_time,now())>0 then
|
'获取新的jsapi_ticket
|
url="https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket" '//定义要获取源代码的网址,一般是通过变量传递过来
|
Origin="access_token="&access_token
|
HTMLCODE= GetBody(url,Origin)
|
If InStr(HTMLCODE,"""errmsg"":""ok""")>=1 Then
|
jsapi_ticket=replace(replace(HTMLCODE,"{""errcode"":0,""errmsg"":""ok"",""ticket"":""",""),""",""expires_in"":7200}","")
|
jsapi_ticket_time=DateAdd("s",7000,now())
|
'写入数据库
|
sql="update GBR.dbo.weixinAPP set jsapi_ticketID='"&jsapi_ticket&"',jsapi_ticketTime='"&jsapi_ticket_time&"' where id="&weixinID
|
objConn.Execute sql
|
End If
|
End if
|
Getjsapi_ticket_qy = jsapi_ticket
|
End Function
|
|
'获取用户OpenID
|
Function GetOpenID(code)
|
'获取OpenID
|
url="https://api.weixin.qq.com/sns/oauth2/access_token" '//定义要获取源代码的网址,一般是通过变量传递过来
|
Origin="appid="&APPID&"&secret="&APPSECRET&"&code="&code&"&grant_type=authorization_code"
|
HTMLCODE= GetBody(url,Origin)
|
If InStr(HTMLCODE,"""openid"":""")>0 then
|
OpenID=Mid(HTMLCODE,InStr(HTMLCODE,"""openid"":""")+10)
|
OpenID=Mid(OpenID,1,InStr(OpenID,""",""")-1)
|
Else
|
OpenID=""
|
End If
|
GetOpenID = OpenID
|
End Function
|
|
'获取用户OpenID2
|
Function GetOpenID2(code)
|
'获取OpenID
|
url="https://api.weixin.qq.com/sns/oauth2/access_token" '//定义要获取源代码的网址,一般是通过变量传递过来
|
Origin="appid="&APPID&"&secret="&APPSECRET&"&code="&code&"&grant_type=authorization_code"
|
HTMLCODE= GetBody(url,Origin)
|
GetOpenID2 = HTMLCODE
|
End Function
|
|
'获取用户OpenID_CX 小程序专用
|
Function GetOpenID_CX(code)
|
'获取OpenID
|
url="https://api.weixin.qq.com/sns/jscode2session" '//定义要获取源代码的网址,一般是通过变量传递过来
|
Origin="appid="&APPID&"&secret="&APPSECRET&"&js_code="&code&"&grant_type=authorization_code"
|
HTMLCODE= GetBody(url,Origin)
|
GetOpenID_CX = HTMLCODE
|
End Function
|
|
'获取code
|
Function GetCode(state)
|
redirectUrl = "http://"&Request.ServerVariables("SERVER_NAME")&Request.ServerVariables("URL")
|
state=state&"|N"
|
url="https://open.weixin.qq.com/connect/oauth2/authorize"
|
Origin="appid="&APPID&"&redirect_uri="&redirectUrl&"&response_type=code&scope=snsapi_base&state="&state&"#wechat_redirect"
|
Response.Redirect url&"?"&Origin
|
End Function
|
|
'Get方法
|
Function GetBody(appUrl,Origin)
|
Set https = Server.CreateObject("Msxml2.ServerXMLHTTP")
|
|
With https
|
.Open "GET", appUrl&"?"&Origin, False
|
.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
|
.Send ""
|
GetBody = .ResponseBody
|
End With
|
GetBody = BytesToBstr(GetBody,"utf-8")
|
Set https = Nothing
|
End Function
|
|
'Post方法
|
Function PostBody(appUrl,args1)
|
Set PBrs = Server.CreateObject("ADODB.Recordset")
|
Set https = Server.CreateObject("Msxml2.ServerXMLHTTP")
|
|
'Set https = Server.CreateObject("MSXML2.XMLHTTP")
|
With https
|
.Open "Post", appUrl, False
|
.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
|
.Send args1
|
PostBody = .ResponseBody
|
End With
|
PostBody = BytesToBstr(PostBody,"utf-8")
|
Set https = Nothing
|
End Function
|
|
Function BytesToBstr(body,Cset) '飘易:转换GB2312
|
dim objstream
|
set objstream = Server.CreateObject("adodb.stream")
|
objstream.Type = 1
|
objstream.Mode =3
|
objstream.Open
|
objstream.Write body
|
objstream.Position = 0
|
objstream.Type = 2
|
objstream.Charset = Cset
|
BytesToBstr = objstream.ReadText
|
objstream.Close
|
set objstream = nothing
|
End Function
|
|
'微信支付统一下单
|
Function PostXML(pUrl, pXml)
|
PostXML = ""
|
Dim https, ResponseBody
|
Set https = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
|
https.setOption(3) = "LOCAL_MACHINE\My\MMPay"
|
|
Dim xmlDoc
|
Set xmlDoc = Server.CreateObject("Msxml2.DOMDocument.3.0")
|
xmlDoc.async = false
|
xmlDoc.loadXML pXml
|
|
With https
|
.Open "POST", pUrl, False
|
.setRequestHeader "Content-Type","application/xml;charset=UTF-8"
|
.Send xmlDoc 'pXml
|
PostXML = .ResponseText
|
End With
|
Set https = Nothing
|
End Function
|
%>
|
<!--#include virtual="/weixin/sha1.asp"-->
|