Skip to content

ACP checkout 向け決済ハンドラの参考実装 (mock) #52

Description

@nanasess

概要

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 経由で CartOrder → shopping flow を再利用する。
  • 既存の CreditCard クラスを流用するのではなく、エージェント用ハンドラを新設し、既存の足回り (ダミーゲートウェイ・ConfigOrderTraitPaymentStatus 遷移・PurchaseFlow commit/rollback) を共有する。
  • 実 PSP SDK 不要 (mock)。eccube-api4 非依存 (ACP インバウンド認証は本体側で処理。決済ハンドラは認証と無関係)。

本体側の前提インターフェイス

やること

  • (前提) 本プラグインの EC-CUBE 4.4 対応ブランチ上で作業する
  • AcpPaymentHandlerInterface を実装する mock ハンドラを追加 (Shared Payment Token を擬似償還 → authorize/capture → PaymentStatus 遷移 → PurchaseFlow::commit()、失敗時 rollback)
  • tagged service として登録 (本体のハンドラ収集口に乗せる)
  • Config にエージェント決済用のダミー設定を必要に応じて追加
  • OrderTrait に ACP 決済トークン/認可 ID 等の保持フィールドを必要に応じて追加
  • mock ハンドラの単体テスト (authorize/capture 成功・失敗、在庫超過等のビジネス系結果)
  • (4.4 対応後) E2E テスト

スコープ外

  • 実 PSP との接続・本番決済 (本 issue は mock 参考実装に限定)
  • 特定 PSP の内部仕様や非公開スキーマ (公開可能な汎用 mock のみ扱う)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions