4.1 KiB
4.1 KiB
支付接入功能配置说明
功能概述
本项目已成功集成支付宝和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查看支付记录
安全注意事项
- 密钥管理: 生产环境使用环境变量存储敏感信息
- 签名验证: 所有回调都进行签名验证
- HTTPS: 生产环境必须使用HTTPS
- 权限控制: 用户只能查看自己的支付记录
测试建议
- 支付宝测试: 使用支付宝沙箱环境进行测试
- PayPal测试: 使用PayPal沙箱模式进行测试
- 回调测试: 使用ngrok等工具测试本地回调
扩展功能
可以进一步扩展的功能:
- 退款功能
- 支付统计
- 支付报表
- 批量支付
- 分期付款