<% @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 %>