<% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %>
|
<% Session.CodePage=65001 %>
|
<% Response.charset = "utf-8" %>
|
<!--#include virtual="/inc/odbc.asp"-->
|
<!--#include virtual="/inc/function.asp"-->
|
<!--#include virtual="/inc/core.asp"-->
|
<!--#include virtual="/inc/JsonPost.gds"-->
|
<%
|
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) & "<br>"
|
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 & "<br>"
|
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&"<br>"&args1&"<br>"
|
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&"<br>"&args1&"<br>"
|
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%>
|
<textarea><%=webJson%></textarea>
|
<%End if%>
|