Files
AIGC/demo/PAYMENT_CONFIG.md
2025-10-21 16:50:33 +08:00

4.1 KiB
Raw Blame History

支付接入功能配置说明

功能概述

本项目已成功集成支付宝和PayPal两种支付方式提供完整的支付解决方案。

支付方式

1. 支付宝 (Alipay)

  • 适用场景: 中国大陆用户
  • 支持货币: 人民币 (CNY)
  • 支付流程: 网页支付
  • 回调机制: 异步通知 + 同步返回

2. PayPal

  • 适用场景: 国际用户
  • 支持货币: 美元 (USD)、欧元 (EUR) 等
  • 支付流程: PayPal账户支付
  • 回调机制: Webhook通知 + 同步返回

配置参数

开发环境配置 (application-dev.properties)

# 支付宝配置 (开发环境)
alipay.app-id=your_app_id
alipay.private-key=your_private_key
alipay.public-key=your_public_key
alipay.gateway-url=https://openapi.alipaydev.com/gateway.do
alipay.charset=UTF-8
alipay.sign-type=RSA2
alipay.notify-url=http://localhost:8080/payment/alipay/notify
alipay.return-url=http://localhost:8080/payment/alipay/return

# PayPal配置 (开发环境)
paypal.client-id=your_paypal_client_id
paypal.client-secret=your_paypal_client_secret
paypal.mode=sandbox
paypal.return-url=http://localhost:8080/payment/paypal/return
paypal.cancel-url=http://localhost:8080/payment/paypal/cancel

生产环境配置 (application-prod.properties)

# 支付宝配置 (生产环境)
alipay.app-id=${ALIPAY_APP_ID}
alipay.private-key=${ALIPAY_PRIVATE_KEY}
alipay.public-key=${ALIPAY_PUBLIC_KEY}
alipay.gateway-url=https://openapi.alipay.com/gateway.do
alipay.charset=UTF-8
alipay.sign-type=RSA2
alipay.notify-url=${ALIPAY_NOTIFY_URL}
alipay.return-url=${ALIPAY_RETURN_URL}

# PayPal配置 (生产环境)
paypal.client-id=${PAYPAL_CLIENT_ID}
paypal.client-secret=${PAYPAL_CLIENT_SECRET}
paypal.mode=live
paypal.return-url=${PAYPAL_RETURN_URL}
paypal.cancel-url=${PAYPAL_CANCEL_URL}

数据库表结构

payments 表

CREATE TABLE payments (
  id BIGINT PRIMARY KEY AUTO_INCREMENT,
  order_id VARCHAR(50) NOT NULL UNIQUE,
  amount DECIMAL(10,2) NOT NULL,
  currency VARCHAR(3) NOT NULL DEFAULT 'CNY',
  payment_method VARCHAR(20) NOT NULL,
  status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
  description VARCHAR(500),
  external_transaction_id VARCHAR(100),
  callback_url VARCHAR(1000),
  return_url VARCHAR(1000),
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  paid_at TIMESTAMP NULL,
  user_id BIGINT,
  FOREIGN KEY (user_id) REFERENCES users(id)
);

API 端点

支付相关端点

  • GET /payment/create - 显示支付表单
  • POST /payment/create - 创建支付订单
  • GET /payment/history - 支付记录列表
  • GET /payment/detail/{id} - 支付详情

支付宝回调端点

  • POST /payment/alipay/notify - 异步通知
  • GET /payment/alipay/return - 同步返回

PayPal回调端点

  • GET /payment/paypal/return - 支付返回
  • GET /payment/paypal/cancel - 支付取消
  • POST /payment/paypal/webhook - Webhook通知

支付状态

  • PENDING - 待支付
  • PROCESSING - 处理中
  • SUCCESS - 支付成功
  • FAILED - 支付失败
  • CANCELLED - 已取消
  • REFUNDED - 已退款

使用说明

1. 配置支付参数

application-dev.properties 中配置您的支付参数:

  • 支付宝:需要申请支付宝开放平台应用
  • PayPal需要申请PayPal开发者账户

2. 启动应用

mvn spring-boot:run

3. 访问支付功能

  • 登录后访问 /payment/create 创建支付
  • 访问 /payment/history 查看支付记录

安全注意事项

  1. 密钥管理: 生产环境使用环境变量存储敏感信息
  2. 签名验证: 所有回调都进行签名验证
  3. HTTPS: 生产环境必须使用HTTPS
  4. 权限控制: 用户只能查看自己的支付记录

测试建议

  1. 支付宝测试: 使用支付宝沙箱环境进行测试
  2. PayPal测试: 使用PayPal沙箱模式进行测试
  3. 回调测试: 使用ngrok等工具测试本地回调

扩展功能

可以进一步扩展的功能:

  • 退款功能
  • 支付统计
  • 支付报表
  • 批量支付
  • 分期付款