Files
ECShopX/todo/paypal-testing-steps.md
2025-12-29 22:14:41 +08:00

3.9 KiB
Raw Permalink Blame History

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. 记录所有测试过程和结果,以便后续分析和改进