EC-CUBE / EC-CUBE/doc4.ec-cube.net

本体カスタマイズに PaymentMethodInterface の拡張の記載を追加

Open
#165 2 comments 0 reactions 0 assignees View on GitHub
Customize improvement
Dominant language
HTML
Stars
16
Forks
63
PR merge metrics
No merged PRs in 30d

Description

### PaymentMethodInterface の拡張

各決済ごとに `PaymentMethodInterface` を実装することで決済に独自の処理を追加できます。また、 `PaymentMethodInterface` の実装クラスは `PurchaseFlow` を使用して購入処理中の受注データを確定させる必要があります。

#### `verify()`

注文手続き画面でsubmitされた時に実行する処理を実装します。
主に、クレジットカード決済の有効性チェックをするために使用します。
このメソッドは、 `PaymentResult` を返します。
`PaymentResult` には、実行結果、エラーメッセージなどを設定します。
`Response` を設定して、他の画面にリダイレクトしたり、独自の出力を実装することも可能です。

#### `apply()`

注文確認画面でsubmitされた時に、他の Controller へ処理を移譲する実装をします。
主にリンク型決済や、キャリア決済など、決済会社の画面へ遷移する必要がある場合に使用します。
また、独自に作成した Controller に遷移する場合にも使用できます。
このメソッドは `PaymentDispatcher` を返します。
`PaymentDispatcher` は、他の Controller へ `Redirect` もしくは `Forward` させるための情報を設定します。
決済会社の画面など、サイト外へ遷移させる場合は、 `Response` を設定します。

このメソッドでは購入処理中の受注データを仮確定させるために `PurchaseFlow#prepare()` を実行します。仮確定してサイト外へ遷移した後に、遷移先でユーザが決済をキャンセルした場合は、仮確定を取り消す必要があります。仮確定の取り消しには、まずサイト外から決済をキャンセルして戻ってくるためのControllerを用意しておきます。このControllerの処理の中で `PurchaseFlow#rollback()` を実行します。仮確定取消後は注文手続き画面に遷移させるようにします。

サイト外へ遷移後、ユーザが決済処理を完了したときは、決済手続き完了用のControllerに遷移させます。このタイミングで購入処理中の受注を確定できる場合は `PurchaseFlow#commit()` を実行します。この遷移タイミングではなく、決済サーバからの完了通知を受けて購入処理を確定する場合は、完了通知用のControllerを実装し `PurchaseFlow#commit()` を実行するようにします。

#### `checkout()`

注文確認画面でsubmitされた時に決済完了処理を記載します。
このメソッドは、 `PaymentResult` を返します。
`PaymentResult` には、実行結果、エラーメッセージなどを設定します。
3Dセキュア決済の場合は、 `Response` を設定して、独自の出力を実装することも可能です。

決済処理をこのメソッドで完了できる場合は、`PurchaseFlow#commit()` を実行して購入処理中の受注データを確定します。3Dセキュア決済などで他サイトへの遷移が必要な場合は、他サイトでの処理を完了して呼び戻されるControllerの中で `PurchaseFlow#commit()` を実行します。他サイトでの処理がキャンセルされたときは `PurchaseFlow#rollback()` を呼び出す必要があります。

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.