2017-04-16 25 views
0

我有一個表單,其中包含用戶填寫的有關類的信息,幷包含重定向到PayPal的payflowlink的支付信息。在我添加payflowlink之前,我將表單信息發佈到同一頁面,並將類信息通過電子郵件發送到一個電子郵件地址。現在通過將表單設置爲payflowlink的操作,類信息不會通過電子郵件發送給我,但付款信息確實會傳遞給payflowlink。

我想也許重定向頁面將使用<meta http-equiv="refresh" content="0; url=https://payflowlink.paypal.com">,但$ _POST不會傳遞到payflowlink。我怎樣才能獲得從重定向頁面傳遞到payflowlink頁面的$ _POST信息?

現在我有表單頁面將信息發佈到重定向頁面,重定向頁面通過電子郵件發送信息,但是$ POST未傳遞到payflowlink。 Payflowlink頁面由PayPal託管。

<!DOCTYPE html> 
<html lang="en"> 

<head> 
    <title>Registration</title> 
    <meta http-equiv="refresh" content="0; url=https://payflowlink.paypal.com"> 

</head> 

<body> 
    <?php 
ini_set('display_errors', 'On'); 
error_reporting(E_ALL | E_STRICT); 

if ($_SERVER["REQUEST_METHOD"] == "POST") { 

    if (isset($_POST["name"])) { 
    $name = $_POST['name']; 
    $EmailBody = "Parent's Name: ".$_POST["name"]."<br>"; 
    } 

    $subject = "Registration"; 
    SendMail($email, $EmailBody, $subject); 
    echo ($EmailBody); 
} 

?> 

    <main id="main"> 
     <h1>Registration Form</h1> 

     <p><a href="https://payflowlink.paypal.com">Click this link if you are not redirected</a></p> 

    </main> 

    </body> 

</html> 
+0

還可以在你的問題中發佈你的php代碼嗎?在重定向到付款流程鏈接之前,電子郵件操作必須完成。 –

+0

@Оzgur我添加了一些來自重定向頁面的代碼。 – BrianC987

+0

用''創建'

',並使用javascript提交document.forms.myform.submit()' – Peter

回答

-1
<?php 
ini_set('display_errors', 'On'); 
error_reporting(E_ALL | E_STRICT); 

if ($_SERVER["REQUEST_METHOD"] == "POST") { 

    if (isset($_POST["name"])) { 
    $name = $_POST['name']; 
    $EmailBody = "Parent's Name: ".$_POST["name"]."<br>"; 

    $subject = "Registration"; 
    SendMail($email, $EmailBody, $subject); 
    //echo ($EmailBody); 

    /* PAYPAL implementation here, instead header(); */ 
    header('Location: https://payflowlink.paypal.com'); 
    } 


} 

?> 


<!DOCTYPE html> 
<html lang="en"> 

<head> 
    <title>Registration</title> 

</head> 

<body> 

<main id="main"> 
    <h1>Registration Form</h1> 

    <p><a href="https://payflowlink.paypal.com">Click this link if you are not redirected</a></p> 

</main> 

    </body> 

</html> 

的一件事是,前重定向你不能呼應。但是您已經將$ Emailbody作爲電子郵件。

UPDATE

傳遞$ _ POST信息給payflowlink頁面,您應該遵循相關的API文檔。

上面的示例僅用於基本重定向。

+0

我得到了同樣的結果。我收到一封電子郵件,但payflowlink錯誤。我看到你註釋掉了回顯並添加了標題。我也嘗試在標題中註釋元刷新標記。 – BrianC987

+0

@ BrianC987我以爲你首先需要基本的重定向,但是你需要傳遞參數。所以你必須遵循Paypal PHP API文檔,並且可能在你的代碼中實現CURL。 –

+0

@Ozgur我從來沒有使用過CURL,你能解釋我將如何做到這一點。 – BrianC987

0

您應該注意支付網關。您不應讓用戶直接通過您的服務器發佈敏感數據,例如信用卡號碼。您需要將信息直接傳遞給網關,網關將執行處理,然後重定向回您的網站並通過安全令牌。

https://developer.paypal.com/docs/classic/payflow/integration-guide

但是,您可以發送電子郵件,當你第一次請求從網關的安全令牌。您還可以將一個按鈕onclick事件附加到一個按鈕,用戶點擊該按鈕可以將Ajax請求重定向到服務器以發送電子郵件,然後從服務器獲取響應,重定向用戶。