This commit is contained in:
eric
2026-03-13 10:59:08 -05:00
parent e673bc9b62
commit 0885e00b25
5 changed files with 59 additions and 6 deletions

View File

@@ -42,17 +42,24 @@ export function getPocketBaseConfig(): PocketBaseConfig {
const PAYJSAPI_PORT = process.env.PAYJSAPI_PORT || "8007";
/**
* 根据请求 Host 推断 payjsapi 地址(同主机:8007
* 根据请求 Host 推断 payjsapi 地址。同机部署时优先用 PAYMENT_API_INTERNAL_URL。
* 访问 192.168.41.222:3000 时自动用 192.168.41.222:8007
*/
export function getApiUrlFromRequest(hostHeader: string | null): string {
const internal = process.env.PAYMENT_API_INTERNAL_URL?.trim();
if (internal) return internal.replace(/\/$/, "");
if (!hostHeader) return isDev ? `http://127.0.0.1:${PAYJSAPI_PORT}` : "https://api.hackrobot.cn";
const hostname = hostHeader.split(":")[0];
return isDev ? `http://${hostname}:${PAYJSAPI_PORT}` : "https://api.hackrobot.cn";
}
/** 生产环境若 PAYMENT_API_URL 指向 localhost则忽略并使用 api 域名 */
/**
* 支付 API 地址。同机部署时优先用 PAYMENT_API_INTERNAL_URL 避免 hairpin NAT 问题。
* 生产环境若 PAYMENT_API_URL 指向 localhost 且未设 INTERNAL则用 api 域名。
*/
function resolvePaymentApiUrl(): string {
const internal = process.env.PAYMENT_API_INTERNAL_URL?.trim();
if (internal) return internal.replace(/\/$/, "");
const url =
process.env.PAYMENT_API_URL ||
process.env.NEXT_PUBLIC_API_URL ||