mirror of
https://gitee.com/ShopeX/ECShopX
synced 2026-08-07 20:45:45 +08:00
134 lines
3.9 KiB
Markdown
134 lines
3.9 KiB
Markdown
# PayPal 支付功能测试步骤
|
||
|
||
本文档提供了测试 PayPal 支付功能的步骤,包括配置测试、支付流程测试和退款测试。
|
||
|
||
## 准备工作
|
||
|
||
1. 确保已完成 PayPal 开发者账号注册和沙盒环境配置(参考 `paypal-developer-account-setup.md`)
|
||
2. 确保已安装 PayPal PHP SDK 并完成代码集成
|
||
3. 确保已配置 `.env` 文件中的 PayPal 相关环境变量(参考 `paypal-env-example.md`)
|
||
4. 准备好沙盒测试账号(商家账号和个人账号)的登录信息
|
||
|
||
## 测试步骤
|
||
|
||
### 1. 配置测试
|
||
|
||
1. 登录管理后台
|
||
2. 进入支付配置页面
|
||
3. 选择 PayPal 支付方式
|
||
4. 输入以下信息:
|
||
- Client ID(使用沙盒应用的 Client ID)
|
||
- Client Secret(使用沙盒应用的 Secret)
|
||
- 勾选"沙盒模式"
|
||
- 输入 Webhook ID
|
||
- 勾选"启用"
|
||
5. 保存配置
|
||
6. 检查配置是否保存成功
|
||
|
||
**预期结果**:配置保存成功,PayPal 支付方式显示为已启用。
|
||
|
||
### 2. 前端支付方式显示测试
|
||
|
||
1. 登录前端商城
|
||
2. 将商品添加到购物车
|
||
3. 进入结算页面
|
||
4. 查看支付方式列表
|
||
|
||
**预期结果**:支付方式列表中显示 PayPal 选项。
|
||
|
||
### 3. 基本支付流程测试
|
||
|
||
1. 在前端商城创建一个测试订单
|
||
2. 选择 PayPal 支付方式
|
||
3. 点击"支付"按钮
|
||
4. 系统应该重定向到 PayPal 登录页面
|
||
5. 使用沙盒个人账号登录 PayPal
|
||
6. 确认支付信息
|
||
7. 点击"同意并继续"按钮
|
||
8. 系统应该重定向回商城并显示支付成功页面
|
||
|
||
**预期结果**:
|
||
- 支付成功
|
||
- 订单状态更新为已支付
|
||
- 交易记录正确保存在数据库中
|
||
|
||
### 4. 取消支付测试
|
||
|
||
1. 在前端商城创建一个测试订单
|
||
2. 选择 PayPal 支付方式
|
||
3. 点击"支付"按钮
|
||
4. 系统重定向到 PayPal 登录页面
|
||
5. 使用沙盒个人账号登录 PayPal
|
||
6. 在 PayPal 支付页面点击"取消并返回"链接
|
||
|
||
**预期结果**:
|
||
- 系统重定向回商城并显示支付取消页面
|
||
- 订单状态保持为未支付
|
||
|
||
### 5. 退款测试
|
||
|
||
1. 登录管理后台
|
||
2. 找到一个已使用 PayPal 支付的订单
|
||
3. 进入订单详情页面
|
||
4. 点击"退款"按钮
|
||
5. 输入退款金额(可以是部分退款或全额退款)
|
||
6. 提交退款请求
|
||
|
||
**预期结果**:
|
||
- 退款成功
|
||
- 订单状态更新为已退款或部分退款
|
||
- 退款记录正确保存在数据库中
|
||
|
||
### 6. Webhook 测试
|
||
|
||
1. 登录 PayPal 开发者控制台
|
||
2. 进入您的应用详情页面
|
||
3. 找到"Webhooks"部分
|
||
4. 点击"Simulator"按钮
|
||
5. 选择事件类型(如 PAYMENT.SALE.COMPLETED)
|
||
6. 输入相关参数
|
||
7. 点击"Send test webhook"按钮
|
||
|
||
**预期结果**:
|
||
- 系统正确接收 Webhook 请求
|
||
- 系统验证 Webhook 签名
|
||
- 系统根据事件类型执行相应的业务逻辑
|
||
- 日志中记录 Webhook 处理过程
|
||
|
||
## 问题排查
|
||
|
||
如果测试过程中遇到问题,请检查以下内容:
|
||
|
||
1. **支付创建失败**:
|
||
- 检查 PayPal 配置是否正确(Client ID 和 Secret)
|
||
- 查看日志文件 `storage/logs/paypal.log` 获取详细错误信息
|
||
|
||
2. **回调处理失败**:
|
||
- 确保回调 URL 可以从外网访问
|
||
- 检查 PayerID 和 PaymentID 是否正确传递
|
||
|
||
3. **Webhook 验证失败**:
|
||
- 确保 Webhook ID 配置正确
|
||
- 检查 Webhook URL 是否可以从外网访问
|
||
- 验证请求头中的签名信息是否完整
|
||
|
||
4. **支付成功但订单状态未更新**:
|
||
- 检查数据库中的交易记录
|
||
- 查看日志文件,确认支付回调是否正确处理
|
||
|
||
## 测试记录
|
||
|
||
| 测试项目 | 测试日期 | 测试结果 | 备注 |
|
||
|---------|---------|---------|------|
|
||
| 配置测试 | | | |
|
||
| 前端支付方式显示 | | | |
|
||
| 基本支付流程 | | | |
|
||
| 取消支付 | | | |
|
||
| 退款测试 | | | |
|
||
| Webhook 测试 | | | |
|
||
|
||
## 注意事项
|
||
|
||
1. 所有测试应先在沙盒环境中完成,确认无误后再在生产环境中进行
|
||
2. 在生产环境中进行测试时,建议使用小额交易
|
||
3. 记录所有测试过程和结果,以便后续分析和改进 |