PHP 回调 URL 不包括 ?a=complete



我正在尝试将回调URL从一个URL更改为另一个URL。当前回调网址为

header("Location: ".$gatewayParams['systemurl']."/viewinvoice.php?id=" . $merchant_order_id);

我想将网址更改为https://example.com/cart.php?a=complete当我尝试用/cart.php?a=complete替换/viewinvoice.php?id=时,我被重定向到https://example.com/cart.php,并且?a=complete被剥离。

有人可以告诉我到达 https://example.com/cart.php?a=complete 的方法吗

请注意: 1. 我不是PHP开发人员,所以如果你有什么建议,请提供一个完整的代码片段。 2. 我的目标是将用户重定向到"https://example.com/cart.php?a=complete"。如果需要编程逻辑,可以对其进行硬编码。 3. 请在此处找到实际用例

我发现如果我能修复这个回调 URL,那么它将解决我的问题

您应该尝试以下操作

$callback_url = $gatewayParams['systemurl']."/viewinvoice.php?id=" . $merchant_order_id;
$callback_url = str_replace('/viewinvoice.php?id=', '/cart.php?a=complete', $callback_url);
header("Location: ".$callback_url);

不确定你到底想做什么。 无论如何,如果我通过标头函数重定向到带有一些额外参数的 URL。我会把它放到一个GET变量中。因此,如果 http 请求example.php

// example.php
<?php
$merchant_id = 123;
$_GET['merchant_id'] = $merchant_id;
header('Location: invoice.php');

并且,在发票中.php

// invoice.php
if( isset($_GET['merchant_id']) ) {
$merchant_id = $_GET['merchant_id'];
unset($_GET['merchant_id']);
}

最新更新