'env'
This commit is contained in:
@@ -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 ||
|
||||
|
||||
Reference in New Issue
Block a user