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