我暈,最近這個用paypal付款的功能搞了我2天,還沒搞完。郁悶死了。
先做個筆記,把已經搞定的部分寫下來,省的以後忘了。
1 注冊SandBox賬號,並且建立兩個虛擬賬號,可以選擇自動建立的那一項。一個buyer,一個seller。以供 開發的時候測試使用。
2 實現快速購買的代碼。鏈接暫時指向SandBox便於開發時的測試。以後再改成正式的。
復制代碼 代碼如下:
if(!defined("_f_afficherButtonPayPal"))
{ define("_f_afficherButtonPayPal",1);
function afficherButtonPayPal($nbr_point,$montant)
{
echo"<td width=\"50\"> </td>";
echo "<td>
<form action=\"https://www.sandbox.paypal.com/cgi-bin/webscr\" method=\"post\" target=\"_blank\">
<input type=\"hidden\" name=\"cmd\" value=\"_xclick\">
<input type=\"hidden\" name=\"business\" value=\"[email protected]\"> //這個是剛才建立的seller的賬號
<input type=\"hidden\" name=\"item_name\" value=\"$nbr_point points\">
<input type=\"hidden\" name=\"currency_code\" value=\"EUR\"> //付款的幣種,我寫的是歐元
<input type=\"hidden\" name=\"amount\" value=\"$montant\"> // 快速付款的總金額
<input type=\"image\" src=\"../src/img/x-click-but01.gif\" name=\"submit\" alt=\"Veuillez vous payer par PayPal\"> //顯示的paypal圖片
</form>
</td>";
}
}
3 將已經付款的信息傳回去,應該是要用IPN,還沒搞定,再接再勵
補充資料:
從參考文檔得知:
Paypal專門開發了Sandbox給開發人員進行開發測試
首先到https://developer.paypal.com/ 注冊一個開發帳號,
再進入Sandbox建立測試用的Paypal虛擬帳號(至少應該建立一個Business的和一個Personal的),
這種賬號注冊方法和Paypal的流程一樣,信息可以是假的,包括銀行帳號、信用卡(其實Paypal Sandbox會自動生成
一些隨機的號碼)。接著激活Paypal Sandbox的虛擬帳號,注意,這裡不管你在Paypal Sanbox注冊時填什麼郵件地
址,有任何發送到虛擬帳號所填郵箱的郵件都存會在開發帳號的管理界面中的Email頁(導航欄上有)中。登錄Sandbox
的虛擬Paypal環境,還需要驗證虛擬帳號的銀行,這裡可以隨便填,然後通過Add Funds來給賬戶充值(想填多少填多
少)。然後,還需要激活IPN的選項,在Business的那個賬戶的Profile設置頁面中,點擊,然後點擊Edit按鈕,打開
IPN,這裡如果你使用的是固定的IPN Handle,可以直接將地址填入。
接下來,我們測試的時候,應該將Paypal接口的地址設置為https://www.sandbox.paypal.com/cgi-bin/webscr
最後基本的流程為:
用戶在我們的網站上選擇商品、放入購物車,然後檢查准備支付
網站根據購物車中的商品,生成Paypal的支付表單(也是提交到上面IPN用的Paypal接口地址),包含了此次交易的一
些信息(下次會專門找機會解釋一下)。並在自己的數據庫中生成一張訂單記錄。
Paypal在Session中記錄下這些交易信息
用戶用Paypal賬戶登錄Paypal(Sandbox用Sandbox的虛擬帳號),復查明細,點擊Pay按鈕
Paypal進行交易處理,如果我們的Paypal收款帳號在接受帳款上沒有什麼問題(沒有特別的需要Accept的地方),交易
完成,那麼Paypal會發送一個IPN,並發送提示郵件。
我們IPN Handler接受到信息,首先向Paypal進行校驗,如果信息正確,然後根據信息和自己數據庫中進行比對,如果
無誤,可以將支付信息保存,並修改訂單狀態。
然後Paypal會顯示一個界面表示交易完成,此時如果用戶點擊“Return”按鈕,Paypal會將用戶送回我們網站指定地點。
我們網站迎接用戶回來,向用戶表示感謝,並進行提醒,給出訂單號等等。
應為我最後需求的只是要一個總價的結算,並不需要和網店接合.所以簡單了很多.只要把總價生成,放進paypal裡就基本算
完成了.如果網店的話還需要在paypal裡設置一大堆的參數.比較麻煩.
復制代碼 代碼如下:
<form name="paypay_form" action="https://www.paypal.com/cgi-bin/webscr" method="post"><!--提交的地址-->
<input type="image" src="Styles/Compact/Images/payicon.jpg"></p><!--按鈕的圖片-->
<input type="hidden" value="[email protected]" name="business"></p><!--收款賬戶-->
<input type="hidden" value="Products" name="item_name"></p><!--付款詳細內容-->
<input type="hidden" value="dweeww" name="item_number"></p><!--付款詳細內容-->
<input type="hidden" value="http://www.xxx.xxx" name="return"></p><!--返回地址-->
<input type="hidden" value="150.0" name="amount"></p><!--金額-->
<input type="hidden" name="currency_code" value="USD"><!--貨幣-->
</form>