---
title: コントローラー
slug: -oFs_TaqPdfW3ElIKENsG
createdAt: 2025-07-30T21:22:24.109Z
---

# コントローラーの事前認証統合

以下のコードと図は、**コントローラーに基づくSFCCストアフロント**にForterカートリッジを事前認証フローに統合するために必要な更新を概説しています。

## COPlaceOrder.jsの更新

既存の`handlepayments (order) 関数`に次のコードを追加します。**COPlaceOrder.js**ファイル内:

```javascript
var argOrderValidate = {
                Order: order,
                orderValidateAttemptInput: 1
            },
            forterController = require('int_forter/cartridge/controllers/ForterValidate'),
            forterDecision   = forterController.ValidateOrder(argOrderValidate);
        // in case if no response from Forter, try the call one more time
        if (forterDecision.result === false && forterDecision.orderValidateAttemptInput == 2) {
        	var argOrderValidate = {
                    Order: order,
                    orderValidateAttemptInput: 2
                },
                forterController = require('int_forter/cartridge/controllers/ForterValidate'),
                forterDecision   = forterController.ValidateOrder(argOrderValidate);
        }
        
        if (forterDecision.JsonResponseOutput.processorAction == 'void') {
            if (!empty(forterDecision.PlaceOrderError)) {
                return {error : true, forterErrorCode : forterDecision.PlaceOrderError};
            } else {
                return {error : true};
            }
        }  
```

## argOrderValidateの配置

以下のスクリーンショットとコメント付きコードは、`handlePaymentTransaction`関数内でのコードの推奨配置を示しています。

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-2aXWZtD6lg4ncifkQXaYB-20250724-184338.png)
