概要
EC-CUBE 本体のエージェントコマース対応のうち、ACP (Agentic Commerce Protocol) checkout における決済ハンドラの公開された参考実装 (mock) を本サンプルプラグインに用意する。
本サンプルプラグインはダミーゲートウェイを持つため、実 PSP に依存しない ACP 決済ハンドラの参考実装 として最適。
Note
前提: 本サンプルプラグインの EC-CUBE 4.4 (Symfony 7 / PHP 8.2+ / Doctrine ORM 3 / attribute マッピング) 対応が必要。
現状の support-4.3 ブランチはアノテーションマッピング (@ORM\...) で、Doctrine ORM 3.x (doctrine/annotations 非同梱) の 4.4 ではエンティティをロードできない。4.4 対応は別途予定のため、本 issue の実装は 4.4 対応ブランチ上で行う。
設計方針
エージェント決済は web の PaymentMethodInterface フロー (verify()/apply()/checkout() + form/twig/session/redirect) を使わない 。本体は Eccube\Service\AgentCommerce\AgentCheckoutPurchaseFlowAdapter 経由で Cart → Order → shopping flow を再利用する。
既存の CreditCard クラスを流用するのではなく、エージェント用ハンドラを新設 し、既存の足回り (ダミーゲートウェイ・Config・OrderTrait・PaymentStatus 遷移・PurchaseFlow commit/rollback) を共有する。
実 PSP SDK 不要 (mock)。eccube-api4 非依存 (ACP インバウンド認証は本体側で処理。決済ハンドラは認証と無関係)。
本体側の前提インターフェイス
やること
スコープ外
実 PSP との接続・本番決済 (本 issue は mock 参考実装に限定)
特定 PSP の内部仕様や非公開スキーマ (公開可能な汎用 mock のみ扱う)
概要
EC-CUBE 本体のエージェントコマース対応のうち、ACP (Agentic Commerce Protocol) checkout における決済ハンドラの公開された参考実装 (mock) を本サンプルプラグインに用意する。
本サンプルプラグインはダミーゲートウェイを持つため、実 PSP に依存しない ACP 決済ハンドラの参考実装として最適。
Note
前提: 本サンプルプラグインの EC-CUBE 4.4 (Symfony 7 / PHP 8.2+ / Doctrine ORM 3 / attribute マッピング) 対応が必要。
現状の
support-4.3ブランチはアノテーションマッピング (@ORM\...) で、Doctrine ORM 3.x (doctrine/annotations非同梱) の 4.4 ではエンティティをロードできない。4.4 対応は別途予定のため、本 issue の実装は 4.4 対応ブランチ上で行う。設計方針
PaymentMethodInterfaceフロー (verify()/apply()/checkout()+ form/twig/session/redirect) を使わない。本体はEccube\Service\AgentCommerce\AgentCheckoutPurchaseFlowAdapter経由でCart→Order→ shopping flow を再利用する。CreditCardクラスを流用するのではなく、エージェント用ハンドラを新設し、既存の足回り (ダミーゲートウェイ・Config・OrderTrait・PaymentStatus遷移・PurchaseFlowcommit/rollback) を共有する。本体側の前提インターフェイス
Eccube\Service\AgentCommerce\Payment\AgentCheckoutPaymentHandlerInterface(authorize()/capture()/supports()) — ACP/UCP 共通基盤: エージェントコマース向け CheckoutSession・マッピング層の整備 ec-cube#6777 Phase 1b (PR #6825) で実装済。AcpPaymentHandlerInterface(Shared Payment Token の償還相当のメソッドを追加) — 本体 Agentic Commerce Protocol (ACP) の対応 ec-cube#6776 で定義予定。やること
AcpPaymentHandlerInterfaceを実装する mock ハンドラを追加 (Shared Payment Token を擬似償還 → authorize/capture →PaymentStatus遷移 →PurchaseFlow::commit()、失敗時 rollback)Configにエージェント決済用のダミー設定を必要に応じて追加OrderTraitに ACP 決済トークン/認可 ID 等の保持フィールドを必要に応じて追加スコープ外