#!/bin/bash # PayPal Webhook HTTPS 代理启动脚本 # 用于测试环境,将 HTTPS 请求转发到本地 HTTP 服务 set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" CERT_DIR="$SCRIPT_DIR/ssl_certs" HTTPS_PORT=8989 HTTP_TARGET="http://localhost:8000" # 创建证书目录 mkdir -p "$CERT_DIR" # 生成自签名证书(如果不存在) if [ ! -f "$CERT_DIR/cert.pem" ] || [ ! -f "$CERT_DIR/key.pem" ]; then echo "生成自签名 SSL 证书..." openssl req -x509 -newkey rsa:4096 -keyout "$CERT_DIR/key.pem" -out "$CERT_DIR/cert.pem" \ -days 365 -nodes -subj "/CN=localhost" 2>/dev/null echo "证书已生成: $CERT_DIR/" fi echo "" echo "==========================================" echo "PayPal Webhook HTTPS 代理" echo "==========================================" echo "HTTPS 端口: $HTTPS_PORT" echo "转发目标: $HTTP_TARGET" echo "" echo "PayPal Webhook URL 配置为:" echo " https://your-public-ip:$HTTPS_PORT/whitelist/payment/callback/paypal" echo "" echo "注意: 自签名证书仅用于测试,PayPal Sandbox 可能不接受" echo "生产环境请使用有效的 SSL 证书" echo "==========================================" echo "" # 启动 Python HTTPS 代理 python3 "$SCRIPT_DIR/https_proxy.py" --port $HTTPS_PORT --target "$HTTP_TARGET" \ --cert "$CERT_DIR/cert.pem" --key "$CERT_DIR/key.pem"