プロバイダレベルでのカスケード
1)何がカスケードされ、なぜiGamingでそれがあるのか
プロバイダのカスケード-同じ支払い試行または一般的なトラフィック配布のために、複数のPSP/アクワイラ間の動的選択および/またはシーケンシャルスイッチング。目的:- 「気まぐれな」発行者をバイパスし、特定のBIN/geo/メソッドに最適なPSPを選択します。
- コスト:IC++/マークアップがバスケットの部分より低いため、マイクロチケットの修正が最小限に抑えられます。
- レジリエンス:インシデントのフェイルオーバー、3DSの劣化、支払い廊下の落下。
- コンプライアンス:地政学、制裁、ローカル禁止およびライセンスの遵守。
2)カスケーディングパターン
1.シーケンシャル
PSP_A→(ソフトダウン/tekhnichesky拒否)→PSP_B→PSP_C。
レトレイの「狭い窓」は、複数の資金保有の重複/リスクを発生させないように使用されます。
2.パラレル(スプリットトラフィック/マルチアーム)
ベンチマーク、ルール学習、相関障害低減のための複数のPSP間のフロー分布(%/ルール)。
3.Sticky BIN/Sticky GEO
特定のBIN/issuer/geo (TTLによる意思決定キャッシュ)に最適なPSPを記憶します。
4.メソッド対応/フィーチャー対応
カード、A2A、財布、ローカル方法のための異なった提供者;3DS-rails、 DCC/FXの動作、トークン化の詳細を考慮します。
5.Limit-aware/SLA対応
プロバイダの制限、準備金、SLAインシデント、カットオフおよび資金調達の遅延を計算します。
3)規則エンジン: 入力
カード機能:BIN/IIN、ブランド、デビット/クレジット、商業/プレミアム、発行者の国。
地理とコンプライアンス:プレーヤーの国(IP/GPS/SIM/KYC)、制裁、ライセンス。
トランザクション:金額(マイナーユニット)、通貨、チャネル(ウェブ/アプリ)、リスクレート。
プロバイダの歴史:最後の15-60分のBIN/geo/methodによるAR/DR、ソフトダウンシェア、3DS-pass-rate。
コスト:IC++/マークアップ/修正、FXスプレッド、ローリングリザーブ%。
制限:レートリミットプロバイダ、メンテナンス/インシデント、毎日の売上高のキャップ。
出力:ルートの優先リスト'[(PSP、 MID、 require_3DS、 retry_window_ms、 max_attempts)]'。
4)後退、idempotenceおよび安全
カスケード内のすべてのプロバイダに共通の1試行あたりのIdempotency-key (user_id+order_id+nonce)。
ソフトダウン(network/3DS/timeout/insufficient資金)のみでリトレイ、決して「ハード」コード(盗まれた、敬意を払わないなど)。
アンチデューリング:'AUTHORIZED'/'CAPTED'ステータスがカスケードを閉じます。他の支店はすべてキャンセルされます。
Windows:第1のレトレイ≤ 2-5秒、総予算≤ 15-30秒、UXを含んで。
3DSポリシー:最初のブランチが3DSなしで落ちた場合、2番目/3番目のブランチでステップアップする可能性があります。
5) 3DS、責任シフトAR
「フリクションレス」/「チャレンジ」の選択は、リスクとPSPサポート(委任認証、TRA、ホワイトリスト)に依存します。
「ハード」地理/発行者-バスケットの一部に3DSを強制しました。
プロバイダによる責任シフトの追跡:より頻繁に達成される場所-危険なBINをそこに転送します。
6)費用: IC++、混合された、固定およびFX
PSPごとに、有効なテイクレート=交換+スキーム+マークアップ+固定+FXスリッページを検討してください。
カスケードでは、ルートのスコアに価格関数を使用します:- 'Score=w1AR_live+w2 (− Cost_bps)+w3 (SLA_health)+w4 (FX_quality)+……'
- マイクロチケット:修正の重量が高い→修正が少ないプロバイダが望ましい。
- 別に、リザーブ%と資金調達T+N-キャッシュフローに影響を与えます。
7)インシデント、カットオフおよびルーティング
健康の供給:PSP/通路の状態(auth API、 3DS ACS、ペイアウト・レール)。
自動フェイルオーバー:AR/healthがしきい値を下回ると即座にルーティングされます。
Cut-off-aware:決済を終了する前に、厄介なT+NでPSP上の部分キャプチャを避けてください。
スロットリング:プロバイダの制限を「燃焼」しないために、トラフィックを投稿します。
8)最小限のデータモデル
sql
-- Providers and MIDs
CREATE TABLE ref. providers (
provider TEXT PRIMARY KEY, model TEXT, pricing_model TEXT, fx_policy TEXT, reserve_pct NUMERIC, meta JSONB
);
CREATE TABLE ref. mids (
mid TEXT PRIMARY KEY, provider TEXT REFERENCES ref. providers, country TEXT, method TEXT, descriptor TEXT, meta JSONB
);
-- Cascade Rules/Profiles
CREATE TABLE ref. cascade_profiles (
profile_id BIGSERIAL PRIMARY KEY, name TEXT, version TEXT, enabled BOOLEAN, meta JSONB
);
CREATE TABLE ref. cascade_rules (
rule_id BIGSERIAL PRIMARY KEY, profile_id BIGINT REFERENCES ref. cascade_profiles,
geo TEXT, bin_from TEXT, bin_to TEXT, method TEXT,
provider TEXT, mid TEXT, require_3ds BOOLEAN, priority INT,
retry_on_soft JSONB, max_attempts INT, ttl_seconds INT, enabled BOOLEAN, meta JSONB
);
-- Online Provider Performance Metrics (Sliding Window)
CREATE TABLE live. provider_stats_15m (
provider TEXT, method TEXT, geo TEXT, bin6 TEXT,
approvals INT, declines INT, soft_declines INT, three_ds_pass INT,
avg_latency_ms INT, updated_at TIMESTAMP
);
-- Transactions with idempotency and selected route
CREATE TABLE payments. auth_attempts (
attempt_id BIGSERIAL PRIMARY KEY, idempotency_key TEXT, step INT,
provider TEXT, mid TEXT, require_3ds BOOLEAN, status TEXT, decline_code TEXT,
amount_minor BIGINT, currency TEXT, bin TEXT, geo TEXT,
started_at TIMESTAMP, finished_at TIMESTAMP, meta JSONB
);
9) SQL分析テンプレート
9.1.オンラインプロバイダー評価(AR・ソフトダウンシェア)
sql
SELECT provider, method, geo,
SUM(approvals) AS appr,
SUM(declines) AS decl,
ROUND(100. 0 SUM(approvals) / NULLIF(SUM(approvals+declines),0), 2) AS ar_pct,
ROUND(100. 0 SUM(soft_declines) / NULLIF(SUM(declines),0), 2) AS soft_share_pct
FROM live. provider_stats_15m
WHERE updated_at > now() - INTERVAL '20 minutes'
GROUP BY 1,2,3
ORDER BY ar_pct DESC, soft_share_pct DESC;
9.2.注文に対するカスケード効果(ステップ変換)
sql
WITH s AS (
SELECT idempotency_key,
MAX(step) AS steps,
BOOL_OR(status='APPROVED') AS approved
FROM payments. auth_attempts
WHERE started_at BETWEEN:from AND:to
GROUP BY 1
)
SELECT steps,
COUNT() AS orders,
100. 0 SUM(approved::int) / NULLIF(COUNT(),0) AS conv_pct
FROM s
GROUP BY 1
ORDER BY 1;
9.3.Sticky BIN:最高のBIN6プロバイダー
sql
SELECT bin6,
provider,
ROUND(100. 0 SUM(approved)::NUMERIC / NULLIF(COUNT(),0), 2) AS ar_pct
FROM (
SELECT LEFT(bin,6) AS bin6, provider, (status='APPROVED') AS approved
FROM payments. auth_attempts
WHERE started_at BETWEEN:from AND:to
) t
GROUP BY 1,2
QUALIFY ROW_NUMBER() OVER (PARTITION BY bin6 ORDER BY ar_pct DESC) = 1;
9.4.オールインテイクレート
sql
SELECT provider,
SUM(amount_reporting) AS volume_rep,
SUM(interchange_amt + scheme_amt + markup_amt + auth_amt + refund_amt + cb_amt + gateway_amt + fx_spread_amt) AS fees_rep,
100. 0 SUM(interchange_amt + scheme_amt + markup_amt + auth_amt + refund_amt + cb_amt + gateway_amt + fx_spread_amt)
/ NULLIF(SUM(amount_reporting),0) AS take_rate_pct
FROM finance. settlement_fees
JOIN dw. transactions_flat USING (provider)
WHERE period_start_at >=:from AND period_end_at <:to
GROUP BY 1
ORDER BY take_rate_pct;
10) KPIとダッシュボード
プロバイダとBIN/geo/methodによるAR/DR(オンラインウィンドウ15/60分と日々)。
ステップ変換:1st、 2nd、 3rdブランチの承認の共有。
プロバイダ/MIDによるテイクレート%とFXスリッページ。
3DSパスレートと責任シフトシェア。
Health/SLA:レイテンシ、タイムアウト、エラー率、インシデント。
リザーブ&資金調達:プロバイダーによるリザーブ%とT+Nヒット率。
11)アラートとしきい値
Routing Degradation:選択したプロバイダ>Y bpsでARドロップを10〜30分で実行します。
ソフトダウンサージ:ソフトダウンロードのシェアの増加→カスケードの追加分岐を可能にします。
3DS異常:特定の発行者/BINクラスタでの3DSパスレートの低下>X%。
テイクレートスパイク:オールインコスト成長>bpsしきい値。
Health Down: SLA違反(レイテンシ/エラー)-フェイルオーバー。
Policy Drift-カスケードプロファイルなしidempotency_key/bez試行-P1。
12) ABテストとルールトレーニング
新しいルートへのマルチアーム盗賊または固定スプリットトラフィック。
Explore/Exploit:トラフィックの一部を「学ぶ」粘着性のあるBINに保ちます。
評価の地平線:事件のためのオンライン(15/60分)および費用のための週/月。
ガードレール:実験を停止するための最小AR/最大テイクレート。
13)コンプライアンスと「極端な」ケース
制裁/ライセンス/ジオブロックを尊重する:一部のプロバイダーは個々の国/方法を提供できません。
Same-method/Return-to-source:カスケードはリターンポリシーを破るべきではありません。
トークン化/PCI: PSP(ネットワークトークン/ヴォールト)間の単一のトークンスキーム。
チャージバック:分岐キャプチャが通過したログ-紛争の場合。
14)ベストプラクティス(短い)
1.柔らかい衰退だけを、単一のidempotency_keyと引き込めて下さい。
2.ライブテレメトリーのAR/3DS/soft-declineと医療提供者を維持します。
3.ルートプライシング機能(AR vs Cost vs SLA vs FX)を構築します。
4.粘着性があるBINおよびABテストを使用して下さい;カスケードプロファイルのバージョン管理。
5.注意してください:一日の終わりに部分的なキャプチャを生成しないでください。
6.プレイブックのフェイルオーバー:PSP/ACS/ペイアウト回廊のドロップ。
7.別のデータと責任:誰が紛争をリードするPANを保持しています。
8.プロバイダによるreserve-ledgerの保持:リリースとライトオフ。
15)実装チェックリスト
- プロバイダーカード/MID、価格設定(IC++/ブレンド)、FXポリシー、準備金、T+N。
- Rules-engine:プロファイル、ルール、ソフトコード、3DSポリシー、制限。
- ルータ:idempotency、リトレイ、タイムアウト、スティッキーBINキャッシュ。
- テレメトリー:live AR/DR/3DS/latency/health metrics;警告します。
- インシデント管理とフェイルオーバープレイブック。
- 料金/FX/予約のためのETL;テイクレートとステップコンバージョンのショーケース。
- ABテスト手順とガードレール。
- ドキュメント:コンプライアンスの制限、同じ方法での返品、責任。
概要
プロバイダーレベルでのカスケードは「別のPSPを試す」ことではなく、ライブメトリクス、スマートルールエンジン、厳格なidempotence、正しい3DS戦術、準備金のコスト/FX/および既製のフェイルオーバーのシナリオです。このアーキテクチャは、ARを増加させ、オールインテイクレートを削減し、決済ループをクラッシュや規制上の制限に耐えられるようにします。