% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %>
<% Session.CodePage=65001 %>
<% Response.charset = "utf-8" %>
<%
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/v1/",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) & "
"
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
%>