---
title: PayPal パイプライン [非推奨]
slug: paypal
createdAt: 2025-07-30T21:22:24.109Z
---

# （非推奨）PayPalパイプライン

:::BlockQuote
**注意** SFCCがパイプラインアーキテクチャを非推奨にしたため、Forterの最新のカートリッジバージョンは、古いパイプラインアーキテクチャの完全なサポートや互換性を含まなくなりました。
:::

## 概要

以下の図と指示は、Forterカートリッジを統合する方法を示しており、顧客または取引に関連するPayPalアカウントに関する情報を送信し、リアルタイムのForterの決定を受け取ることができるようになります。

## サイト設定の更新

PayPalとの統合時には、PayPalカートリッジの設定を変更することをお勧めします。これを行うには、次の場所に移動します:

```javascript
Site Preferences -> Customer Site Preference Groups
```

これにより、Forterカートリッジは、PayPal取引がキャプチャされるか無効にされるかを判断するために関連情報を受け取ることができます。なお、私たちはこの例では**請求契約**のチェックアウトフローを**扱っていません**のでご注意ください。

### 認証の設定

エクスプレスチェックアウトには、Forterが呼び出される前に認証を含める必要があります。これは、支払いアクションを「認証」に設定するか、注文の場合は認証を実行するを「はい」に設定することで行うことができます。

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

### SFCC請求情報を送信する

PaypalカートリッジがSalesforce Commerce Cloudに請求情報を送信するように設定されていることを確認してください。この設定には、PaypalサポートによってあなたのPaypalアカウントに外部の権限が追加される必要がある場合があります。

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-0srGqkCfXPbZm4Okl80FO-20250724-184337.png)

## PayPalパイプラインの設定

以下の図は、**PAYPAL\_EXPRESS-Authorize**パイプラインからのものです。「`CommitTransaction`」が呼び出されると、ForterはPaypalからトランザクションに関する追加情報を要求し、「**Paypal-GetTransactionDetails API**」呼び出しをトリガーします。詳細が保存された後、Forter APIが呼び出され、注文に関する決定が提供されます。

### 現在のパイプラインを確認する

以下の図は、PAYPAL\_EXPRESS-Authorizeパイプラインからのものです。「CommitTransaction」が呼び出されると、ForterはPaypalからトランザクションに関する追加情報を要求し、Paypal-GetTransactionDetails API呼び出しをトリガーします。詳細が保存された後、Forter APIが呼び出され、注文に関する決定が提供されます。Forterの決定とForterカートリッジの設定に基づいて、必要に応じてPaypalに追加のAPI呼び出しが行われ、注文をキャプチャまたは無効にします。

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-DCPoh_zexv5klfOAN4tsK-20250724-184335.png)

Forterの決定とForterカートリッジの設定に基づいて、必要に応じてPaypalに追加のAPI呼び出しが行われ、注文をキャプチャまたは無効にします。

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-bQGjzxt3plbN9va8jpE-O-20250724-184335.png)

**1) ノードを割り当てる \*\*isAuthorized\*\***

Assignノードを追加します。 `_From_0_` を `true`に設定します; `_To_0_` を `isAuthorized`に設定します。

**2) Decisionノードを追加します。 \*\*Decision Key\*\*を設定します。**

Decisionノードを追加します。 **Decision Key** を次のように設定します:

```javascript
DoExpressCheckoutResponseContainer.data.paymentinfo_0_pendingreason === 'order' 
```

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny--PNvckL_zphOXGVZqVp9V-20250724-184335.png)

**3) Assignノードを追加します \*\*DoAuthorizationResponseContainer.data.transactionid\*\*’**

Assignノードを追加します。 `From_0` を `DoAuthorizationResponseContainer.data.transactionid`に設定します; `To_0` を `TransactionID`に設定します。

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-PXcNV7fN3V_Zd8gwU4t57-20250724-184336.png)

**4) transactionIDにAssignノードを追加します。**

Assignノードを追加します。 `From_0` を `DoExpressCheckoutResponseContainer.data.paymentinfo_0_transactionid`に設定します; `To_0` を `TransactionID`に設定します。

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-LVNiToOm3mi73PI6C2XK7-20250724-184336.png)

**5) コールノードを追加&#x20;**`Paypal-GetTransactionDetails`

コール`ノードセット`を追加 `パイプライン`に `Paypal-GetTransactionDetails`を追加します。

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-VjZqrIqGb5XNyeI-97d-A-20250724-184336.png)

**6) アサインノードを追加&#x20;**`PaypalTransactionDetails`

アサインノードを追加します。 `From_0`を `GetTransactionDetalisResponseContainer`に設定します; `To_0`を `PaypalTransactionDetails`に設定します。

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-PjNVJgQ9u41h5VOOEbaAX-20250724-184336.png)

**7) スクリプトノードを追加&#x20;**`ForterCallStoreResponse.ds`

スクリプトノードを追加します。 `ScriptFile`を `int_forter:pipelets/forter/ForterCallStoreResponse.ds`に設定します; `PaymentInstrument`を `PaymentInstrument`に設定します; `ResponseDataContainer`を `PaypalTransactionDetails`に設定します; `ResponseType`を `paypal_transaction_details_response`に設定します。

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-ZE-pBpUdKE_FQWtZXobV5-20250724-184336.png)

**8) スクリプトノードを追加&#x20;**`ForterCallValidate.ds`

スクリプトノードを追加します。 `ScriptFile`を `int_forter:pipelets/forter/ForterCallValidate.ds`に設定します; `Order`を `Order`に設定します; `JsonResponseOutput`を `ForterResponse`に設定します; `PlaceOrderError`を `PlaceOrderError`に設定します。

**9) 決定キーを設定する**

決定ノードを追加します。 `決定キー` を設定します。

```javascript
ForterResponse.JsonResponseOutput.processorAction === 'skipCapture' || ForterResponse.JsonResponseOutput.processorAction === 'notReviewed'
```

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-QVo_Z0p1ExSok8TC71xzX-20250724-184336.png)

**10) 追加の決定キーを設定する**

決定ノードを追加します。 `決定キー` を設定します。

```javascript
ForterResponse.JsonResponseOutput.processorAction === 'disabled' || ForterResponse.JsonResponseOutput.processorAction === 'internalError' || ForterResponse.JsonResponseOutput.processorAction === 'capture'
```

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-ZA61F8EPW6JayVMTWmQHr-20250724-184336.png)

**11) 支払いステータスを&#x20;**`完了`

決定ノードを追加します。 `決定キー` を設定します:

```javascript
DoExpressCheckoutResponseContainer.data.paymentinfo_0_paymentstatus === 'Completed'
```

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-4bJU81V7nQ7cdqcfS3Vd7-20250724-184337.png)

**12) 追加する&#x20;**`割り当て`**&#x20;ノードを支払い詳細を更新するために**

追加する `割り当て` ノード。設定する:

- `0から`へ `new Object()`;
- `1から` へ `PaypalTransactionDetails.data.amt`;
- `2から` へ `PaypalTransactionDetails.data.transactionid`;
- `3から` へ `"Complete"`;
- `4から` へ `PaypalTransactionDetails.data.currencycode`;
- `5から` へ `PaypalTransactionDetails.data.invnum`;
- `6から` へ `"forter auto capture note"`;
- `0へ` へ `PaypalDoCapture`;
- `1へ` へ `PaypalDoCapture.amount`;
- `2へ` へ `PaypalDoCapture.authorizationID`;
- `3へ` へ `PaypalDoCapture.completeType`;
- `4へ` へ `PaypalDoCapture.currency`;
- `5へ` へ `PaypalDoCapture.invNum`;
- `6へ` へ `PaypalDoCapture.note`;

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-1deL9BwOxtb23Y-Vf7aVF-20250724-184337.png)

\*\*13) コールノードを追加します。 `Pipeline` を \*\*`Paypal-DoCapture`

コールノードを追加します。 `Pipeline` を `Paypal-DoCapture` に設定します。

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-p6w9D3w5oi3OZZbANN02E-20250724-184337.png)

\*\*14) `ScriptFile` を \*\*`ForterCallStoreResponse.ds`

スクリプトノードを追加します。 `ScriptFile` を `int_forter:pipelets/forter/ForterCallStoreResponse.ds` に設定します; `PaymentInstrument` を `PaymentInstrument` に設定します; `ResponseDataContainer` を `DoCaptureResponseContainer` に設定します; `ResponseType` を `paypal_capture_response` に設定します。

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-Hf5cE79F7iSJfMACkrgas-20250724-184337.png)

**15) スクリプトノードを追加する&#x20;**`UpdateOrderTransaction.ds`

Assignノードを追加します。設定:`Script`を `ScriptFile`に `int_paypal:data/UpdateOrderTransaction.ds`; `IsCustomOrder`を `false`; `MethodName`を `"DoCapture"`; `OrderNo`を `Order.orderNo`; `TransactionID`を&#x20;

```javascript
DoCaptureResponseContainer.data.get('transactionid') || DoCaptureResponseContainer.data.get('authorizationid') || DoCaptureResponseContainer.data.get('refundtransactionid')
```

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-cWiqf0NHu770QQeSSTsJm-20250724-184337.png)

**16) さらにいくつかのAssignノードを追加します！**

Assignノードを追加します。設定:

- `From_0` から `new Object();`
- `From_1` から `PaypalTransactionDetails.data.transactionid`
- `From_2` から `"auto void forter"`
- `To_0` へ `PaypalDoVoid`;
- `To_1` へ `PaypalDoVoid.authorizationID`;
- `To_2` へ `PaypalDoVoid.note`;

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-prDgK70E3-tCNnlx34WxW-20250724-184337.png)

\*\*17) Set `Pipeline` を \*\*`Paypal-DoVoid`

Callノードを追加します。 `Pipeline` を `Paypal-DoVoid` に設定します。

**18) 更新無効応答パイプレット**

「`スクリプト`」ノードを追加します。設定：`ScriptFile`を`int_forter:pipelets/forter/ForterCallStoreResponse.ds`に設定；`PaymentInstrument`を`PaymentInstrument`に設定；`ResponseDataContainer`を`DoVoidResponseContainer`に設定；`ResponseType`を`"paypal_void_response"`に設定します。

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-SbaYvR9oMFDJfMfltwwJ4-20250724-184337.png)

19\) 「`UpdateOrderTransaction.ds`**」にスクリプトノードを追加します。**

スクリプトノードを追加します。次の設定を行います:

- `スクリプトファイル` を `int_paypal:data/UpdateOrderTransaction.ds`;
- `カスタムオーダー` を `false`;
- `メソッド名` を `"DoVoid"`;
- `オーダー番号` を \`Order.orderNo’;
- `トランザクションID` を `DoVoidResponseContainer.data.get('transactionid') || DoVoidResponseContainer.data.get('authorizationid') || DoVoidResponseContainer.data.get('refundtransactionid')`.

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-SJfdKyxocQaWItuPi11My-20250724-184337.png)

Forterカートリッジには、PayPal APIのレスポンス（トランザクションの詳細、キャプチャ、無効化、承認、エクスプレスチェックアウトのレスポンス）を保存するための組み込み機能があります。データは、Order Payment Instrumentオブジェクトのカスタム属性にJSON文字列として保存されます。各レスポンスは専用のカスタム属性に保存されます。これらのカスタム属性の推奨タイプはテキストであり、場合によってはレスポンスが4K文字を超えることがあります。PayPalのレスポンスを保存するには、必要なデータが存在する場所にスクリプトノードを追加する必要があります。

例えば、PayPalのトランザクションの詳細は、`PaypPal-GetTransactionDetails`への呼び出しの直後に保存され、int\_forter\:pipelets/forter/ForterCallStoreResponse.dsスクリプトに渡されることがあります。
スクリプトの辞書入力では、`“paypal_transaction_details_response”`は実際にはレスポンスカスタム属性のタイプであり、`PaypalTransactionDetails`. このデータポイントは、現在のトランザクションに関する情報を含むオブジェクトであり、`PaymentInstrument`は現在の支払い手段です。

![](https://api.archbee.com/api/optimize/dYhsqkppjaUNAqFmds_Ny-STUqjoCRC2p3UM1RfaOhO-20250724-184337.png)
