【调度系统】广东民航医疗快线调度系统源代码
wanglizhong
2025-04-22 72c0df785d4838d35dc694071c61e3f9a54e7e81
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
<% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %> 
<% Session.CodePage=65001 %> 
<% Response.charset = "utf-8" %>
<!--#include virtual="/v3/inc/md5.asp"-->
 
<%
key               = "y4Zx8UC1esErKTxt"
set xml_dom = Server.CreateObject("MSXML2.DOMDocument")'此处根据您的实际服务器情况改写
xml_dom.resolveExternals = false
xml_dom.load request
return_code=xml_dom.getelementsbytagname("return_code").item(0).Text    '返回状态码 SUCCESS
total_fee=xml_dom.getelementsbytagname("total_fee").item(0).Text        '总金额
attach=xml_dom.getelementsbytagname("attach").item(0).Text                '商家数据包
mch_id=xml_dom.getelementsbytagname("mch_id").item(0).Text                '商户号
transaction_id=xml_dom.getelementsbytagname("transaction_id").item(0).Text    '微信支付订单号
out_trade_no=xml_dom.getelementsbytagname("out_trade_no").item(0).Text    '商户订单号
 
'测试数据
'return_code="SUCCESS"
'total_fee=1
'attach="1016012936"
'mch_id="123"
'transaction_id="1234"
'out_trade_no="1016012936"
 
 
'return_code=SUCCESS为支付成功
If return_code="SUCCESS" Then
 
    '------ 新增订单支付信息 ----------
    method="PaidMoney_APP"
    APPID="Pay966120"
    If InStr(attach,"|")>0 then 
        attachSP=SPLIT(attach,"|")
        ServiceOrdID=attachSP(0)
        PaidRemarks=attachSP(1)&"|"
    Else
        ServiceOrdID=attach
        PaidRemarks=""
    End If
    PaidMoneyType=3
    total_fee=CSng(total_fee)/100
    mch_id=mch_id
    transaction_id=transaction_id
    out_trade_no=out_trade_no
    PayMono="微信支付"
    GetString="method="&method&"&APPID="&APPID&"&ServiceOrdID="&ServiceOrdID&"&PaidMoneyType="&PaidMoneyType&"&PaidMoney="&total_fee&"&PaidRemarks="&PaidRemarks&transaction_id&"&DispatchOrdID="&DispatchOrdID&"&UnixTime="&ToUnixTime(now(),+8)
    sParaSort=GetString
    Signature=stringAPI(sParaSort)
    'Response.Write "https://api.966120.com.cn/v1/?"&GetString&"&Sign="&Signature
    'Response.end
    call GetAPI("https://api.966120.com.cn/v3/",GetString&"&Sign="&Signature)
    '----------------------------
 
End If
 
 
'Get方法
Function GetAPI(appUrl,Origin)
Set https = Server.CreateObject("Msxml2.ServerXMLHTTP") 
 
With https 
.Open "GET", appUrl&"?"&Origin, False
.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
.Send ""
GetAPI = .ResponseBody
End With 
GetAPI = BytesToAPI(GetAPI,"utf-8")
Set https = Nothing 
End Function
Function BytesToAPI(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
BytesToAPI = objstream.ReadText 
objstream.Close
set objstream = nothing
End Function
 
'Sign签名
Function stringAPI(sParaSort)
    stringCount=Split(sParaSort,"&")
    ReDim arr(ubound(stringCount),2)
    Dim v                       '所有表单值
    Dim t                       '所有表单数量
    v=sParaSort
    t=ubound(stringCount)+1
    sParaSort=""
    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)
        End if
    Next
    sign_type       = "MD5"
    input_charset="utf-8"
    stringAPI=Md5Sign(sParaSort,key,input_charset)
    'stringAPI=sParaSort
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
 
'--------------------------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
%>
<xml>
   <return_code><![CDATA[SUCCESS]]></return_code>
   <return_msg><![CDATA[OK]]></return_msg>
</xml>