
PayPal OA 的节奏比较像一场压缩版技术面:HackerRank 上限时做题,题目不只看算法答案,也会看 Java/OOP 代码组织、边界处理和解释能力。准备时不要只刷单点算法,最好把堆、栈、双指针、HTTP/API 基础和小型类设计放在同一套练习里。排查流程和轮次时,可以先看这份 PayPal Software Engineer Interview Guide,再按自己的岗位补强语言和后端基础。
第一题:交易事件窗口统计
Question description
给定一组支付事件 events = [(userId, merchantId, amount, timestamp)],再给一个窗口长度 k 分钟,要求输出每个用户在任意连续窗口内的最高交易总额。输入已经按时间排序,同一个用户会出现多次,同一个时间点也会有多笔交易。追问要求支持只统计成功交易,并在金额相同的时候返回更早出现的窗口。
Problem-solving ideas
先按 userId 分组处理,组内用双指针维护 [left, right] 这个时间窗口。right 每次加入一笔交易,窗口总额加上当前金额;当 timestamp[right] - timestamp[left] > k * 60 时,持续移动 left 并扣掉离开的金额。每次窗口合法后更新答案。成功交易的过滤不要放在窗口外单独建新数组,直接在加入和移出时判断状态,可以少一次内存复制。金额相同返回更早窗口时,比较当前窗口左端时间和已记录时间。Complexity:每个用户的指针只前进,整体时间 O(n),额外空间 O(u),其中 U 是用户数。
第二题:Java OOP 订单状态机
Question description
实现一个简化版付款订单状态机。订单从 CREATED 开始,支持 authorize(),capture(),refund(),cancel() 四个操作。非法状态转换要抛出清晰错误;重复调用同一个操作不能把订单带到错误状态;每次状态变化要记录一条审计日志。追问要求支持不同支付渠道的手续费计算。
Problem-solving ideas
把状态转换表写清楚,比在每个方法里堆 if else 更稳。可以用 EnumMap<State, Set<Action>> 表示允许的动作,再用一个私有方法 transition(action, nextState) 做校验、更新状态和写审计日志。手续费计算单独抽成 FeePolicy 接口,信用卡、余额、PayPal wallet 各自实现,订单对象只依赖接口。重复调用 capture() 时,如果订单已经是 CAPTURED,直接返回当前状态和日志,不再追加新的 capture 记录;如果已经 REFUNDED Or CANCELLED,抛出业务错误。这个题的得分点不在类名,而在状态边界、幂等处理和测试用例。
第三题:API Debug 与重试逻辑
Question description
给一段调用风控服务的代码,代码在遇到 429,500 和网络超时时会直接失败。要求修复它:对可重试错误做指数退避,保留最大重试次数;对 400/401/403 这类错误立即返回;请求必须带幂等键,日志里不能打印完整 token。追问要求解释 GET 和 POST 的区别,以及为什么支付类接口需要幂等键。
Problem-solving ideas
先把错误分成三类:不可重试、可重试、未知错误。可重试分支用 for attempt in range(maxRetries + 1) 控制次数,退避时间可以从 baseDelay 开始翻倍,并加一个很小的 jitter,避免并发请求同时打回后端。幂等键放在 header,例如 Idempotency-Key,同一笔业务请求失败后重试时必须保持一致。日志只记录状态码、requestId、业务 orderId 和 token 的后四位。GET 适合读资源,POST 适合创建或触发动作;支付 capture/refund 用 POST 时,幂等键能防止网络超时后重复扣款或重复退款。测试用例要覆盖成功、429 后成功、超过重试次数、401 立即失败、日志脱敏五类。
Exam preparation advice
PayPal OA 不适合只按题号刷。算法部分要把栈、堆、双指针、树和字符串整理成模板;Java 部分要能写出可测的类,而不是只讲概念;API Debug 要能解释状态码、幂等、超时和日志脱敏。练习时给自己 90 分钟,先把两道主逻辑写完,再补异常分支和复杂度说明。
FAQ
PayPal OA 需要重点准备 Java 吗?
如果岗位描述偏后端或平台工程,Java/OOP 的准备很有价值。至少要熟悉接口、枚举、异常、集合类、线程安全基础和单元测试写法。
API Debug 题怎么练?
找一段真实业务风格的 HTTP client 代码,自己加上重试、超时、幂等键、日志脱敏和错误分类。只会写算法题,遇到这种工程题会很吃亏。
关于 CSOFFERPREP
进 VO 之前,可以找 CSOFFERPREP 做实时面试助攻和备考辅导。CSOFFERPREP 深耕北美 IT 行业多年,已帮助万余名学生进入全球 500 强企业。导师来自一线大厂资深工程师和面试官,对 PayPal 这类注重工程落地的公司的面试套路很熟悉。无论是 OA辅助、OA 辅导、VO 辅助、VO 模拟面试、VO 辅助还是系统设计辅助,都可以获得更有针对性的准备方案:CSOFFERPREP · 服务详情



