【调度系统】广东民航医疗快线调度系统源代码
wanglizhong
2025-05-05 2a11acffdd3df927be6abace9e8155e370b49681
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
<%
' 支付宝接口公用函数
' 详细:该类是请求、通知返回两个文件所调用的公用函数核心处理文件
' 版本:3.3
' 修改日期:2012-07-13
' 说明:
' 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
' 该代码仅供学习和研究支付宝接口使用,只是提供一个参考。
%>
 
<!--#include file="md5.asp"-->
 
<%
 
''
' 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
' param sPara 需要拼接的数组
' return 拼接完成以后的字符串
Function CreateLinkstring(sPara)
    nCount = ubound(sPara)
    Dim prestr
    For i = 0 To nCount
        If i = nCount Then
            prestr = prestr & sPara(i)
        Else
            prestr = prestr & sPara(i) & "&"
        End if
    Next
    
    CreateLinkstring = prestr
End Function
 
''
' 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,并且做urlencode编码
' param sPara 需要拼接的数组
' return 拼接完成以后的字符串
function CreateLinkStringUrlEncode(sPara)
    nCount = ubound(sPara)
    dim prestr
    for i = 0 to nCount
        '把sPara的数组里的元素格式:变量名=值,分割开来
        pos = Instr(sPara(i),"=")            '获得=字符的位置
        nLen = Len(sPara(i))                '获得字符串长度
        itemName = left(sPara(i),pos-1)    '获得变量名
        itemValue = right(sPara(i),nLen-pos)'获得变量的值
        
        if itemName <> "service" and itemName <> "_input_charset" then
            prestr = prestr & itemName &"=" & server.URLEncode(itemValue) & "&"
        else
            prestr = prestr & sPara(i) & "&"
        end if
    next
    
    CreateLinkStringUrlEncode = prestr
end function
 
''
' 除去数组中的空值和签名参数
' param sPara 签名参数组
' return 去掉空值与签名参数后的新签名参数组
Function FilterPara(sPara)
    Dim sParaFilter(),nCount,j
    nCount = ubound(sPara)
    j = 0
    For i = 0 To nCount
        '把sPara的数组里的元素格式:变量名=值,分割开来
        pos = Instr(sPara(i),"=")            '获得=字符的位置
        nLen = Len(sPara(i))                '获得字符串长度
        itemName = left(sPara(i),pos-1)    '获得变量名
        itemValue = right(sPara(i),nLen-pos)'获得变量的值
        
        If itemName <> "sign" And itemName <> "sign_type" And itemValue <> "" and isnull(itemValue) = false Then
            Redim Preserve sParaFilter(j)
            sParaFilter(j) = sPara(i)
            j = j + 1
        End If
    Next
    
    FilterPara = sParaFilter
End Function
 
''
' 对数组排序
' param sPara 排序前的数组
' return 排序后的数组
Function SortPara(sPara)
    Dim nCount
    nCount = ubound(sPara)
    For i = nCount To 0 Step -1
        minmax = sPara( 0 )
        minmaxSlot = 0
        For j = 1 To i
            mark = (sPara( j ) > minmax)
            If mark Then 
                minmax = sPara( j )
                minmaxSlot = j
            End If
        Next
        If minmaxSlot <> i Then 
            temp = sPara( minmaxSlot )
            sPara( minmaxSlot ) = sPara( i )
            sPara( i ) = temp
        End If
    Next
    SortPara = sPara
end function
 
''
' MD5签名
' param prestr 需要签名的字符串
' param key 私钥
' param input_charset 编码格式
' return 签名结果
Function Md5Sign(prestr, key, input_charset)
    Dim mysign
    
    '把拼接后的字符串再与安全校验码直接连接起来
    prestr = prestr & key
    
    mysign = md5(prestr,input_charset)
    
    Md5Sign = mysign
End Function
 
''
' MD5验证签名
' param prestr 需要签名的字符串
' param sign 签名结果
' param key 私钥
' param input_charset 编码格式
' return 签名结果
Function Md5Verify(prestr, sign, key, input_charset)
    Dim mysign
    
    '把拼接后的字符串再与安全校验码直接连接起来
    prestr = prestr & key
    
    mysign = md5(prestr,input_charset)
    
    '比较获得的sign签名结果是否与生成的mysign签名结果相等
    If mysign = sign Then
        Md5Verify = true
    Else
        Md5Verify = false
    End If
End Function
 
''
' 写日志,方便测试(看网站需求,也可以改成存入数据库)
' param sWord 要写入日志里的文本内容
Function LogResult(sWord)
    Randomize
    Set fs= createobject("scripting.filesystemobject")
    Set ts=fs.createtextfile(server.MapPath("log/"&GetDateTime()&INT((1000+1)*RND)&".txt"),true)
    ts.writeline(sWord)
    ts.close
    Set ts=Nothing
    Set fs=Nothing
End Function
 
''
' 获取当前时间
' 格式:年[4位]-月[2位]-日[2位] 小时[2位 24小时制]:分[2位]:秒[2位],如:2007-10-01 13:13:13
' return 时间格式化结果
Function GetDateTimeFormat()
    sTime=now()
    sResult    = year(sTime)&"-"&right("0" & month(sTime),2)&"-"&right("0" & day(sTime),2)&" "&right("0" & hour(sTime),2)&":"&right("0" & minute(sTime),2)&":"&right("0" & second(sTime),2)
    GetDateTimeFormat = sResult
End Function
 
''
' 获取当前时间
' 格式:年[4位]月[2位]日[2位]小时[2位 24小时制]分[2位]秒[2位],如:20071001131313
' return 时间格式化结果
Function GetDateTime()
    sTime=now()
    sResult    = year(sTime)&right("0" & month(sTime),2)&right("0" & day(sTime),2)&right("0" & hour(sTime),2)&right("0" & minute(sTime),2)&right("0" & second(sTime),2)
    GetDateTime = sResult
End Function
 
''
' 过滤特殊字符
' param Str 要被过滤的字符串
' return 已被过滤掉的新字符串
Function DelStr(Str)
    If IsNull(Str) Or IsEmpty(Str) Then
        Str    = ""
    End If
    DelStr    = Replace(Str,";","")
    DelStr    = Replace(DelStr,"'","")
    DelStr    = Replace(DelStr,"&","")
    DelStr    = Replace(DelStr," ","")
    DelStr    = Replace(DelStr," ","")
    DelStr    = Replace(DelStr,"%20","")
    DelStr    = Replace(DelStr,"--","")
    DelStr    = Replace(DelStr,"==","")
    DelStr    = Replace(DelStr,"<","")
    DelStr    = Replace(DelStr,">","")
    DelStr    = Replace(DelStr,"%","")
End Function
 
Function create_str(obj) 
 Dim char_array(80) 
 Dim temp 
 For i = 0 To 9  
  char_array(i) = Cstr(i) 
 Next 
 For i = 10 To 35 
  char_array(i) = Chr(i + 55) 
 Next 
 For i = 36 To 61 
  char_array(i) = Chr(i + 61) 
 Next 
 Randomize 
 For i = 1 To obj 
  'rnd函数返回的随机数在0~1之间,可等于0,但不等于1 
  '公式:int((上限-下限+1)*Rnd+下限)可取得从下限到上限之间的数,可等于下限但不可等于上限 
  temp = temp&char_array(int((61 - 0 + 1)*Rnd) + 0) 
  'Response.Write char_array(int((61 - 0 + 1)*Rnd) + 0) &"|"& int((61 - 0 + 1)*Rnd) + 0  &"<br>"
 Next 
 create_str = temp 
End Function 
 
function FillZero(str)
  if len(str)=1 then
      FillZero = "0"&str
  else
      FillZero=str
 end if
end function
'*************************************************************************************************
%>