www.gusucode.com > 中网景企业网站管理系统 2008源码程序 > chinese/pay_receive_alipay.asp

    <!--#include file="../cnkdata/dbname.asp" -->
<!--#include file="../common/config.asp"-->
<%
dim conn
dim connstr
dim db
db = "../cnkdata/"&dbname '数据库位置
connstr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(db)	
'On Error Resume Next'开发时间暂关
Set conn = Server.CreateObject("ADODB.Connection")	
conn.open connstr

If err then
	err.clear
	Set conn = nothing
	response.write "数据库连接出错,请检查连接字串。"
	response.End
End If

sub closedb()
	conn.close
	set conn=nothing
end sub
%>
<!--#include file="../common/md5_32.asp"-->
<!--#include file="../common/function.asp"-->
<%
Dim key,partner,alipayNotifyURL,Retrieval,ResponseTxt
Dim out_trade_no,total_fee,receive_name,receive_address,receive_zip,receive_phone,receive_mobile
Dim varItem,mystr,acount,i,j,minmax,minmaxSlot,mark,temp,avalue,md5str,mysign
'Partner 和 交易安全校验码
rs.open "select * from cnk_payway where payname='alipay' and isopen=1",conn,1,1 
partner		=rs("partnerid")	 '设置对应账户的合作者身份ID
key			=rs("paykey")	 '设置支付宝的安全校验码
rs.close

	out_trade_no	= DelStr(Request("out_trade_no"))  '获取定单号
    total_fee		= DelStr(Request("total_fee"))     '获取支付的总价格
    receive_name    =DelStr(Request("receive_name"))   '获取收货人姓名
	receive_address =DelStr(Request("receive_address"))'获取收货人地址
	receive_zip     =DelStr(Request("receive_zip"))    '获取收货人邮编
	receive_phone   =DelStr(Request("receive_phone"))  '获取收货人电话
	receive_mobile  =DelStr(Request("receive_mobile")) '获取收货人手机

'**********************判断消息是不是支付宝发出********************
alipayNotifyURL = "http://notify.alipay.com/trade/notify_query.do?"
alipayNotifyURL = alipayNotifyURL &"partner=" & partner & "&notify_id=" & request("notify_id")
	Set Retrieval = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
    Retrieval.setOption 2, 13056
    Retrieval.open "GET", alipayNotifyURL, False, "", "" 
    Retrieval.send()
    ResponseTxt = Retrieval.ResponseText
	Set Retrieval = Nothing
'*******************************************************************

'*******获取支付宝GET过来通知消息,判断消息是不是被修改过************
For Each varItem in Request.QueryString
	mystr=varItem&"="&Request(varItem)&"^"&mystr
Next 
If mystr<>"" Then 
	mystr=Left(mystr,Len(mystr)-1)
End If 
mystr = SPLIT(mystr, "^")
acount=ubound(mystr)
'对参数排序
For i = acount TO 0 Step -1
	minmax = mystr( 0 )
	minmaxSlot = 0
	For j = 1 To i
		mark = (mystr( j ) > minmax)
		If mark Then 
			minmax = mystr( j )
			minmaxSlot = j
		End If 
	Next    
	If minmaxSlot <> i Then 
		temp = mystr( minmaxSlot )
		mystr( minmaxSlot ) = mystr( i )
		mystr( i ) = temp
	End If
Next
'构造md5摘要字符串
For j = 0 To acount Step 1
	avalue = SPLIT(mystr( j ), "=")
	If  avalue(1)<>"" And avalue(0)<>"sign" And avalue(0)<>"sign_type"  Then
		If j=acount Then
			md5str= md5str&mystr( j )
		Else 
			md5str= md5str&mystr( j )&"&"
		End If 
	End If 
Next
md5str=md5str&key
mysign=md5(md5str)
'********************************************************

Dim pay_msg
If mysign=Request("sign") and ResponseTxt="true"   Then 	
	conn.execute("update cnk_orderform set zhuangtai=1,payway='支付宝收到付款,请发货' where orderid='"&sqlchkchar(out_trade_no)&"'")	'处理订单状态
	pay_msg="支付成功"
Else
	pay_msg="支付失败"
End If 

Response.write "<script language=javascript>"
Response.write "window.location.href='pay_showResult.asp?msg=" & pay_msg & "';"  '替换成商户网站相应页面地址
Response.write "</script>"

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

%>