任何调用者都可用已知会话 ID 查询支付状态和关联用户
原文依据:2 处getStripeSessionStatus 没有登录、所有权或管理员检查。返回类型可包含 Stripe 响应正文和 userPrincipal,而查询只需要 sessionId。
获知或猜到有效会话 ID 的人可能取得付款状态、原始响应中包含的交易资料以及关联用户标识。实际暴露内容取决于 Stripe 模块放入 response 的字段。
会话状态类型可返回 Stripe 响应正文和 userPrincipal;公开查询包装器只接收 sessionId,示例中没有身份、会话所有权或管理员检查。知道或猜到有效 ID 的调用者可能读取他人的支付状态及关联标识。具体暴露程度取决于依赖返回的 response 内容和会话 ID 的不可猜测性;用户应要求按 caller 校验所有权并最小化返回字段。
public type StripeSessionStatus = { #failed : { error : Text }; #completed : { response : Text; userPrincipal : ?Text }; }; /// Check payment status. public func getSessionStatus(configuration : StripeConfiguration, sessionId : Text, transform : OutCall.Transform) : async StripeSessionStatus;};查看另外 1 个位置
public func getStripeSessionStatus(sessionId : Text) : async Stripe.StripeSessionStatus { await Stripe.getSessionStatus(getStripeConfiguration(), sessionId, transform); };