2013-03-25 129 views
5

我建立了一個產品生成和顯示插件WordPress的CMS,現在我試圖整合某種形式的貝寶集成結賬過程。更簡單的方式來整合PayPal快速結賬?

我有購物車,產品,運費,總計等等,我希望有人能指出我向PayPal發送這些信息的最簡單方向。我知道一些做這種做法的方法不夠安全,而其他方法則會讓你像某種炫耀狗一樣跳躍。我一直在努力學習如何使用cURL,然後如何讓它與PHP一起工作 - 它確實看起來有點亂。我現在已經卷曲工作我WAMP的服務器上......但..

有沒有更好的辦法,或者我應該繼續學習捲曲?

我可以格式化數據,但它需要發送到PayPal,並不介意使用JavaScript來做這件事 - 這不是一個付費牆,每個訂單都由人類檢查準確性 - 所以有人搞亂了客戶端腳本不會打擾我。我也絕對想把它們發送到PayPal,我不想存儲/處理他們的信用卡信息。但是,擁有IPN會很好。有人能指出我的方向是正確的嗎?還是向我保證我已經是這樣了?

非常感謝。

回答

7

這是怎麼了我自動重定向到PayPal的所有形式的詳情;

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="paypal"> 

<input type="hidden" name="cmd" value="_xclick" /> 
    <input type="hidden" name="cbt" value="Return to example" /> 
<input type="hidden" name="business" value="email" /> 
<input type="hidden" name="item_name" value="example Purchase" /> 
<input type="hidden" name="amount" value="9.99"> 
<input type="hidden" name="button_subtype" value="services" /> 
<input type="hidden" name="no_shipping" value="1"> 
<input type="hidden" name="return" value="URL" /> 
<input type="hidden" name="notify_url" value="URL"/> 
<input type="hidden" name="cancel_return" value="URL" /> 
<input type="hidden" name="currency_code" value="USD"/> 
<input type="hidden" name="image_url" value="" /> 
<input type="hidden" id="custom" name="custom" value="invoice_id to track"/> 
<input type="hidden" class="btn btn-primary" style="width:100%" alt="PayPal - The safer, easier way to pay online!"/> 

</form> 

多個產品,你可以簡單地添加更多的產品形式,例如;

<input type="hidden" name="item_name_1" value="Item #1"> 
<input type="hidden" name="amount_1" value="1.00"> 
<input type="hidden" name="item_name_2" value="Item #2"> 
<input type="hidden" name="amount_2" value="2.00"> 

但是,使用這種方法是不是所有的偉大

所有的數據都需要用PHP和輸入生成到頁面中,您還需要在IPN回調檢查交易確保已付款。

<script type="text/javascript"> 
    function myfunc() { 
    var frm = document.getElementById("paypal"); 
    frm.submit(); 
    } 
    window.onload = myfunc; 
</script> 
+0

感謝您的快速回復。這是否適用於整個購物車的產品,或者一次只能購買一個產品?你能否提供有關你如何處理IPN的信息? – Jon 2013-03-25 23:47:58

+0

編輯顯示多個產品的使用。 – 2013-03-25 23:51:24

+0

再次感謝,生成此表單所需的HTML以發送給PayPal應該不是問題。它看起來像是唯一缺失的拼圖將會找出並處理IPN。 – Jon 2013-03-26 00:03:50

3

您可能想要使用新的PayPal SDK。他們有一套很好的示例代碼, 包括快速結賬和IPN代碼。 嘗試這裏 https://www.x.com/developers/paypal/documentation-tools/paypal-sdk-index 獲取快速結帳的SDK。在這個 時間,他們應該在PHP 98的SDK。

您將不必擔心捲曲, 的SDK需要照顧所有的給你。 典型的呼叫可能是這樣的。

$setECResponse = $paypalService->SetExpressCheckout($setECReq); 

這行代碼是在樣本之後建模的。它是所有面向對象的 。他們爲您提供課程。 在這種情況下,您需要填寫一個請求對象, 示例顯示瞭如何執行該操作;只需使用 樣本作爲您的模板。

這聽起來像你想做PayPal快速結賬, 這樣你就不必處理信用卡或任何 那樣。用戶被重定向到PayPal網站 ,並且所有金融交易都發生在那裏。 用戶被重定向回您的網站。然後你有一個 頁面,用戶可以查看訂單,如果他們批准,點擊 提交。當用戶點擊提交, 您調用貝寶API告訴貝寶,交易 被批准。 PayPal然後執行交易,並且 發回您帶有交易ID的確認。 然後,您可以調用getTransactionDetails並向客戶顯示 確認。您還可以將這些交易細節 放入數據庫中。

以下是您可以爲此調用的API。這些 是仿照示例代碼,它們提供

$paypalService->SetExpressCheckout($setECReq); 

控制進入貝寶URL,並且用戶 通過幾頁出現。控制權返回給你。

您的訂單評論頁 $ paypalService-> GetExpressCheckoutDetails($ getExpressCheckoutReq);

訂單確認頁面

$paypalService->GetExpressCheckoutDetails($getECReq); 

$paypalService->DoExpressCheckoutPayment($DoECReq); 

告訴貝寶做交易。

$paypalService->GetTransactionDetails($request); 

在這裏,你可以把交易信息到數據庫中。 你也可以給自己發一封包含所有細節的郵件, 這樣你就可以知道每次交易發生的時間。

IPN可能有點棘手。他們提供了一個示例IPN監聽器 ,這將有所幫助。您需要在PayPal網站上設置您的監聽器網址 。您將需要 設置SSL證書。

SDKs相當新穎,但PayPal正在開發更新的方式,即開發者版.paypal.com。它在上個月左右剛出來 。你可能也想看看。