PayPal パイプライン [非推奨]
(非推奨)PayPalパイプライン
注意 SFCCがパイプラインアーキテクチャを非推奨にしたため、Forterの最新のカートリッジバージョンは、古いパイプラインアーキテクチャの完全なサポートや互換性を含まなくなりました。
概要
以下の図と指示は、Forterカートリッジを統合する方法を示しており、顧客または取引に関連するPayPalアカウントに関する情報を送信し、リアルタイムのForterの決定を受け取ることができるようになります。
サイト設定の更新
PayPalとの統合時には、PayPalカートリッジの設定を変更することをお勧めします。これを行うには、次の場所に移動します:
Site Preferences -> Customer Site Preference Groupsこれにより、Forterカートリッジは、PayPal取引がキャプチャされるか無効にされるかを判断するために関連情報を受け取ることができます。なお、私たちはこの例では請求契約のチェックアウトフローを扱っていませんのでご注意ください。
認証の設定
エクスプレスチェックアウトには、Forterが呼び出される前に認証を含める必要があります。これは、支払いアクションを「認証」に設定するか、注文の場合は認証を実行するを「はい」に設定することで行うことができます。

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

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呼び出しが行われ、注文をキャプチャまたは無効にします。

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

1) ノードを割り当てる **isAuthorized**
Assignノードを追加します。 _From_0_ を trueに設定します; _To_0_ を isAuthorizedに設定します。
2) Decisionノードを追加します。 **Decision Key**を設定します。
Decisionノードを追加します。 Decision Key を次のように設定します:
DoExpressCheckoutResponseContainer.data.paymentinfo_0_pendingreason === 'order' 
3) Assignノードを追加します **DoAuthorizationResponseContainer.data.transactionid**’
Assignノードを追加します。 From_0 を DoAuthorizationResponseContainer.data.transactionidに設定します; To_0 を TransactionIDに設定します。

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

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

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

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

8) スクリプトノードを追加 ForterCallValidate.ds
スクリプトノードを追加します。 ScriptFileを int_forter:pipelets/forter/ForterCallValidate.dsに設定します; Orderを Orderに設定します; JsonResponseOutputを ForterResponseに設定します; PlaceOrderErrorを PlaceOrderErrorに設定します。
9) 決定キーを設定する
決定ノードを追加します。 決定キー を設定します。
ForterResponse.JsonResponseOutput.processorAction === 'skipCapture' || ForterResponse.JsonResponseOutput.processorAction === 'notReviewed'
10) 追加の決定キーを設定する
決定ノードを追加します。 決定キー を設定します。
ForterResponse.JsonResponseOutput.processorAction === 'disabled' || ForterResponse.JsonResponseOutput.processorAction === 'internalError' || ForterResponse.JsonResponseOutput.processorAction === 'capture'
11) 支払いステータスを 完了
決定ノードを追加します。 決定キー を設定します:
DoExpressCheckoutResponseContainer.data.paymentinfo_0_paymentstatus === 'Completed'
12) 追加する 割り当て ノードを支払い詳細を更新するために
追加する 割り当て ノード。設定する:
- 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;

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

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

15) スクリプトノードを追加する UpdateOrderTransaction.ds
Assignノードを追加します。設定:Scriptを ScriptFileに int_paypal:data/UpdateOrderTransaction.ds; IsCustomOrderを false; MethodNameを "DoCapture"; OrderNoを Order.orderNo; TransactionIDを
DoCaptureResponseContainer.data.get('transactionid') || DoCaptureResponseContainer.data.get('authorizationid') || DoCaptureResponseContainer.data.get('refundtransactionid')
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;

**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"に設定します。

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').

Forterカートリッジには、PayPal APIのレスポンス(トランザクションの詳細、キャプチャ、無効化、承認、エクスプレスチェックアウトのレスポンス)を保存するための組み込み機能があります。データは、Order Payment Instrumentオブジェクトのカスタム属性にJSON文字列として保存されます。各レスポンスは専用のカスタム属性に保存されます。これらのカスタム属性の推奨タイプはテキストであり、場合によってはレスポンスが4K文字を超えることがあります。PayPalのレスポンスを保存するには、必要なデータが存在する場所にスクリプトノードを追加する必要があります。
例えば、PayPalのトランザクションの詳細は、PaypPal-GetTransactionDetailsへの呼び出しの直後に保存され、int_forter:pipelets/forter/ForterCallStoreResponse.dsスクリプトに渡されることがあります。 スクリプトの辞書入力では、“paypal_transaction_details_response”は実際にはレスポンスカスタム属性のタイプであり、PaypalTransactionDetails. このデータポイントは、現在のトランザクションに関する情報を含むオブジェクトであり、PaymentInstrumentは現在の支払い手段です。
