% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %>
<% Session.CodePage=65001 %>
<% Response.charset = "utf-8" %>
<%
Set rs = Server.CreateObject("ADODB.Recordset")
Set rsDt = Server.CreateObject("ADODB.Recordset")
method=trim(Request("method"))
errcode=""
if method="" Then
errcode=40001
errmsg="invalid method"
end If
'时间戳验证----------
UnixTime=trim(Request("UnixTime"))
Call MD5_UnixTime(UnixTime)
'时间戳验证---end
'签名验证----------
ApiSign=trim(Request("Sign"))
if ApiSign="" Then
errcode=40005
errmsg="invalid Sign"
else
'待签名字符串
ReDim arr(Request.QueryString.Count+Request.Form.Count,2)
Dim v '所有表单值
Dim t '所有表单数量
v=Request.QueryString
If v<>"" And Request.Form<>"" Then
v=v&"&"&Request.Form
ElseIf Request.Form<>"" Then
v=Request.Form
End If
t=Request.QueryString.Count+Request.Form.Count
For i=0 To t-1
arr(i,1)=Split(Split(v,"&")(i),"=")(0)
arr(i,2)=Split(Split(v,"&")(i),"=")(1)
Next
For i = 0 To t-1
For j = i + 1 To t-1
If arr(i,1) > arr(j,1) Then
tmp1 = arr(i,1)
arr(i,1) = arr(j,1)
arr(j,1) = tmp1
tmp2 = arr(i,2)
arr(i,2) = arr(j,2)
arr(j,2) = tmp2
End If
Next
Next
For i = 0 To t-1
'response.write arr(i,1) & "=" & arr(i,2) & "
"
If arr(i,1)="Sign" Then
reserve=arr(i,2)
else
If arr(i,2)="timestamp" Then arr(i,2)=Date() &" "& Time()
sParaSort=sParaSort & arr(i,1) & arr(i,2)
sParaRunning=sParaRunning &"&"& arr(i,1) &"="& arr(i,2)
End if
Next
sign_type = "MD5"
input_charset="utf-8"
stringA=sParaSort&key
'response.write sParaSort & "
"
Private Function BuildRequestMysign(sParaSort)
'获得签名结果
Select Case sign_type
Case "MD5" BuildRequestMysign = Md5Sign(sParaSort,key,input_charset)
Case Else BuildRequestMysign = ""
End Select
End Function
sParaSort=BuildRequestMysign(sParaSort)
If CStr(ApiSign)<>CStr(sParaSort) And ApiSign<>"vic" Then
errcode=40006
errmsg="invalid Sign"
'签名调试
If is_test="1" Then errmsg="invalid stringA:"&stringA&",Sign:"&sParaSort
End If
End If
'签名验证---end
If errcode="" then
select case method
case "weixin_Appid" '微信支付AppID查询
weixinID=UnitID'微信号ID
sql="select * from IntroducerUnitData where UnitState=3 and UnitID="&weixinID
rs.open sql,objConn,1,1
if not rs.eof Then
UnitName = rs("UnitName")
UnitState = rs("UnitState")
wx_OriginalID=rs("wx_OriginalID")
wx_APPID=rs("wx_APPID")
wx_APPSECRET=rs("wx_APPSECRET")
wx_access_tokenID=rs("wx_access_tokenID")
wx_access_tokenTime=rs("wx_access_tokenTime")
wx_jsapi_ticketID=rs("wx_jsapi_ticketID")
wx_jsapi_ticketTime=rs("wx_jsapi_ticketTime")
pay_mch_id=rs("pay_mch_id")
pay_mch_key=rs("pay_mch_key")
errcode=1
Else
errcode=40010
errmsg="invalid APPID"
End If
rs.close()
'可选项
js_code=trim(Request("js_code"))'登录时获取的 code
'写入默认值
%>
<%
If errcode=1 Then
If weixinID="1" Then '企业号
jsapi_ticket=Getjsapi_ticket_qy(weixinID,wx_jsapi_ticketID,wx_jsapi_ticketTime)
Else
jsapi_ticket=GetAccess_token_wx(weixinID,wx_jsapi_ticketID,wx_jsapi_ticketTime)
End If
If wx_APPID<>"" Then
If js_code<>"" Then
If UnitState="3" Then
OpenIDJson=GetOpenID_CX(js_code)
else
OpenIDJson=GetOpenID2(js_code)
End If
OpenIDJson=",""OpenIDJson"":["&OpenIDJson&"]"
End If
webJson="{""method"":""weixin_Appid"",""result"":1,""weixin_Name"":"""&UnitName&""",""wx_APPID"":"""&wx_APPID&""",""wx_APPSECRET"":"""",""access_token"":"""&wx_access_tokenID&""",""jsapi_ticket"":"""&wx_jsapi_ticketID&""",""mch_id"":"""&pay_mch_id&""",""mch_key"":"""&pay_mch_key&""",""wx_OriginalID"":"""&wx_OriginalID&""""&OpenIDJson&"}"
'webJson="{""method"":""weixin_Appid"",""result"":1,""weixin_Name"":"""&UnitName&""",""wx_APPID"":"""&wx_APPID&""",""access_token"":"""&wx_access_tokenID&""",""jsapi_ticket"":"""&wx_jsapi_ticketID&""",""mch_id"":"""&pay_mch_id&""",""mch_key"":"""&pay_mch_key&""",""wx_OriginalID"":"""&wx_OriginalID&""""&OpenIDJson&"}"
'记录微信返回结果
If OpenIDJson<>"" then
'sql="Insert into TVDV.dbo.API_Json (method,Json,reserve,is_Json) values ('weixinAPP_OpenID','"&OpenIDJson&"','"&js_code&"',"&weixinAPP&")"
'objConn.Execute sql
End If
Else
errcode=40003
errmsg="invalid weixin_Appid"
End If
End If
'微信支付AppID查询 end
case "weixin_FormidSave" '记录用户微信Formid
UserID = trim(Request("UserID")) '用户唯一ID
openId = trim(Request("openId")) '接收者(用户)的 openid
formID = trim(Request("formID")) '用户微信Formid
formID_status= trim(Request("formID_status"))'formID可用次数
'写入默认值
If formID_status="" Then formID_status=1
result=0
If openid="" Then
result=2
errcode=40008
errmsg="invalid openid"
ElseIf UnitID="" Then
result=2
errcode=40009
errmsg="invalid APPID"
ElseIf formID="" Then
result=2
errcode=40010
errmsg="invalid formID"
ElseIf UserID="" Then
result=2
errcode=40011
errmsg="invalid UserID"
End If
If result=0 Then
sql="INSERT INTO weixinUserFormID (formID_detail,formID_openId,formID_UnitID,formID_UserID,formID_status) VALUES ('"&formID&"','"&openId&"',"&UnitID&","&UserID&","&formID_status&")"
objConn.Execute sql
webJson="{""method"":""weixin_FormidSave"",""result"":1}"
End If
'记录用户微信Formid end
case "weixin_MessageSend" '微信发送模板信息
UserID = trim(Request("UserID")) '用户唯一ID
openid = trim(Request("openid")) '接收者(用户)的 openid
template_id = trim(Request("template_id")) '所需下发的模板消息的id
form_id = trim(Request("form_id")) '表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_id
data1 = trim(Request("data")) '模板内容,不填则下发空模板
'可选项
page=trim(Request("page")) '点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
'写入默认值
If weixinAPP="" Then weixinAPP=1 'V俱乐部服务号
result=0
If openid="" Then
result=2
errcode=40008
errmsg="invalid openid"
ElseIf UnitID="" Then
result=2
errcode=40012
errmsg="invalid UnitID"
ElseIf form_id="" Then
result=2
errcode=40010
errmsg="invalid form_id"
ElseIf form_id="" Then
result=2
errcode=40010
errmsg="invalid form_id"
ElseIf data1="" Then
result=2
errcode=40011
errmsg="invalid data"
End If
If UnitID<>"" Then
weixinID=UnitID'微信号ID
sql="select * from IntroducerUnitData where UnitState=3 and UnitID="&weixinID
rs.open sql,objConn,1,1
if not rs.eof Then
UnitName = rs("UnitName")
UnitState = rs("UnitState")
wx_OriginalID=rs("wx_OriginalID")
wx_APPID=rs("wx_APPID")
wx_APPSECRET=rs("wx_APPSECRET")
wx_access_tokenID=rs("wx_access_tokenID")
wx_access_tokenTime=rs("wx_access_tokenTime")
wx_jsapi_ticketID=rs("wx_jsapi_ticketID")
wx_jsapi_ticketTime=rs("wx_jsapi_ticketTime")
pay_mch_id=rs("pay_mch_id")
pay_mch_key=rs("pay_mch_key")
errcode=1
Else
errcode=40010
errmsg="invalid APPID"
End If
rs.close()
'可选项
js_code=trim(Request("js_code"))'登录时获取的 code
'写入默认值
%>
<%
If errcode=1 Then
If weixinID="1" Then '企业号
access_token=Getjsapi_ticket_qy(weixinID,wx_jsapi_ticketID,wx_jsapi_ticketTime)
Else
access_token=GetAccess_token_wx(weixinID,wx_jsapi_ticketID,wx_jsapi_ticketTime)
End If
appUrl="https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token="&access_token
End If
Else
result=2
errcode=40007
errmsg="invalid UnitID"
End If
If result=0 Then
If form_id<>"" Then
sql="update weixinUserFormID set formID_status=formID_status-1 where formID_detail='"&form_id&"' and formID_openId='"&openid&"'"
objConn.Execute sql
End If
args1 = "{"
args1 = args1&"""touser"":"""&openid&""""
args1 = args1&",""template_id"":"""&template_id&""""
args1 = args1&",""page"":"""&page&""""
args1 = args1&",""form_id"":"""&form_id&""""
args1 = args1&",""data"":"&data1
'args1 = args1&",""data"":{""keyword1"": {""value"":""2016723793"",""color"":""#173177""},""keyword2"": {""value"":""2017-06-30 17:03:29"",""color"":""#173177""},""keyword3"": {""value"":""V7澳洲进口牛肉 牛腩 500g"",""color"":""#173177""},""keyword4"": {""value"":""33元"",""color"":""#173177""}}"
args1 = args1&"}"
'Response.Write appUrl&"
"&args1&"
"
webJson=PostBody(appUrl,args1)
'sql="Insert into API_Json (method,Json,reserve,is_Json) values ('weixin_MessageSend','"&webJson&args1&"','',"&weixinAPP&")"
'objConn.Execute sql
'webJson="{""method"":""weixin_MessageSend"",""result"":1}"
End If
'微信发送模板信息 end
case "weixin_UrlScheme" '获取URL Scheme
path = trim(Request("path"))
'可选项
query = trim(Request("query"))
If query<>"" Then
query = Replace(query,"|","&")
query = Replace(query,"*","=")
End If
'写入默认值
If UnitID<>"" Then
weixinID=UnitID'微信号ID
sql="select * from IntroducerUnitData where UnitState=3 and UnitID="&weixinID
rs.open sql,objConn,1,1
if not rs.eof Then
UnitName = rs("UnitName")
UnitState = rs("UnitState")
wx_OriginalID=rs("wx_OriginalID")
wx_APPID=rs("wx_APPID")
wx_APPSECRET=rs("wx_APPSECRET")
wx_access_tokenID=rs("wx_access_tokenID")
wx_access_tokenTime=rs("wx_access_tokenTime")
wx_jsapi_ticketID=rs("wx_jsapi_ticketID")
wx_jsapi_ticketTime=rs("wx_jsapi_ticketTime")
pay_mch_id=rs("pay_mch_id")
pay_mch_key=rs("pay_mch_key")
errcode=1
Else
errcode=40010
errmsg="invalid APPID"
End If
rs.close()
'可选项
js_code=trim(Request("js_code"))'登录时获取的 code
'写入默认值
%>
<%
If errcode=1 Then
If weixinID="1" Then '企业号
access_token=Getjsapi_ticket_qy(weixinID,wx_jsapi_ticketID,wx_jsapi_ticketTime)
Else
access_token=GetAccess_token_wx(weixinID,wx_jsapi_ticketID,wx_jsapi_ticketTime)
End If
appUrl="https://api.weixin.qq.com/wxa/generatescheme?access_token="&access_token
End If
Else
result=2
errcode=40007
errmsg="invalid UnitID"
End If
If result=0 Then
args1 = "{"
args1 = args1&"""jump_wxa"":{""path"":"""&path&""",""query"":"""&query&"""}"
args1 = args1&",""is_expire"":true" '生成的 scheme 码类型,到期失效:true,永久有效:false。
args1 = args1&",""expire_type"":1" '到期失效的 scheme 码失效类型,失效时间:0,失效间隔天数:1
args1 = args1&",""expire_interval"":7" '到期失效的 scheme 码的失效间隔天数。生成的到期失效 scheme 码在该间隔时间到达前有效。最长间隔天数为365天。is_expire 为 true 且 expire_type 为 1 时必填
'args1 = args1&",""expire_time"":"&ToUnixTime(now(), +8)&"" '到期失效的 scheme 码的失效时间,为 Unix 时间戳。生成的到期失效 scheme 码在该时间前有效。最长有效期为1年。is_expire 为 true 且 expire_type 为 0 时必填
args1 = args1&"}"
'Response.Write appUrl&"
"&args1&"
"
webJson=PostBody(appUrl,args1)
'sql="Insert into API_Json (method,Json,reserve,is_Json) values ('weixin_MessageSend','"&webJson&args1&"','',"&weixinAPP&")"
'objConn.Execute sql
'webJson="{""method"":""weixin_MessageSend"",""result"":1}"
End If
' 获取URL Scheme end
case else
errcode=40002
errmsg="invalid method"
end Select
End If
If Left(errcode,1)="4" Or webJson="" Then
If errcode="" Then
errcode=-1
errmsg="error"
End If
webJson="{""APPID"":"""&APPID&""",""method"":"""&method&""",""result"":2,""errcode"":"&errcode&",""errmsg"":"""&errmsg&"""}"
Call OA_Running(UnitID,webJson)
Else
OkJson="{""APPID"":"""&APPID&""",""method"":"""&method&""",""result"":1,""Running"":"""&sParaRunning&"""}"
'Call OA_Running(UnitID,OkJson)
End If
Response.Write webJson
%>
<%If method="Article_detail" And trim(Request("aa"))="1" then%>
<%End if%>