<%@Language="VBScript" CodePage="65001"%>
|
<%'On Error Resume Next%>
|
<!--#include virtual="/inc/odbc.asp"-->
|
<!--#include virtual="/inc/function.gds"-->
|
<%
|
'**********************************************
|
'接口信息
|
encodingAesKey = "1eSbetpojD5hX4PqLpXkdXUdTPDs2Pmepr2gxEqnamX"
|
token = "966120"
|
corpId = "wx248505bfbab6d0c1"
|
|
msg_signature=request("msg_signature")
|
timestamp=request("timestamp")
|
nonce=request("nonce")
|
|
url="https://sys.966120.com.cn/weixin/Enterprise/index.php" '//定义要获取源代码的网址,一般是通过变量传递过来
|
Origin="encodingAesKey="&encodingAesKey
|
Origin=Origin&"&token="&token
|
Origin=Origin&"&corpId="&corpId
|
Origin=Origin&"&msg_signature="&msg_signature
|
Origin=Origin&"×tamp="×tamp
|
Origin=Origin&"&nonce="&nonce
|
'Origin=Origin&"&echostr="&Server.URLEncode(request("echostr"))
|
'HTMLCODE= GetBody(url,Origin)
|
'Response.Write HTMLCODE
|
'Response.end
|
set xml_dom = Server.CreateObject("MSXML2.DOMDocument")
|
xml_dom.load request
|
ToUserName=xml_dom.getelementsbytagname("ToUserName").item(0).text 'ToUserName为企业微信的CorpID,当为第三方套件回调事件时,CorpID的内容为suiteid
|
toAgentID=xml_dom.getelementsbytagname("AgentID").item(0).text 'AgentID为接收的应用id,可在应用的设置页面获取
|
Encrypt=xml_dom.getelementsbytagname("Encrypt").item(0).Text 'msg_encrypt为经过加密的密文
|
set xml_dom=Nothing
|
If ToUserName<>"" Then
|
Origin=Origin&"&ToUserName="&ToUserName
|
Origin=Origin&"&AgentID="&ToAgentID
|
Origin=Origin&"&Encrypt="&Server.URLEncode(Encrypt)
|
HTMLCODE= GetBody(url,Origin)
|
End If
|
'Response.Write HTMLCODE
|
If HTMLCODE<>"" Then
|
set xml_Content = Server.CreateObject("MSXML2.DOMDocument")
|
xml_Content.preserveWhiteSpace = true
|
xml_Content.async = false
|
xml_Content.LoadXML(HTMLCODE)
|
Set nodes=xml_Content.documentElement.childNodes
|
For i=0 To nodes.length-1
|
select case nodes(i).nodeName
|
case "ToUserName" '发送者微信账号/成员UserID
|
ToUserName = nodes(i).childNodes(0).Text
|
case "FromUserName"
|
FromUserName = nodes(i).childNodes(0).Text
|
case "ToUserName" '接收者微信账号。即我们的企业微信CorpID。
|
ToUserName = nodes(i).childNodes(0).Text
|
case "CreateTime" '消息创建时间(整型)
|
CreateTime = nodes(i).childNodes(0).Text
|
case "MsgType" '消息类型,文本:text 图片:image 语音:voice 视频:video 位置:location 链接:link
|
MsgType = nodes(i).childNodes(0).Text
|
case "AgentID" '企业应用的id,整型。可在应用的设置页面查看
|
AgentID = nodes(i).childNodes(0).Text
|
case "Content" '文本消息内容
|
Content = nodes(i).childNodes(0).Text
|
case "PicUrl" '文本消息内容
|
PicUrl = nodes(i).childNodes(0).Text
|
case "MediaId" '文本消息内容
|
MediaId = nodes(i).childNodes(0).Text
|
case "MsgId" '消息id,64位整型
|
MsgId = nodes(i).childNodes(0).Text
|
end select
|
Next
|
Set xml_Content=Nothing
|
Set rs = Server.CreateObject("ADODB.Recordset")
|
|
'消息类型,文本消息:text
|
if MsgType="text" Then
|
If Len(Content)=8 Or Len(Content)=14 Then '更换调度单号
|
selectDate=API_selectSql("wxDispatch|"&toAgentID&"|",FromUserName,0)
|
If selectDate<>"" then
|
selectDateSP = SPLIT(selectDate,"|")
|
WX_DispatchOrdID=selectDateSP(2)
|
WX_PicUrl=selectDateSP(3)
|
WX_Id=selectDateSP(4)
|
If Len(Content)=8 Then
|
OrdClass="SA"
|
NS_Time_year=CInt(Mid(Content,1,1))
|
If NS_Time_year>=6 Then
|
NS_Time_year="201"&NS_Time_year
|
Else
|
NS_Time_year="202"&NS_Time_year
|
End If
|
NS_Time_month=Mid(Content,2,2)
|
NS_Time_day=Mid(Content,4,2)
|
OrdNo=Mid(Content,6,3)
|
Else
|
OrdClass=Mid(Content,1,2)
|
NS_Time_year=Mid(Content,3,4)
|
NS_Time_month=Mid(Content,7,2)
|
NS_Time_day=Mid(Content,9,2)
|
OrdNo=Mid(Content,12,3)
|
End If
|
sql=""
|
If IsNumeric(NS_Time_year) And IsNumeric(NS_Time_month) And IsNumeric(NS_Time_day) And IsNumeric(OrdNo) Then
|
sql="select DispatchOrdID,DispatchOrdPicUrl,DispatchOrd_NS_Time,DispatchOrdNo,DispatchOrdClass,ServiceOrdPtName from DispatchOrd,ServiceOrder where ServiceOrdID=ServiceOrdIDDt and DispatchOrdClass='"&OrdClass&"' and DatePart(year,DispatchOrd_NS_Time)="&NS_Time_year&" and DatePart(Month,DispatchOrd_NS_Time)="&NS_Time_month&" and DatePart(Day,DispatchOrd_NS_Time)="&NS_Time_day&" and DispatchOrdNo="&OrdNo
|
End If
|
If sql<>"" Then
|
rs.open sql,objConn,1,1
|
If not rs.Eof then
|
DispatchOrdID = rs("DispatchOrdID") '调度单号
|
DispatchOrdPicUrl = rs("DispatchOrdPicUrl") '图片路径
|
ServiceOrdPtName = rs("ServiceOrdPtName") '病人姓名
|
DispatchOrdNo = rs("DispatchOrdClass")& year(rs("DispatchOrd_NS_Time"))&Right("0"&month(rs("DispatchOrd_NS_Time")),2)&Right("0"&day(rs("DispatchOrd_NS_Time")),2) & "-"&Right("00"&rs("DispatchOrdNo"),3) '调度单编号
|
sql="update API_Json set method='wxDispatch|"&toAgentID&"|"&DispatchOrdID&"',Json_time=getdate() where id="&WX_Id
|
objConn.Execute sql
|
If DispatchOrdPicUrl="0" Then
|
ToContent="是否确认上传"&DispatchOrdNo&"["&ServiceOrdPtName&"]的转运同意书"&chr(13)&chr(10)&chr(13)&chr(10)&"确认请回复1"&chr(13)&chr(10)&chr(13)&chr(10)&"取消请回复0"&chr(13)&chr(10)&chr(13)&chr(10)&"其它调度单请回复单号后8位数字,例如70718001"
|
Else
|
ToContent=DispatchOrdNo&"["&ServiceOrdPtName&"]已上传转运同意书,是否继续?"&chr(13)&chr(10)&chr(13)&chr(10)&"继续请回复1"&chr(13)&chr(10)&"覆盖请回复2"&chr(13)&chr(10)&"取消请回复0"&chr(13)&chr(10)&chr(13)&chr(10)&"其它调度单请回复单号后8位数字,例如70718001"
|
End If
|
Else
|
ToContent="调度单号不存在,请重新输入!"
|
End If
|
rs.close()
|
Else
|
ToContent="调度单号格式错误,请重新输入!"
|
End If
|
strsend= API_strsend(FromUserName,ToContent)
|
End If
|
|
ElseIf Content="1" Then '同意上传
|
selectDate=API_selectSql("wxDispatch|"&toAgentID&"|",FromUserName,1)
|
If selectDate<>"" then
|
selectDateSP = SPLIT(selectDate,"|")
|
WX_DispatchOrdID=selectDateSP(2)
|
WX_PicUrl=selectDateSP(3)
|
WX_PicUrl=downFile(WX_PicUrl,"/upload/","jpg")
|
sql="update DispatchOrd set DispatchOrdPicUrl=DispatchOrdPicUrl+',"&WX_PicUrl&"' where DispatchOrdID="&WX_DispatchOrdID
|
objConn.Execute sql
|
ToContent="上传完成"
|
strsend= API_strsend(FromUserName,ToContent)
|
End If
|
ElseIf Content="2" Then '覆盖上传
|
selectDate=API_selectSql("wxDispatch|"&toAgentID&"|",FromUserName,1)
|
If selectDate<>"" then
|
selectDate = SPLIT(selectDate,"|")
|
WX_DispatchOrdID=selectDate(2)
|
WX_PicUrl=selectDate(3)
|
WX_PicUrl=downFile(WX_PicUrl,"/upload/","jpg")
|
sql="update DispatchOrd set DispatchOrdPicUrl='0,"&WX_PicUrl&"' where DispatchOrdID="&WX_DispatchOrdID
|
objConn.Execute sql
|
ToContent="上传完成"
|
strsend= API_strsend(FromUserName,ToContent)
|
End If
|
ElseIf Content="0" Then '取消操作
|
selectDate=API_selectSql("wxDispatch|"&toAgentID&"|",FromUserName,1)
|
ToContent="上传已取消"
|
strsend= API_strsend(FromUserName,ToContent)
|
Else
|
ToContent="已收到"
|
strsend= API_strsend(FromUserName,ToContent)
|
End If
|
|
'Call API_JsonSql("url",ToContent,"vicgame")
|
|
|
'消息类型,图片消息:image
|
ElseIf MsgType="image" Then
|
sql="select DispatchOrdID,DispatchOrdPicUrl,DispatchOrd_NS_Time,DispatchOrdNo,DispatchOrdClass,ServiceOrdPtName from DispatchOrd,OA_User,DispatchOrd_Entourage,ServiceOrder where ServiceOrdID=ServiceOrdIDDt and DispatchOrdState>=4 and DispatchOrdState<=7 and DispatchOrdID=DispatchOrdIDDt and EntourageOAid=OA_User_ID and EntourageLead=1 and EntourageState=3 and OA_weixinUserID='"&FromUserName&"' order by DispatchOrdID desc"
|
rs.open sql,objConn,1,1
|
If not rs.Eof then
|
DispatchOrdID = rs("DispatchOrdID") '调度单号
|
DispatchOrdPicUrl = rs("DispatchOrdPicUrl") '图片路径
|
ServiceOrdPtName = rs("ServiceOrdPtName") '病人姓名
|
DispatchOrdNo = rs("DispatchOrdClass")& year(rs("DispatchOrd_NS_Time"))&Right("0"&month(rs("DispatchOrd_NS_Time")),2)&Right("0"&day(rs("DispatchOrd_NS_Time")),2) & "-"&Right("00"&rs("DispatchOrdNo"),3) '调度单编号
|
|
If DispatchOrdPicUrl="0" And PicUrl<>"" Then
|
Call API_JsonSql("wxDispatch|"&toAgentID&"|"&DispatchOrdID,PicUrl,FromUserName)
|
ToContent="是否确认上传"&DispatchOrdNo&"["&ServiceOrdPtName&"]的转运同意书"&chr(13)&chr(10)&chr(13)&chr(10)&"确认请回复1"&chr(13)&chr(10)&chr(13)&chr(10)&"取消请回复0"&chr(13)&chr(10)&chr(13)&chr(10)&"其它调度单请回复单号后8位数字,例如70718001"
|
strsend= API_strsend(FromUserName,ToContent)
|
ElseIf PicUrl<>"" Then
|
Call API_JsonSql("wxDispatch|"&toAgentID&"|"&DispatchOrdID,PicUrl,FromUserName)
|
ToContent=DispatchOrdNo&"["&ServiceOrdPtName&"]已上传转运同意书,是否继续?"&chr(13)&chr(10)&chr(13)&chr(10)&"继续请回复1"&chr(13)&chr(10)&"覆盖请回复2"&chr(13)&chr(10)&"取消请回复0"&chr(13)&chr(10)&chr(13)&chr(10)&"其它调度单请回复单号后8位数字,例如70718001"
|
strsend= API_strsend(FromUserName,ToContent)
|
End If
|
Else
|
Call API_JsonSql("wxDispatch|"&toAgentID&"|0",PicUrl,FromUserName)
|
ToContent="你现在没有正在执行的出车任务"&chr(13)&chr(10)&chr(13)&chr(10)&"其它调度单请回复单号后8位数字,例如70718001"
|
strsend= API_strsend(FromUserName,ToContent)
|
End If
|
rs.close()
|
end If
|
End If
|
response.write strsend
|
|
'Call API_JsonSql("url",strsend,"vicgame")
|
'信息回复
|
Private Function API_strsend(FromUserName,ToContent)
|
strsend="<xml>"
|
strsend=strsend&"<ToUserName><![CDATA["&FromUserName&"]]></ToUserName>"
|
strsend=strsend&"<FromUserName><![CDATA["&ToUserName&"]]></FromUserName>"
|
strsend=strsend&"<CreateTime>"&CreateTime&"</CreateTime>"
|
strsend=strsend&"<MsgType><![CDATA[text]]></MsgType>"
|
strsend=strsend&"<Content><![CDATA["&ToContent&"]]></Content>"
|
strsend=strsend&"</xml>"
|
url="http://api.v.com.cn/weixin/Enterprise/" '//定义要获取源代码的网址,一般是通过变量传递过来
|
Origin="encodingAesKey="&encodingAesKey
|
Origin=Origin&"&token="&token
|
Origin=Origin&"&corpId="&corpId
|
Origin=Origin&"×tamp="×tamp
|
Origin=Origin&"&nonce="&nonce
|
Origin=Origin&"&RespData="&Server.URLEncode(strsend)
|
'Call API_JsonSql("url",url&"?"&Origin,"vicgame")
|
API_strsend= GetBody(url,Origin)
|
End Function
|
|
'查询数据库最后一次回复结果
|
Private Function API_selectSql(method,reserve,isJson)
|
'Call API_JsonSql(method,reserve,"vicgame")
|
sql="select top 1 * from API_Json where method like '"&method&"%' and reserve='"&reserve&"' and is_Json=0 and datediff(Hour,is_Json_time,getdate())<=10 order by id desc"
|
rs.open sql,objConn,1,1
|
If not rs.Eof Then
|
API_selectSql=rs("method")&"|"&rs("Json")&"|"&rs("id")
|
sql="update API_Json set is_Json="&isJson&",Json_time=getdate() where id="&rs("id")
|
objConn.Execute sql
|
Else
|
API_selectSql=""
|
End If
|
rs.close()
|
End Function
|
|
'返回结果写入数据库
|
Private Function API_JsonSql(method,HTMLCODE,reserve)
|
sql="Insert into API_Json (method,Json,reserve) values ('"&method&"','"&HTMLCODE&"','"&reserve&"')"
|
objConn.Execute sql
|
End Function
|
%>
|