⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alipay_notify.asp

📁 网页源码,是最好的网店代码。可以支持批量上传产品等功能。
💻 ASP
字号:
<!--#include file="./MD5.asp"-->
<!--#include file="./alipay_Config.asp"-->
<%
'	sDate	= Now()
'	sDate	= Year(sDate) & Right(("00" & Month(sDate)),2) & Right(("00" & Day(sDate)),2) & Right(("00" & Hour(sDate)),2) & Right(("00" &  Minute(sDate)),2) & Right(("00" & Second(sDate)),2)

'	Set fso = server.CreateObject("scripting.filesystemobject")					'创建日志
'	Set tf = fso.opentextfile(server.mappath("./log"&sDate&".html"),8,True)		'创建日志


	Set md5Obj	= New MD5
	md5Obj.MD5_Initialize()


	Dim returnTxt		'返回给支付宝通知接口的结果
	Dim alipayNotifyURL	'支付宝查询接口URL
	Dim ResponseTxt		'交易查询结果
	returnTxt			= "test"

	'ATN 校验地址 
	'*******************************************************************
	alipayNotifyURL = "https://www.alipay.com/cooperate/gateway.do?"
	alipayNotifyURL	= alipayNotifyURL & "service=notify_verify&partner=" & partner & "&notify_id=" & request.Form("notify_id")

	'获取ATN结果,如果你的服务器不支持https访问的话,需要用老的接口查询地址了

	'如果你的服务器不支持https访问的话,可以使用http查询地址,具体如下:
	'alipayNotifyURL = "http://notify.alipay.com/trade/notify_query.do?"
	'alipayNotifyURL = alipayNotifyURL &"partner=" & partner & "notify_id=" & request.Form("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




	sign				= DelStr(Request("sign"))
	total_fee			= DelStr(Request("total_fee"))
	seller_email		= DelStr(Request("seller_email"))
	trade_status		= DelStr(Request("trade_status"))

''''以下是参数例表,如需用到可以获取来使用

		'实物和虚拟都可以获取如下值
'		price				 = DelStr(Request("price"))     '商品单价
'		gmt_payment			 = DelStr(Request("gmt_payment"))   '买家付款时间
'		trade_status		 = DelStr(Request("trade_status"))   '交易状态
'		seller_actions		 = DelStr(Request("seller_actions"))  '卖家动作
'		total_fee			 = DelStr(Request("total_fee"))    '总价
'		body				 = DelStr(Request("body"))     '商品描述
'		notify_id			 = DelStr(Request("notify_id"))    '交易返回ID
'		gmt_logistics_modify = DelStr(Request("gmt_logistics_modify")) '物流状态更新时间
'		seller_id			 = DelStr(Request("seller_id"))    '卖家PARTNER值
'		sign				 = DelStr(Request("sign"))     'MD5加密串
'		notify_time			 = DelStr(Request("notify_time"))   '收到通知时间
'		notify_type			 = DelStr(Request("notify_type"))   '通知类型, trade_status_sync表示交易状态同步动知
'		use_coupon			 = DelStr(Request("use_coupon"))   '是否使用红包
'		seller_email		 = DelStr(Request("seller_email"))   '卖家帐号
'		is_total_fee_adjust  = DelStr(Request("is_total_fee_adjust")) '交易金额是否修改过
'		quantity			 = DelStr(Request("quantity"))    '购买数量
'		buyer_email			 = DelStr(Request("buyer_email"))   '买家帐号
'		subject				 = DelStr(Request("subject"))    '商品名称
'		buyer_id			 = DelStr(Request("buyer_id"))    '买家PARTNER值
'		payment_type		 = DelStr(Request("payment_type"))   '支付类型
'		receive_address		 = DelStr(Request("receive_address"))  '收货地址
'		receive_name		 = DelStr(Request("receive_name"))   '收货人姓名
'		logistics_payment	 = DelStr(Request("logistics_payment"))  '物流付款方式
'		gmt_create			 = DelStr(Request("gmt_create"))   '交易创建时间
'		trade_no			 = DelStr(Request("trade_no"))    '支付宝交易号
'		logistics_fee		 = DelStr(Request("logistics_fee"))   '物流费用
'		receive_zip			 = DelStr(Request("receive_zip"))   '收货人邮编
'		logistics_type		 = DelStr(Request("logistics_type"))  '物流类型
'		sign_type			 = DelStr(Request("sign_type"))    '签名类型
'		out_trade_no		 = DelStr(Request("out_trade_no"))   '外部交易号
'		discount			 = DelStr(Request("discount"))    '折扣




		'即时到帐返回参数
'		trade_status		 = DelStr(Request("trade_status"))  '交易状态
'		sign_type			 = DelStr(Request("sign_type"))  '签名类型
'		out_trade_no		 = DelStr(Request("out_trade_no"))  '外部交易号
'		body				 = DelStr(Request("body"))    '商品描述
'		total_fee			 = DelStr(Request("total_fee"))  '总价
'		logistics_fee		 = DelStr(Request("logistics_fee")) '运费
'		trade_no			 = DelStr(Request("trade_no"))   '支付宝内部交易号
'		buyer_id			 = DelStr(Request("buyer_id"))   '买号PARTNER
'		payment_type		 = DelStr(Request("payment_type"))  '物流方式
'		notify_time			 = DelStr(Request("notify_time"))  '收到通知时间
'		sign				 = DelStr(Request("sign"))    'MD5加密串
'		notify_type			 = DelStr(Request("notify_type"))  '通知类型
'		subject				 = DelStr(Request("subject"))   '商品名称
'		buyer_email			 = DelStr(Request("buyer_email"))  '买家支付宝帐号
'		seller_email		 = DelStr(Request("seller_email"))  '卖家帐号
'		seller_id			 = DelStr(Request("seller_id"))  '卖家PARTNER
'		notify_id			 = DelStr(Request("notify_id"))  '交易返回ID








	'*******************************************************************
	'获取支付宝POST过来通知消息
	For Each varItem in Request.Form 
		mystr=varItem&"="&Request.Form(varItem)&"^"&mystr
	Next 



'tf.writeline("交易返回:"& mystr )


	If mystr<>"" Then 
		mystr=Left(mystr,Len(mystr)-1)
	End If 

	'*******************************************************************
	mystr = SPLIT(mystr, "^")
	Count=ubound(mystr)
	'对参数排序
	For i = Count 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 Count Step 1
		value = SPLIT(mystr( j ), "=")

		If  value(1)<>"" And value(0)<>"sign" And value(0)<>"sign_type"  Then
			If j=Count Then
				md5str= md5str&mystr( j )
			Else 
				md5str= md5str&mystr( j )&"&"
			End If 
		End If 
	Next
	md5str=md5str&key
	'生成md5摘要
	mysign=md5Obj.md5(md5str)

	
	'*******************************************************************

'***********日志
'	tf.writeline("mysign=" & mysign)
'	tf.writeline("  sign=" & sign)
'	tf.writeline("total_fee=" & total_fee)
'	tf.writeline("seller_email=" & seller_email)
'	tf.writeline("trade_status=" & trade_status)
'	tf.close
	'等待买家付款
	If trade_status = "WAIT_BUYER_PAY" Then
		'支付宝发货通知
		If (ResponseTxt = "true") Then
			returnTxt	= "success"
		Else
			returnTxt	= "fail"
		End If

	'买家付款成功,等待卖家发货
	ElseIf trade_status = "WAIT_SELLER_SEND_GOODS" Then
		'支付宝发货通知
		If (ResponseTxt = "true") Then
			returnTxt	= "success"
		Else
			returnTxt	= "fail"
		End If

	'等待买家确认收货
	ElseIf trade_status = "WAIT_BUYER_CONFIRM_GOODS" Then
		'支付宝发货通知
		If (ResponseTxt = "true") Then
			returnTxt	= "success"
		Else
			returnTxt	= "fail"
		End If
		
	'交易成功结束
	ElseIf trade_status = "TRADE_FINISHED" Then
		If (ResponseTxt = "true") Then
			returnTxt	= "success"
		Else
			returnTxt	= "fail"
		End If
	
	'其他交易状态通知情况
	Else
		If (ResponseTxt = "true") Then
			returnTxt	= "success"
		Else
			returnTxt	= "fail"
		End If
	End If


	Response.Write returnTxt

	'调用方法 DelStr(值),防止SQL注入攻击
	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


%>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -