2016-03-02 120 views
1

我正在創建一個paypal捐贈交易。其他一切工作正常,除了我不能得到回報的網址有參數:PayPal忽略返回網址,如果它包含參數

return=http://example.com 

工作正常,但:

return=http://example.com?action_upon_return=complete 

只是普通的忽略,而不是默認的貝寶頁面。

貝寶的文件清楚地說,你可以:

如果你想用一個查詢字符串通過自己的自定義參數,如收益率= http://yoursite.com/somescript.php?name=value,請注意,PayPal將生成HTML表單提示買家點擊一個提交按鈕爲了去您的成功頁面。

而且here

例如,您可能要支付者重定向到您網站上的一個URL,它是特定於那個人,也許包含了一個session-ID或其他交易相關數據在URL中。

但是我只是不能得到它的工作。

我已經嘗試了所有三種rm設置,它不會改變一件事情。

我已嘗試使用自動返回功能打開和關閉。

此功能現在是否已損壞,或者是否有某些我不見了?

+0

以及這個:'return = http://example.com/?action_upon_return = complete'。我的意思是,嘗試在您的域名 – pes502

+0

之後添加'/',您是否嘗試過'return = http://example.com/index.html?action_upon_return = complete',即包含該文件? – devsie

+0

只是試過這些@devsie,沒有運氣,對不起 – mattl

回答

0

我從來沒有真正嘗試過使用返回URL傳遞參數。你可以做到這一點

方式一:

  • 創建沿線的會話變量「完成」
  • 檢查是否會話變量存在/它包含什麼,然後做一些事情。

雖然你可以做一些不同的事情。如果您正在查看是否已完成捐款,以便您可以顯示完整/感謝頁面,那麼您可以簡單地檢查該會話變量是否存在。

所以在返回頁面上,檢查是否設置了會話變量。如果它已經設定好,請做點什麼。如果用戶導航回到返回頁面,它仍然會顯示謝謝信息(假設會話變量仍然設置)。請記住,在捐贈過程開始時請取消設置此會話變量,以便在他們再次嘗試捐贈時不會成爲問題。

<?php 

session_start(); 

//Set this once the transaction/donation is completed. 
$_SESSION['complete'] = "something"; //Transaction ID/True/Some other data. 

//This would be on the return page. 
//Check if it is set, or the value of the variable depending on your needs. 

if (isset($_SESSION['complete'])){ 
    echo "Thank you"; 

    //If you still have the transaction variables set, 
    //this is where you could use it to display something. 

} 



?> 

我個人有一個簡單的付款確認頁面,只顯示交易ID。由於我在完成會話事務變量(將它們放入數據庫)後取消設置會話變量變量,因此我的完整變量可以保存事務ID。如果已設置,則顯示該頁面。如果沒有,他們還沒有完成任何交易,我們可以重定向他們或顯示具體的東西。