asp 集成paypal
作者:佚名 時間:2012-02-05 分享到:
首先你要有2個帳號用來付款和收款,paypal想的很周到,在下面這個地址可以注冊
https://www.sandbox.paypal.com/cgi-bin/webscr
注冊方法,現在注冊一個和你平時一樣的帳號,單獨注冊,這個需要,
好了之后會讓你添加test account,需要2個,一個付款的,一個收款的,地址前綴隨便寫,密碼用簡單的一些的,例如12345678,金額隨便填寫個幾千幾百都行,反正是測試用的。
2個都添加好了之后的界面如下
然后還需要做一件事情,設置返回,需要在paypal里面設置得到一個身份標記,和填寫返回地址
身份標記獲得方法
1、登錄paypal并,選擇中文語言。
2、在“我的貝寶”-->“用戶信息” -->“更多選項”-->“網站付款習慣設定” --> 自動返回設置為開啟,返回url修改為自己網站的,付款數據傳輸設置為開啟,其它不用改,點保存
注意:如果你是本機測試,返回地址用localhost是不可以的,我是局域網環境,用本機的局域網IP,192.168.0.2后面再寫上網頁路徑就可以了
現在可以開始在網頁中加入代碼了
發送測試地址后,你就可以用剛才的測試帳號付款了
付款完成后會返回到你設置的頁面paypalreturn.asp
<%mainpath="data/1.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(mainpath)
conn.Open connstr
%>
<%
dim Msg
str1=Trim(request.querystring("tx"))
str2="&at=RVgu3U_YDBUHGzfnTUvH9ZZv2AAX0uNkALxfJ5TKko5Pq0lO3PJVZbLrlOK" '這里是Paypal身份標記,取得方法http://blog.sina.com.cn/s/blog_51c904510100fpdj.html
str = "?tx="&str1& "&cmd=_notify-synch"&str2
paypalurl="https://www.sandbox.paypal.com/cgi-bin/webscr" '測試版paypal,非測試版https://www.paypal.com/cgi-bin/webscr
paypalurl=paypalurl&str
Set objHttp=Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
objHttp.setOption 2, 13056
objHttp.open "POST",paypalurl,False,"",""
objHttp.send()
ResponseTxt = objHttp.ResponseText
Set objHttp=Nothing
ResponseTxt=UrlDecode(ResponseTxt)
If Mid(ResponseTxt,1,7) = "SUCCESS" Then
Call viate(dingdan) 'viate是自定義函數,可以在這里設置更新訂單的代碼
Msg = "非常感謝,您的訂單已支付成功,我們會在24小時內發貨!"
Else
Msg = "非常抱歉,在支付過程中,驗證支付數據出錯,有問題請聯系管理員!"
End If
response.write "" '支付完畢返回用戶訂單頁 !
Function viate(dingdan)
Form_Id=int(request("dingdan_id"))
'response.Write Form_Id
set rs=server.CreateObject("adodb.recordset")
sql="select * from orderlist where Form_Id="&Form_Id&"" '這里是訂單表 如果會員支付成功, 更改訂單狀態為已付款 !
rs.open sql,conn,3,3
If Not(rs.bof Or rs.eof) Then
rs("fukuan")=2
rs("fukuantime")=now()
rs.update
Else
response.write "訂單號出錯,請聯系管理員!"
End If
rs.close
Set rs=Nothing
End Function
function urldecode(encodestr)
newstr=""
havechar=false
lastchar=""
for i=1 to len(encodestr)
char_c=mid(encodestr,i,1)
if char_c="+" then
newstr=newstr & " "
elseif char_c="%" then
next_1_c=mid(encodestr,i+1,2)
next_1_num=cint("&H" & next_1_c)
if havechar then
havechar=false
newstr=newstr & chr(cint("&H" & lastchar & next_1_c))
else
if abs(next_1_num)<=127 then
newstr=newstr & chr(next_1_num)
else
havechar=true
lastchar=next_1_c
end if
end if
i=i+2
else
newstr=newstr & char_c
end if
next
urldecode=newstr
end Function
%>
上面這個就是更新數據庫中訂單狀態為已經付款了,你可以根據你的數據庫和表稍微改一下就可以了,過一段時間研究一下php版本的,應該差不多的,只是最后這個返回有少量的差異。
截圖了一下,我這邊付款后返回的狀態,
我這個是支付寶和paypal都合適的,其實一直想搞paypal但是因為一直不能測試支付這個環節。
如沒特殊注明,文章均為上海聯楷網絡原創,轉載請注明來自:http://www.ktcbnqb.cn/contact/20151229/n7697.html