跳到主内容
版本: 1.x

角色端点访问

本页记录 POS 工作流程中使用的三个默认角色各自可访问哪些 WCPOS REST 端点:

  • administrator
  • shop_manager
  • cashier

面向用户的角色和能力配置请参阅访问 POS

摘要

默认访问模型如下:

  • administrator —— 完整的 POS 和管理访问权限。
  • shop_manager —— 完整的 POS 和管理访问权限,但需要插件安装能力的插件扩展操作除外。
  • cashier —— 正常的 POS 销售工作流程访问权限,但没有管理、设置、日志或店铺管理的访问权限。

端点矩阵由集成测试验证,这些测试使用与 POS 应用相同的身份验证路径(WCPOS 持有者访问令牌,而不仅仅是 wp_set_current_user())。允许端点的断言确认某个角色不会收到 401403。当测试使用最小化的测试数据时,某些端点仍可能返回正常数据或业务错误,例如 400404——这些响应仍然证明用户已通过身份验证/权限层。

免费插件端点访问矩阵

区域端点示例AdminShop ManagerCashier备注
设置索引GET /wcpos/v1/settings公开/可读的 POS 设置索引
店铺GET /wcpos/v1/storesPOS 启动数据
收银员资料GET /wcpos/v1/cashier/{id}自己的收银员数据
收银员店铺GET /wcpos/v1/cashier/{id}/stores当前收银员的店铺访问权限
产品GET /wcpos/v1/products目录浏览
变体GET /wcpos/v1/products/variations目录浏览
分类GET /wcpos/v1/products/categories目录筛选
标签GET /wcpos/v1/products/tags目录筛选
品牌GET /wcpos/v1/products/brands目录筛选
优惠券GET /wcpos/v1/couponsPOS 优惠券查询
订单读取GET /wcpos/v1/ordersPOS 订单历史
订单创建POST /wcpos/v1/orders销售工作流程
订单更新PATCH /wcpos/v1/orders/{id}完成/更新 POS 订单
结账读取/创建/wcpos/v1/orders/{id}/checkout支付流程
收据GET /wcpos/v1/receipts/{order_id}收据渲染
订单状态GET /wcpos/v1/data/order_statusesPOS 状态数据
客户读取GET /wcpos/v1/customers客户搜索/列表
客户创建POST /wcpos/v1/customers在 POS 中创建客户
客户更新PATCH /wcpos/v1/customers/{id}在 POS 中编辑客户
税费GET /wcpos/v1/taxes结账/税务计算数据
税类GET /wcpos/v1/taxes/classes结账/税务计算数据
配送方式GET /wcpos/v1/shipping_methods结账/配送数据
支付网关GET /wcpos/v1/payment-gateways支付选项
网关引导POST /wcpos/v1/payment-gateways/{id}/bootstrap支付设置
模板GET /wcpos/v1/templates收据/模板读取
当前模板GET /wcpos/v1/templates/active收据/模板读取
模板库GET /wcpos/v1/templates/gallery模板读取
常规设置GET /wcpos/v1/settings/general仅管理
结账设置GET /wcpos/v1/settings/checkout仅管理
税号设置GET /wcpos/v1/settings/tax_ids仅管理
支付网关设置GET /wcpos/v1/settings/payment-gateways仅管理
扩展目录/管理GET /wcpos/v1/extensions仅管理
日志GET /wcpos/v1/logs仅管理

Pro 插件端点访问矩阵

区域端点示例AdminShop ManagerCashier备注
店铺编辑数据GET /wcpos/v1/stores/{id}/edit店铺管理
店铺创建POST /wcpos/v1/stores店铺管理
店铺更新PATCH /wcpos/v1/stores/{id}店铺管理
许可证设置更新POST /wcpos/v1/settings/licensePro 管理
扩展操作POST /wcpos/v1/extensions/action需要插件安装/管理能力
订单退款POST /wcpos/v1/orders/{id}/refunds被视为 POS 操作

令牌过期覆盖

场景AdminShop ManagerCashier预期结果
有效的访问令牌✅ 已测试✅ 已测试✅ 已测试允许的端点不返回 401403
过期的访问令牌✅ 已测试✅ 已测试✅ 已测试请求在 WCPOS 身份验证关卡处失败,用户为 0
访问令牌过期后使用有效的刷新令牌✅ 已测试✅ 已测试✅ 已测试签发新的访问令牌并恢复访问
过期的刷新令牌✅ 已测试✅ 已测试✅ 已测试无法铸造新的访问令牌

诊断失败

如果默认的 shop_manager 看到类似以下的错误:

Request still unauthorized after token refresh - please log in again

端点矩阵表明这不是因为默认的 shop_manager 角色从根本上缺少 POS 访问权限。需要调查的可能原因:

  1. 站点特定的角色/能力损坏。
  2. 矩阵未覆盖的某个端点。
  3. 客户端中陈旧或过期的访问令牌重试行为。
  4. 第三方安全或身份验证插件的干扰。
  5. Pro 或店铺特定的访问规则,或自定义代码。

权限失败 vs. 令牌失败

对于两种情况,POS 前端在收到 401403、尝试刷新令牌、且重试仍未授权后,都可能显示相同的令牌刷新错误。这两种失败模式在服务器端看起来不同:

真正的角色/能力失败通常如下所示:

status: 403
current_user: <actual user id>
access token expired: false

令牌/身份验证失败通常如下所示:

status: 403
current_user: 0
access token expired: true or invalid

在分流 POS 访问问题时使用这一区别——非零的 current_user 指向能力问题,而 current_user: 0 指向身份验证/令牌层。