支付流程前后端对接手动点击测试用例

日期:2026-06-15

本文档用于 QA/产品/开发按真实用户操作方式验证本轮支付改造。所有测试以页面点击、弹窗展示、页面状态变化、订单列表状态变化、支付结果页展示为准。

1. 测试原则

  • 只通过页面操作和页面可见结果验证。
  • 每个用例都以“页面入口 -> 点击步骤 -> 可见预期结果”描述。
  • 涉及特殊状态的用例,例如 processing、conflicted、过期支付单,可以由开发提前准备测试数据;测试人员只验证页面表现。
  • 支付宝和 PayPal 会打开第三方新页面,测试时要允许浏览器弹窗。
  • 支付宝和 PayPal 当前不会被前端主动关闭,原页面会保留支付链接和“完成支付”按钮。
  • “完成支付”按钮的作用是刷新当前页面状态,不代表前端主动确认第三方支付成功。
  • Worktask 的“取消订单”只取消当前支付订单,不取消 worktask 本身。
  • Product 的“取消订单”取消待支付的 product license/order,并应恢复库存和礼品卡抵扣。

2. 测试账号和基础数据

2.1 测试账号

准备以下账号:

账号角色用途
Buyer A买家发起 worktask 支付、product 购买、取消订单、继续支付
Artist B画师查看 worktask、发起改价、验证画师侧改价被支付中订单拦截
Admin/Dev数据准备者仅用于提前准备特殊状态数据,不参与普通点击测试

2.2 Worktask 数据

准备:

  • 一个 CNY worktask,有未支付阶段,可进行 stage pay。
  • 一个 CNY worktask,可进行 full pay。
  • 一个非 CNY worktask,用于验证只有 Stripe 可选。
  • 一个可被礼品卡全额抵扣的 worktask。
  • 一个由 project request 生成的 worktask。

2.3 Product 数据

准备:

  • 一个 CNY product option,库存充足,价格大于 0。
  • 一个非 CNY product option,库存充足,价格大于 0。
  • 一个可被礼品卡全额抵扣的 product option。
  • 一个固定库存 product option,用于验证取消后库存恢复。

2.4 钱包数据

准备:

  • Buyer A 至少有一个可用礼品卡钱包。
  • Buyer A 至少有一笔余额足够全额抵扣的礼品卡钱包。

3. Worktask 支付测试

WT-01 首次打开阶段支付弹窗

目的:验证没有支付中订单时,页面展示正常支付选择。

前置条件:

  • Buyer A 登录。
  • CNY worktask 没有支付中的订单。
  • Worktask 有未支付阶段。

操作步骤:

  1. 打开买家 worktask 详情页:/u/{buyer_cname}/commissions/info?id={worktask_id}
  2. 点击“阶段支付”。

预期结果:

  • 页面打开支付弹窗。
  • 弹窗中显示本次应付金额、礼品卡抵扣区域、支付方式选择。
  • 可以看到 Stripe、PayPal、Alipay 支付方式。
  • 不显示“未完成支付订单”提示。
  • 不显示“继续支付”按钮。
  • 不显示“取消订单”按钮。

WT-02 Worktask Stripe 阶段支付成功

目的:验证 Stripe 支付主流程。

前置条件:

  • 使用 WT-01 的弹窗。
  • 本次应付金额大于 0。

操作步骤:

  1. 在支付弹窗中选择 Stripe。
  2. 点击“支付”。
  3. 在 Stripe 内嵌支付弹窗中使用测试卡完成付款。
  4. 等待页面自动刷新或弹窗关闭。

预期结果:

  • 出现 Stripe 内嵌支付弹窗。
  • 支付完成后弹窗关闭或回到 worktask 页面。
  • Worktask 支付进度更新。
  • 已支付阶段不再显示为待支付。
  • 再次打开阶段支付时,不会看到刚才已支付的阶段仍待支付。

WT-03 Worktask Alipay 创建后关闭第三方页面

目的:验证放弃 Alipay 支付后,本地保留支付中订单。

前置条件:

  • CNY worktask 没有支付中的订单。
  • 本次应付金额大于 0。

操作步骤:

  1. 打开买家 worktask 详情页。
  2. 点击“阶段支付”。
  3. 选择 Alipay。
  4. 点击“支付”。
  5. 浏览器打开 Alipay 新页面后,不完成支付,直接关闭 Alipay 页面。
  6. 回到原 worktask 页面,关闭支付弹窗。
  7. 再次点击“阶段支付”。

预期结果:

  • 第二次打开支付弹窗时,不再显示支付方式选择。
  • 页面显示“未完成支付订单”或类似提示。
  • 订单详情中显示创建时间、支付方式、礼品卡抵扣、待支付金额。
  • 支付方式显示 Alipay 图标。
  • 页面显示“继续支付”按钮。
  • 页面显示“取消订单”按钮。
  • 不会自动变成 Stripe 支付弹窗。

WT-04 Worktask Alipay 继续支付

目的:验证 Alipay 支付中订单继续支付仍然是 Alipay。

前置条件:

  • 使用 WT-03 留下的 Alipay 支付中订单。

操作步骤:

  1. 在 worktask 支付弹窗中点击“继续支付”。

预期结果:

  • 浏览器打开 Alipay 支付页面或当前弹窗显示 Alipay 支付链接。
  • 当前页面仍保留支付链接区域。
  • 不打开 Stripe 内嵌支付弹窗。
  • 不显示新的支付方式选择。

WT-05 Worktask PayPal 创建后点击 PayPal 取消

目的:验证 PayPal 取消返回页不会取消本地订单。

前置条件:

  • CNY worktask 没有支付中的订单。
  • 本次应付金额大于 0。

操作步骤:

  1. 打开买家 worktask 详情页。
  2. 点击“阶段支付”。
  3. 选择 PayPal。
  4. 点击“支付”。
  5. 在打开的 PayPal 页面点击取消,或关闭 PayPal 页面。
  6. 如果跳转到取消页,确认页面展示支付取消提示。
  7. 回到 worktask 页面。
  8. 再次点击“阶段支付”。

预期结果:

  • PayPal 取消页只显示取消提示。
  • Worktask 页面再次打开支付弹窗时,显示“未完成支付订单”。
  • 支付方式显示 PayPal 图标。
  • 页面提供“继续支付”和“取消订单”。
  • 本地订单没有因为 PayPal 页面取消而消失。

WT-06 Worktask PayPal 继续支付

目的:验证 PayPal 支付中订单继续支付仍然是 PayPal。

前置条件:

  • 使用 WT-05 留下的 PayPal 支付中订单。

操作步骤:

  1. 在未完成支付订单弹窗中点击“继续支付”。

预期结果:

  • 打开 PayPal 支付页面或显示 PayPal 支付链接。
  • 不打开 Stripe 内嵌支付弹窗。
  • 不显示支付方式选择。

WT-07 Worktask PayPal 支付成功返回页

目的:验证 PayPal 支付成功后的前端返回页。

前置条件:

  • 使用 PayPal sandbox 支付。

操作步骤:

  1. 在 PayPal 页面完成付款。
  2. 等待跳转到 /order_checkout 页面。
  3. 等待页面 loading 结束。

预期结果:

  • 页面先显示获取支付结果的 loading。
  • 如果 PayPal 已完成扣款,页面显示支付成功。
  • 如果 PayPal 仍处理中,页面显示 pending 或等待中提示。
  • 如果 PayPal 明确失败,页面显示失败提示。
  • 返回原 worktask 页面刷新后,支付状态应与实际支付结果一致。

WT-08 Worktask 取消支付中订单

目的:验证用户主动取消当前支付订单后,可以重新选择支付方式。

前置条件:

  • Worktask 有一个 pending 支付中订单。
  • 该订单未进入第三方 processing。

操作步骤:

  1. 打开 worktask 详情页。
  2. 点击“阶段支付”。
  3. 在未完成支付订单弹窗中点击“取消订单”。
  4. 等待成功提示。
  5. 再次点击“阶段支付”。

预期结果:

  • 页面提示取消成功。
  • Worktask 本身仍保留在待支付状态,没有被取消。
  • 再次打开支付弹窗时,重新出现支付方式选择。
  • 可以重新选择 Stripe、Alipay 或 PayPal。
  • 礼品卡余额应恢复到取消前状态。

WT-09 Worktask 0 元阶段支付

目的:验证礼品卡全额抵扣的 worktask 支付。

前置条件:

  • Worktask 可支付。
  • Buyer A 有足够礼品卡余额覆盖本次金额。

操作步骤:

  1. 打开 worktask 详情页。
  2. 点击“阶段支付”。
  3. 选择礼品卡抵扣,使待支付金额变为 0。
  4. 点击“支付”。
  5. 在 0 元支付弹窗中点击“完成支付”。

预期结果:

  • 页面打开 0 元支付确认弹窗。
  • 不打开 Stripe/Alipay/PayPal 页面。
  • 点击完成后弹窗关闭。
  • Worktask 阶段支付状态更新为已支付。
  • 礼品卡余额扣减正确。

WT-10 Worktask 全额支付

目的:验证 full pay 入口与阶段支付一致。

前置条件:

  • Worktask 支持全额支付。
  • 没有支付中的订单。

操作步骤:

  1. 打开 worktask 详情页。
  2. 点击“全额支付”。
  3. 任选一个可用支付方式完成支付。

预期结果:

  • 支付弹窗金额为剩余应付总额。
  • 支付完成后 worktask 的已支付金额更新。
  • 如果全额支付完成,后续不应再显示可支付阶段。

WT-11 支付中订单阻止买家改价

目的:验证支付中订单与改价互斥。

前置条件:

  • Worktask 已有支付中订单。
  • Buyer A 打开买家 worktask 详情页。

操作步骤:

  1. 点击“修改价格”。

预期结果:

  • 不打开输入新价格的改价弹窗。
  • 页面展示未完成支付订单提示。
  • 买家可以看到“继续支付”和“取消订单”。
  • 买家取消订单后,再次点击修改价格才可以进入改价弹窗。

WT-12 支付中订单阻止画师改价

目的:验证画师发起改价前也会检查支付中订单。

前置条件:

  • Worktask 已有支付中订单。
  • Artist B 打开画师 worktask 详情页:/a/{artist_cname}/commissions/info?id={worktask_id}

操作步骤:

  1. 点击“修改价格”。

预期结果:

  • 不打开输入新价格的改价弹窗。
  • 页面展示当前存在未完成支付的提示。
  • 画师侧不显示“取消订单”按钮。
  • 画师不能直接绕过支付中订单发起改价。

WT-13 Processing 状态下不允许取消

目的:验证第三方支付处理中时,用户不能取消订单。

前置条件:

  • 由开发提前准备一个 worktask,当前支付订单处于 processing 状态。

操作步骤:

  1. 打开该 worktask 详情页。
  2. 点击支付入口。
  3. 尝试点击“取消订单”。

预期结果:

  • 页面显示错误提示,含义为支付处理中,不能取消。
  • 支付订单仍然存在。
  • 关闭弹窗后再次打开,仍显示未完成支付订单。

WT-14 Conflicted 状态下不允许继续或取消

目的:验证冲突支付需要人工处理,用户不能继续操作。

前置条件:

  • 由开发提前准备一个 worktask,当前支付 session 为 conflicted。

操作步骤:

  1. 打开该 worktask 详情页。
  2. 点击支付入口。
  3. 点击“继续支付”。
  4. 再点击“取消订单”。

预期结果:

  • 页面显示错误提示,含义为支付冲突或需要人工处理。
  • 不打开任何第三方支付页面。
  • 不打开 Stripe 内嵌支付弹窗。
  • 订单不会被取消。

4. Product 支付测试

PD-01 Product 详情页 Stripe 购买成功

目的:验证 product 新购买主流程。

前置条件:

  • Buyer A 登录。
  • Product option 可售,金额大于 0。

操作步骤:

  1. 打开 /product/{product_id}
  2. 选择一个可购买 option。
  3. 点击“购买”。
  4. 在支付弹窗中选择 Stripe。
  5. 点击“支付”。
  6. 在 Stripe 内嵌支付弹窗中完成测试支付。

预期结果:

  • 支付弹窗显示 product option、金额、礼品卡抵扣、支付方式。
  • Stripe 支付完成后显示购买成功弹窗。
  • 跳转或进入产品订单/下载页面后,可以看到已购买记录。
  • 如果 option 是固定库存,库存减少。

PD-02 Product 详情页 Alipay 放弃支付

目的:验证 product 支付放弃后出现在订单中心。

前置条件:

  • CNY product option 可售。
  • 金额大于 0。

操作步骤:

  1. 打开 /product/{product_id}
  2. 选择 option。
  3. 点击“购买”。
  4. 选择 Alipay。
  5. 点击“支付”。
  6. 关闭打开的 Alipay 页面,不完成支付。
  7. 打开 /u/{buyer_cname}/products/orders
  8. 查看全部订单或待支付订单。

预期结果:

  • 产品订单中心出现一条待支付订单。
  • 订单没有因为关闭 Alipay 页面而自动取消。
  • 订单上可以点击“继续支付”。
  • 订单上可以点击“取消订单”。

PD-03 Product 详情页 PayPal 放弃支付

目的:验证 product PayPal 放弃支付后可在订单中心继续。

前置条件:

  • CNY product option 可售。

操作步骤:

  1. 打开 /product/{product_id}
  2. 选择 option。
  3. 点击“购买”。
  4. 选择 PayPal。
  5. 点击“支付”。
  6. 在 PayPal 页面取消或关闭页面。
  7. 打开产品订单中心。

预期结果:

  • 订单中心出现待支付订单。
  • 点击继续支付时打开 PayPal 页面或 PayPal 支付链接。
  • 不打开 Stripe 内嵌支付弹窗。

PD-04 Product 订单中心继续 Stripe

目的:验证 product 待支付 Stripe 订单继续支付。

前置条件:

  • 由 product 详情页创建一个 Stripe 待支付订单,并关闭 Stripe 弹窗不完成支付。

操作步骤:

  1. 打开 /u/{buyer_cname}/products/orders
  2. 找到待支付订单。
  3. 点击“继续支付”。

预期结果:

  • 打开 Stripe 内嵌支付弹窗。
  • 完成支付后订单状态变为已支付。

PD-05 Product 订单中心继续 Alipay

目的:验证 product Alipay 订单继续支付不会变成 Stripe。

前置条件:

  • 有一个 product Alipay 待支付订单。

操作步骤:

  1. 打开产品订单中心。
  2. 点击该订单的“继续支付”。

预期结果:

  • 打开 Alipay 页面或显示 Alipay 支付链接。
  • 不打开 Stripe 内嵌支付弹窗。
  • 订单状态保持待支付,直到第三方支付成功。

PD-06 Product 订单中心取消待支付订单

目的:验证 product 取消订单和库存/钱包恢复。

前置条件:

  • Product 有一个待支付订单。
  • 如需验证库存,选择固定库存 option。
  • 如需验证钱包,支付时使用过礼品卡抵扣。

操作步骤:

  1. 打开产品订单中心。
  2. 找到待支付订单。
  3. 点击“取消订单”。
  4. 回到 product 详情页查看该 option。
  5. 查看钱包余额。

预期结果:

  • 页面提示取消成功。
  • 订单状态变为已取消,或从待支付列表消失。
  • 固定库存恢复。
  • 礼品卡余额恢复。
  • 该订单不能再继续支付。

PD-07 Product 0 元购买

目的:验证 product 礼品卡全额抵扣。

前置条件:

  • Buyer A 礼品卡余额足够覆盖 product option。

操作步骤:

  1. 打开 product 详情页。
  2. 选择可购买 option。
  3. 点击购买。
  4. 选择礼品卡抵扣到 0。
  5. 点击支付。
  6. 在 0 元支付弹窗中点击完成支付。

预期结果:

  • 不打开 Stripe/Alipay/PayPal。
  • 页面显示购买成功。
  • 产品订单中心出现已支付订单。
  • 可进入下载/文件页面。

PD-08 Product Processing 状态下不能取消

目的:验证 product 支付处理中保护。

前置条件:

  • 由开发提前准备一个 product license,支付 session 为 processing。

操作步骤:

  1. 打开产品订单中心。
  2. 点击该订单的“取消订单”。

预期结果:

  • 页面显示取消失败或支付处理中提示。
  • 订单仍在待支付/处理中状态。
  • 库存和钱包不被回滚。

PD-09 Product Conflicted 状态下不能继续或取消

目的:验证 product 冲突订单进入人工处理。

前置条件:

  • 由开发提前准备一个 product license,支付 session 为 conflicted。

操作步骤:

  1. 打开产品订单中心。
  2. 点击“继续支付”。
  3. 点击“取消订单”。

预期结果:

  • 页面显示错误提示,含义为支付冲突或需要人工处理。
  • 不打开新的支付页面。
  • 订单不会被取消。

5. Project 到 Worktask 测试

PJ-01 Project 选择画师后只生成一个 Worktask

目的:验证 project request 选择流程不会重复创建 worktask。

前置条件:

  • Buyer A 有一个 project。
  • 至少两个画师提交了 request。

操作步骤:

  1. Buyer A 打开 project 详情页。
  2. 选择其中一个画师 request。
  3. 确认进入 worktask 流程。
  4. 返回 project 详情页。
  5. 再次尝试选择同一个 request 或另一个 request。

预期结果:

  • 第一次选择成功,并生成 worktask。
  • 第二次选择失败或页面不允许再次选择。
  • 不会生成第二个 active worktask。

PJ-02 Project Worktask 支付

目的:验证 project 生成的 worktask 支付行为和普通 worktask 一致。

前置条件:

  • 已通过 project 生成 worktask。

操作步骤:

  1. 打开该 worktask 详情页。
  2. 执行阶段支付或全额支付。
  3. 按 WT-01 至 WT-08 中任一渠道完成或放弃支付。

预期结果:

  • Project 本身不直接支付。
  • 页面进入 worktask 支付弹窗。
  • 支付、继续支付、取消订单行为与普通 worktask 一致。

6. PayPal/Alipay 特殊场景测试

SP-01 第三方支付页保持打开后取消本地订单

目的:验证用户取消本地订单后,第三方 late success 不会自动履约。

前置条件:

  • 使用 Alipay 或 PayPal 创建一笔 worktask 或 product 支付。
  • 第三方支付页已打开但未支付。

操作步骤:

  1. 保持第三方支付页打开。
  2. 回到站内页面。
  3. 点击“取消订单”。
  4. 确认页面提示取消成功。
  5. 回到第三方支付页,尝试完成支付。
  6. 回到站内页面刷新。

预期结果:

  • 站内订单已取消。
  • 如果第三方仍显示支付成功,站内业务不应自动变成已支付。
  • Worktask 不应自动履约。
  • Product 不应自动变成可下载。
  • 后续需要人工处理该异常支付。

SP-02 PayPal 支付结果 pending

目的:验证 PayPal pending 不会被误判为失败或取消。

前置条件:

  • 准备一个 PayPal 支付可能返回 pending 的场景。

操作步骤:

  1. 完成 PayPal 支付或模拟 PayPal pending。
  2. 返回 /order_checkout
  3. 等待页面 loading 结束。
  4. 回到业务页刷新。

预期结果:

  • 返回页显示 pending 或等待提示。
  • 业务页不应自动取消订单。
  • 如果订单仍待处理,点击继续支付或取消时应出现处理中提示。

SP-03 Alipay 登录前关闭页面

目的:验证 Alipay 未真正创建交易前关闭页面,站内仍可继续支付。

前置条件:

  • 创建 Alipay 支付。

操作步骤:

  1. 打开 Alipay 页面。
  2. 不登录或不进入最终付款,直接关闭页面。
  3. 回到 worktask/product 页面。
  4. 点击继续支付。

预期结果:

  • 站内仍显示未完成支付订单。
  • 继续支付仍打开 Alipay。
  • 不会自动切换到 Stripe。
  • 不会自动取消订单。

7. 旧入口回归检查

以下页面代码中仍能看到旧支付流程痕迹,需要测试是否仍可从正常导航进入:

  • /user_center/work_task_details
  • /user_center/project_details
  • /user_center/application_details
  • 部分旧组件中的 worktask 支付入口

LEG-01 确认旧入口是否可达

操作步骤:

  1. 使用正常导航进入用户中心、项目详情、申请详情、旧 worktask 详情。
  2. 查找是否仍能点击阶段支付、全额支付或继续支付。

预期结果:

  • 如果旧入口不可达或没有支付按钮,记录为通过。
  • 如果旧入口可达,继续执行 LEG-02。

LEG-02 旧入口已有 Alipay/PayPal 支付中订单

前置条件:

  • 同一个 worktask 已有 Alipay 或 PayPal 支付中订单。
  • 旧页面入口仍可达。

操作步骤:

  1. 通过旧入口打开该 worktask。
  2. 点击阶段支付或全额支付。
  3. 点击继续支付。

预期结果:

  • 不应自动取消原订单。
  • 不应打开 Stripe 支付弹窗。
  • 应提示已有未完成订单,或正确继续 Alipay/PayPal。
  • 如果出现自动取消或切换 Stripe,记录为前端阻断问题。

8. 验收标准

本轮手动测试通过标准:

  1. Worktask 主要新入口在有支付中订单时展示“未完成支付订单”,而不是重新创建支付。
  2. Worktask Alipay/PayPal 继续支付不会打开 Stripe。
  3. Product 订单中心 Alipay/PayPal 继续支付不会打开 Stripe。
  4. 用户主动取消支付订单后,可以重新选择支付方式。
  5. PayPal cancel 返回页不会导致站内订单消失。
  6. 支付 session 进入 processing 时,页面不能取消订单。
  7. 支付 session 进入 conflicted 时,页面不能继续支付或取消订单。
  8. Worktask 取消支付订单不会取消 worktask。
  9. Product 取消支付订单会取消待支付 license,并恢复库存/钱包。
  10. 0 元 worktask/product 支付都能通过页面完成。
  11. Project 只能生成一个 active worktask。
  12. 旧入口如仍可达,不得出现自动取消订单或渠道错乱。

9. 测试记录模板

Case ID结果测试页面支付渠道页面可见结果问题备注
WT-01Pass / Fail
WT-02Pass / FailStripe
WT-03Pass / FailAlipay
WT-04Pass / FailAlipay
WT-05Pass / FailPayPal
WT-06Pass / FailPayPal
WT-07Pass / Fail/order_checkoutPayPal
WT-08Pass / Fail
WT-09Pass / FailInternal
WT-10Pass / Fail
WT-11Pass / Fail
WT-12Pass / Fail
WT-13Pass / FailProcessing
WT-14Pass / FailConflicted
PD-01Pass / FailStripe
PD-02Pass / FailAlipay
PD-03Pass / FailPayPal
PD-04Pass / FailStripe
PD-05Pass / FailAlipay
PD-06Pass / Fail
PD-07Pass / FailInternal
PD-08Pass / FailProcessing
PD-09Pass / FailConflicted
PJ-01Pass / Fail
PJ-02Pass / Fail
SP-01Pass / FailAlipay/PayPal
SP-02Pass / Fail/order_checkoutPayPal
SP-03Pass / FailAlipay
LEG-01Pass / Fail
LEG-02Pass / FailAlipay/PayPal
ON THIS PAGE