2014-10-31 125 views
0

我正在將我的網站實施支付系統。 進行付款時,我創建了一個transaction_id和一個order_id。第三方需要transaction_id才能進行成功的支付。 order_id用於確定哪個訂單隨哪個事務處理。無法從URL中獲取查詢

付款後,用戶返回到'返回頁面'。這個URL將會是這樣的:'www.myawesomewebsite.com/return'然而,它會在鏈接之後添加order_id。所以這個URL看起來像:'www.myawesomewebsite.com/return?#31102014033349-3'。

當我在這個頁面上,我想解析URL以檢索order_id。但是,如果我這樣做:

array(3) { ["scheme"]=> string(4) "http" ["host"]=> string(17) "www.myawesomewebsite.com" ["path"]=> string(27) "/return" 

正如你所看到的,它不會返回URL中的查詢。如果我var_dump(Request::url()); 它也返回「www.myawesomewebsite.com/return」。不知何故,它不能在URL中查看order_id。

我的問題,我如何成功檢索order_id?

+3

在這裏看到:http://stackoverflow.com/questions/3664257/why-the-hash-part-of-the-url-is-not -in-的服務器端。解決的辦法是使用一個像'?var = 31102014033349-3'這樣的實際變量。 – jeroen 2014-10-31 15:14:30

+0

1. URL中沒有任何地方是'order_id' 2.'#'之後的任何東西都不會傳遞給服務器。 – AbraCadaver 2014-10-31 15:14:40

+0

@AbraCadaver 1.'#31102014033349-3'是order_id。 2.我改變了order_id只包含數字。它仍然無法讀取它。 – Jeroen 2014-10-31 15:16:57

回答

2
<?php 

    $url = "http://www.myawesomewebsite.com/return?order_id=31102014033349-3"; 

    $host = parse_url($url); 

    var_dump($host); 

?> 


Output: 

array(4) { 
    ["scheme"]=> 
    string(4) "http" 
    ["host"]=> 
    string(24) "www.myawesomewebsite.com" 
    ["path"]=> 
    string(7) "/return" 
    ["query"]=> 
    string(25) "order_id=31102014033349-3" 
} 

或簡單的度日:

$_GET["order_id"]; 
+0

剛剛發現$ _GET ['order_id'];做的伎倆。順便說一句,你的輸出是不正確的。該查詢不存在(在我的情況)。 – Jeroen 2014-10-31 15:29:59