mirror of
https://github.com/lkddi/Xboard.git
synced 2026-04-03 18:40:52 +08:00
fix: correct return_url generation for payment in frontend-backend separated deployment
This commit is contained in:
@@ -41,17 +41,33 @@ if (!function_exists('admin_settings_batch')) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('origin_url')) {
|
||||
if (!function_exists('source_base_url')) {
|
||||
/**
|
||||
* 根据 HTTP_ORIGIN 拼接完整 URL
|
||||
* 获取来源基础URL,优先Referer,其次Host
|
||||
* @param string $path
|
||||
* @return string
|
||||
*/
|
||||
function origin_url(string $path = ''): string
|
||||
function source_base_url(string $path = ''): string
|
||||
{
|
||||
$origin = request()->getSchemeAndHttpHost(); // 自动带端口
|
||||
$origin = rtrim($origin, '/');
|
||||
$baseUrl = '';
|
||||
$referer = request()->header('Referer');
|
||||
|
||||
if ($referer) {
|
||||
$parsedUrl = parse_url($referer);
|
||||
if (isset($parsedUrl['scheme']) && isset($parsedUrl['host'])) {
|
||||
$baseUrl = $parsedUrl['scheme'] . '://' . $parsedUrl['host'];
|
||||
if (isset($parsedUrl['port'])) {
|
||||
$baseUrl .= ':' . $parsedUrl['port'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$baseUrl) {
|
||||
$baseUrl = request()->getSchemeAndHttpHost();
|
||||
}
|
||||
|
||||
$baseUrl = rtrim($baseUrl, '/');
|
||||
$path = ltrim($path, '/');
|
||||
return $origin . '/' . $path;
|
||||
return $baseUrl . '/' . $path;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ class PaymentService
|
||||
|
||||
return $this->payment->pay([
|
||||
'notify_url' => $notifyUrl,
|
||||
'return_url' => origin_url('/#/order/' . $order['trade_no']),
|
||||
'return_url' => source_base_url('/#/order/' . $order['trade_no']),
|
||||
'trade_no' => $order['trade_no'],
|
||||
'total_amount' => $order['total_amount'],
|
||||
'user_id' => $order['user_id'],
|
||||
|
||||
Reference in New Issue
Block a user