gusucode.com > 爱美尔女性商城源码 1.0源码程序 > myAlipay/myAlipay.asp

    <!--#include file="./MD5.asp"-->
<%
'/***************************************************************************************************************
	'* FileName:	myAlipay.asp
	'* Description:	Asp网店与支付宝集成类,提供网店与支付宝结算系统集成的业务接口;接口使用前提:必须成功获得支付宝个人或企业认证,拥有通过认证的Email
	'* Copyright:	Copyright (c) 2005/7/25 (说明:本接口根据支付宝开发团队提供的Java接口改编,所以保持了java接口名称,以方便某些用户的系统转换)
	'* Company:		淘宝网支付宝开发者论坛(http://dev.alipay.com)、易得网(http://www.ediom.net)
	'* Author:		yeaome(小叶/叶老四)
	'* Version:		Ver 2.0.0
	'* Contact_Me:	wangwang:yeaome ; QQ:38355624 ; MSN:yeaome@msn.com ; Mobile:13923706355/0755-84102932
'****************************************************************************************************************/

Class myAlipay

	Public REQUEST_URL				'支付宝交易处理地址
	Public GENERATE_BUTTON_CODE_URL	'生成支付宝交易处理地址的链接
	Public REQUEST_PAYTO_URL		'payto连接地址
	Public DEFAULT_ENCODING			'默认编码

	Private alipayVer				'版本编号
	Private md5Obj					'MD5加密算法对象(私有)


	'构造函数,初始化各必要变量
	Public Sub myAlipay_Initialize()
		REQUEST_URL					= "https://www.alipay.com/trade/i_buy.do?"
		GENERATE_BUTTON_CODE_URL	= "https://www.alipay.com/trade/i_link.do?"
		REQUEST_PAYTO_URL			= "https://www.alipay.com/payto:"
		DEFAULT_ENCODING			= "GBK"
		Call getDateVersion()
		
		'创建md5Obj实例,方便在generateTradeMD5接口中使用
		Set md5Obj					= New MD5
		md5Obj.MD5_Initialize()
	End Sub

	'请求生成支付宝交易处理地址的链接,返回生成“支付宝交易URL”(需要请求支付宝i_link地址)
	Public Function getTradeButtonURL(s1,s2,s3,s4,s5,s6)
		Dim strTemp,strURL,xmlObject
		strTemp				= GENERATE_BUTTON_CODE_URL & "goodsBid=" & s1
		strTemp				= strTemp & "&ordinaryFee=" & s2
		strTemp				= strTemp & "&expressFee=" & s3
		strTemp				= strTemp & "&sellerEmail=" & s4
		strTemp				= strTemp & "&goodsTitle=" & s5
		strTemp				= strTemp & "&securityCode=" & s6
		getTradeButtonURL	= getHTTPURL(strTemp)
	End Function


	'通过MD5算法等自动组合生成“支付宝交易URL”(不需要请求支付宝i_link地址)
	Public Function generateTradeButtonURL(s1,s2,s3,s4,s5,s6)
		Dim strTemp,strURL
		strTemp					= REQUEST_URL & "a=" & s1
		strTemp					= strTemp & "&b=" & s2
		strTemp					= strTemp & "&c=" & s3
		strTemp					= strTemp & "&d=" & s4
		strTemp					= strTemp & "&e=" & s5
		strTemp					= strTemp & "&v=" & alipayVer
		strTemp					= strTemp & "&f=" & generateTradeMD5(s5,s1,s2,s3,s4,s6)
		generateTradeButtonURL	= strTemp
	End Function

	
	'通过MD5算法等自动组合生成“支付宝payto交易URL”(最新payto接口,强烈建议使用本接口开发,同时它支持返回通知)
	Public Function generatePaytoURL(s1,s2,s3,s4,s5,s6,s7,s8,s9)
		Dim strTemp,strURL
		strTemp					= REQUEST_PAYTO_URL & s4 & "?"
		strTemp					= strTemp & "&cmd=" & s7
		strTemp					= strTemp & "&subject=" & s8
		strTemp					= strTemp & "&body=" & s9
		strTemp					= strTemp & "&order_no=" & s5
		strTemp					= strTemp & "&price=" & s1
		strTemp					= strTemp & "&ordinary_fee=" & s2
		strTemp					= strTemp & "&express_fee=" & s3
		strTemp					= strTemp & "&ac=" & generatePaytoMD5(s1,s2,s3,s4,s5,s6,s7,s8,s9)
		generatePaytoURL		= strTemp
	End Function

	'获取时间形式的版本号
	Public Sub getDateVersion()
		alipayVer		= "1.0_" & Year(Date()) & Right(("0" & Month(Date())),2) & Right(("0" & Day(Date())),2)
	End Sub

	'取得交易的MD5加密串,已经解决中文加密问题
	Public Function generateTradeMD5(s1,s2,s3,s4,s5,s6)
		Dim strTemp
		strTemp		= "goodsTitle" & s1 & "goodsBid" & s2 & "ordinaryFee" & s3 & "expressFee" & s4 & "sellerEmail" & s5 & s6
		generateTradeMD5	= md5Obj.md5(strTemp)
	End Function

	'取得payto交易的MD5加密串,已经解决中文加密问题
	Public Function generatePaytoMD5(s1,s2,s3,s4,s5,s6,s7,s8,s9)
		Dim strTemp
		strTemp		= "cmd" & s7 & "subject" & s8 & "body" & s9 & "order_no" & s5 & "price" & s1 & "ordinary_fee" & s2 & "express_fee" & s3 & "seller" & s4 & s6
		generatePaytoMD5	= md5Obj.md5(strTemp)
	End Function

	'私有接口,取得请求后返回的html
	Public Function getHTTPURL(strPath)
        Dim strTemp
		strTemp			= GetBody(strPath)
        getHTTPURL		= BytesToBstr(strTemp,"GB2312")
	End function

	'私有接口,取得请求后返回的html Stream
	Private Function GetBody(strURL)
		On Error Resume Next
        Set Retrieval		= CreateObject("Microsoft.XMLHTTP") 
        With Retrieval 
			.Open "GET", strURL, False, "", "" 
			.Send 
			GetBody	= .ResponseBody
        End With 
        Set Retrieval		= Nothing
	End Function

	'私有接口,转换Stream-->String
	Private Function BytesToBstr(strBody,strCharset)
        Dim streamObj
        set streamObj		= Server.CreateObject("ADODB.Stream")
        streamObj.Type		= 1
        streamObj.Mode		= 3
        streamObj.Open
        streamObj.Write strBody
        streamObj.Position	= 0
        streamObj.Type		= 2
        streamObj.Charset	= strCharset
        BytesToBstr			= streamObj.ReadText 
        streamObj.Close
        Set streamObj		= Nothing
	End Function

End Class
%>