← 返回部落格列表 Stripe OA 2026 New Grad 全景|狀態機 + 詐欺偵測 + API 解析 VO代面與 VO輔助備考
Stripe

Stripe OA 2026 New Grad 全景|狀態機 + 詐欺偵測 + API 解析 VO代面與 VO輔助備考

2026-05-20

Stripe 的 OA 在 2026 年繼續保持「兩道工程化大題 + 90 分鐘限時」的穩定模型。和 LeetCode 風格題截然不同,Stripe 題面通常長達 2-3 屏 + 多個 API + 多步迭代,考察候選人能否在壓力下用乾淨的工程程式碼寫出可擴展的解決方案。本文按 New Grad 2026 最新面經的題型分布,逐一拆解 Stripe OA 的三大主線題型,並補充 VO代面 / VO輔助 的準備路徑。

Stripe OA 2026 概覽

維度 詳情
平台 自建 Web IDE
時長 90-120 分鐘
題量 2 道大題,每題分多 part
難度 LC Medium + 工程化擴展
評分 單元測試 + 程式碼可讀性
重點 狀態機、字串解析、API 模擬

題型一:狀態機 / 事件處理

Stripe 的狀態機題幾乎一定會出現,常見外殼是 Subscription 狀態流轉、Refund 流程、Payment Intent

代表題:Subscription 狀態機

實作一個訂閱狀態機,狀態集 {active, trialing, past_due, canceled},按事件流轉:

當前狀態 事件 目標狀態
trialing trial_ended (paid) active
trialing trial_ended (unpaid) past_due
active invoice_failed past_due
past_due invoice_paid active
任意 cancel canceled
class SubscriptionFSM:
    def __init__(self):
        self.state = "trialing"
        self.transitions = {
            ("trialing", "trial_ended_paid"): "active",
            ("trialing", "trial_ended_unpaid"): "past_due",
            ("active", "invoice_failed"): "past_due",
            ("past_due", "invoice_paid"): "active",
        }

    def handle(self, event):
        if event == "cancel":
            self.state = "canceled"
            return self.state
        key = (self.state, event)
        if key in self.transitions:
            self.state = self.transitions[key]
            return self.state
        raise ValueError(f"Invalid event {event} in state {self.state}")

Part 2 擴展:要求處理事件回放(按時間戳重放歷史事件,輸出最終狀態);Part 3 擴展:要求實作回退(一步回到上一個狀態)。

Stripe 狀態機題的核心是「顯式狀態表 + 可擴展」,永遠不要硬編碼 if-else 巢狀。

題型二:詐欺偵測 / 滑動視窗

代表題:異常交易識別

txn_logs[] 是按時間排序的事件,每條 (ts, user_id, amount, country)。要求識別任意 5 分鐘視窗內,同一使用者:

from collections import defaultdict, deque

def find_fraud(txns):
    suspects = set()
    windows = defaultdict(deque)  # user_id -> deque of (ts, amount, country)
    sums = defaultdict(int)
    countries = defaultdict(lambda: defaultdict(int))

    for ts, uid, amt, ctry in txns:
        windows[uid].append((ts, amt, ctry))
        sums[uid] += amt
        countries[uid][ctry] += 1

        while windows[uid] and windows[uid][0][0] < ts - 300:
            old_ts, old_amt, old_ctry = windows[uid].popleft()
            sums[uid] -= old_amt
            countries[uid][old_ctry] -= 1
            if countries[uid][old_ctry] == 0:
                del countries[uid][old_ctry]

        if sums[uid] > 10000 or len(countries[uid]) >= 3:
            suspects.add(uid)
    return suspects

時間複雜度:O(n)(每條日誌最多入佇 / 出佇一次)

題型三:API 解析與對帳

代表題:跨幣別對帳

給定兩組資料:

要求計算每個幣別的淨額(charges − refunds)。Part 2 要求把所有幣別折算為 USD(給一個 fx_rates: {currency: rate_to_usd})。

from collections import defaultdict

def reconcile(charges, refunds, fx_rates):
    by_ccy = defaultdict(int)
    for _, amt, ccy in charges:
        by_ccy[ccy] += amt
    for _, amt, ccy in refunds:
        by_ccy[ccy] -= amt

    usd_total = 0
    breakdown = {}
    for ccy, amt in by_ccy.items():
        breakdown[ccy] = amt
        usd_total += amt * fx_rates.get(ccy, 0)
    return breakdown, usd_total

Stripe 對帳題的關鍵不是演算法,而是正確處理邊界:refund 比 charge 多怎麼辦?某些幣別 fx_rates 缺失怎麼辦?

一畝三分地高頻題速查

類別 頻率 關鍵技巧
狀態機 ★★★★★ 顯式狀態表
滑動視窗 / 詐欺 ★★★★ 雙端佇列 + 字典
API 解析 / 對帳 ★★★★ defaultdict + 精度
限流(Rate Limiter) ★★★ Token bucket / 滑窗
字串模板替換 ★★★ 堆疊

VO 流程

Stripe 的 VO 在 2026 年繼續保持 5 輪:

  1. HR 電話:動機 + 專案(25 分鐘)
  2. 演算法面:1 道 LC Medium-Hard + follow-up(60 分鐘)
  3. 整合面(Integration):長篇真實場景程式碼,類似 OA 但更深(90 分鐘)
  4. Debug / Bug Bash:給一段有 bug 的程式碼,找 + 修(60 分鐘)
  5. Hiring Manager / 行為面:Stripe Operating Principles(45 分鐘)

VO代面 / VO輔助 準備路徑

實戰做法

oavoservice 的 VO代面 + VO輔助 一體化服務

針對 Stripe 5 輪 VO(HR / 演算法 / Integration / Debug / HM),oavoservice 提供:

具體方案與報價,加微信 Coding0201 溝通。

7 天衝刺方案

天數 任務
D1 一畝三分地最近 90 天 Stripe OA 帖分桶
D2 狀態機:寫 3 個不同場景(訂閱、退款、Payment Intent)
D3 詐欺偵測 / 滑動視窗:LC 239 + 雙端佇列經典題
D4 API 解析 / 對帳:自訂邊界用例 5 組
D5 1 次完整 90 分鐘 mock,模擬 Stripe Web IDE 環境
D6 Debug round:找 1 個開源 bug 修復
D7 行為面 STAR:Operating Principles 各打磨 1 個故事

FAQ

Stripe OA 是不是和 LeetCode 完全不一樣?

是。Stripe OA 題面像產品需求文件,2-3 屏 + 多 part 漸進式擴展。準備策略不是刷 LC,而是練工程化程式碼 + 狀態機抽象

Stripe OA 難度怎麼樣?

整體在 LC Medium,但時間緊 + 題面長讓難度感升級到 Hard。能在 90 分鐘做完 Part 1 + Part 2 已經是 Pass 水準。

Stripe OA 沒過冷卻期多長?

通常 12 個月。換職位(如從 Payments 改投 Connect / Issuing)一般不算同一池。

Stripe OA 用什麼語言?

可以選 Python / JavaScript / Java / Go / Ruby 等。New Grad 一畝三分地裡 Python 占比最高。


正在準備 Stripe OA / VO?

oavoservice 提供 Stripe / PayPal / Square / Adyen 等支付 / FinTech 公司的 OA 題型分桶、Integration round 長題模擬、Debug round 演練、行為面劇本等 VO輔助 服務。我們的 mentor 來自一線支付 / Infra 團隊,可針對 Stripe New Grad 制定 1-2 週衝刺方案。

👉 立即加入微信:Coding0201獲取 Stripe 高頻題與 VO輔助方案


聯絡方式

Email: [email protected]
Telegram: @OAVOProxy