3DS統合ガイド
Forterカートリッジに3DSecureを統合する
3DSの推奨事項と統合するために、商人は ForterOrder.ds ファイルを修正して、レスポンスボディに新しい "recommendation" フィールドを処理し、追加の3DS認証レスポンスデータをポスト認証リクエストボディに渡す必要があります。
1. APIスキーマの更新
専任のForter実装チームとの3DS統合を確認したら、リクエストボディに追加フィールドを含めるようにスキーマを修正し、payment[0].creditCard オブジェクトにおいて、事前認証コールでForterから返されるレスポンスオブジェクトに "recommendations" キーを公開できるようにします。
実装チームが関連するAPIバージョンを指示し、カートリッジの cartridges > int_forter > cartridge > scripts > init > forterServiceInit.js ファイル内で、どのバージョンを指すべきかを指定できます。デフォルトの Option .86 を修正することで、 svc.addHeader("api-version", "Option .86");
2. プリオーソリを有効にする
Forter Cartridge内の CheckoutServices.js ファイルに移動します。このファイルへの正確なパスは: Cartridges > int_forter_sfra > cartridge > controllers > CheckoutService.js です。
このファイルを開き、 コメントを解除して、次のコードを AFTER var order = COHelpers.createOrder(currentBasket); 関数の後に、 BEFORE var handlePaymentResult = COHelpers.handlePayments(order, order.orderNo); 関数の前に追加します。
3. ビジネスマネージャーを更新する
上記に追加したコードは、あなたの CheckoutServices.js ファイルが、決済ゲートウェイへの認証呼び出しが行われる 前に、注文情報をForterエンドポイントに送信できるようにします。
また、あなたは Forter Business Manager拡張機能 を更新して、この更新された事前認証フローのためにカスタマイズされたエラーメッセージ(拒否の場合)を表示する必要があります。
4. 推奨事項の処理
あなたは、3DSを必要とする注文のForterレスポンスに含まれる新しい "recommendation" フィールドを処理するために、Forter SFCCカートリッジにロジックを追加する必要があります。
商人は、Forterカートリッジ(ForterValidate.js) およびゲートウェイカートリッジ内で、決定と推奨事項のすべての可能な反復を処理するロジックを含めることを確認する必要があります。これにより、Forterからの事前認証の決定と推奨を受け取った後に、注文が正しくルーティングされることが保証されます。
- の場合は 3DS for regulation, Forterの事前承認決定("アクション")は "承認" となり、 populated "推奨事項" フィールドが含まれます。
- の場合は 3DS for risk assessment, Forterの事前承認決定("アクション")は "拒否" となり、 populated "推奨事項" フィールドが含まれます。
あなたのSFCCカートリッジで、 forterValidate ファイルに移動し、 cartridges/int_forter_sfra/cartridge/scripts/pipelets/forter/forterValidate.js のロジックを追加して、推奨事項フィールドが空でない値("")で populated されている場合の決定と推奨事項の両方を処理します。
推奨される値は次のとおりです:
- "VERIFICATION_REQUIRED_3DS_CHALLENGE"
- "" (Forterが明確な承認のために3DSまたは免除を推奨しない場合)
- "REQUEST_SCA_EXCLUSION_MOTO"
- "REQUEST_SCA_EXCLUSION_PREPAID"
- "RECOMMENDATION_REQUEST_SCA_EXCLUSION_ONE_LEG_OUT"
- "REQUEST_SCA_EXCLUSION_ONE_LEG_OUT"
- "REQUEST_SCA_EXCLUSION_MIT"
- "REQUEST_SCA_EXEMPTION_TRA"
- "RECOMMENDATION_REQUEST_SCA_EXEMPTION_LOW_VALUE"
- "REQUEST_SCA_EXEMPTION_LOW_VALUE"
- "REQUEST_SCA_EXEMPTION_CORP"
- "RECOMMENDATION_REQUEST_SCA_EXEMPTION_TRUSTED_BENEFICIARY"
- "REQUEST_SCA_EXEMPTION_TRUSTED_BENEFICIARY"
ロジックは、現在のオプションと意思決定およびレスポンスボディフィールドの処理ロジックがある137行目のvalidateOrder(args)関数内で修正する必要があります。
5. 支払いゲートウェイカートリッジへのコード修正
上記の例に示されているように、あなたのSFCCサイトの設定を修正する必要があります。dw > system > Site新しい"recommendations"フィールドをレスポンスボディで処理するために。上記の例では、機能はinitiate3DSChallengeと呼ばれています。この機能により、あなたのSFCCプラットフォームは推奨を受け入れ、支払いゲートウェイから3DSチャレンジをトリガーすることができるはずです。
各ゲートウェイには異なる3DSチャレンジ要件と構成があります。各マーチャントは、推奨をゲートウェイに統合し、Forterから提供された推奨に基づいて顧客に関連する3DSチャレンジを構成する責任があります。
6. 認証後のオプション
2回目の同期認証後の決定を行うには、ゲートウェイからの認証および3DS応答データを含むようにForterOrder.dsファイルのマッピングを更新し、ForterValidate.jsファイルも2回目の認証後のForter決定を処理するようにする必要があります。
認証後の注文ステータス呼び出しを 新しいForter決定("アクション")なしで行う場合、対応する ForterUpdate.jsジョブと認証応答のマッピングを修正します ForterPayment() 関数内で。
オプション 1: 認証後の検証呼び出し
ゲートウェイが3DSを正常に開始し、支払いを承認(または拒否)した後、結果はForterカートリッジへのポスト承認呼び出しに含める必要があります。これらのフィールドは、ForterCreditCard(auth, cc)関数のマッピングに追加する必要があります。あなたのForterOrder.dsファイル。このフローは、Forterの支払い推奨(3DSまたはPSD2)を受け取っていない可能性のある商人に適用されますが、プロセッサからの支払い結果をForterのモデルに提供したいと考えています。
オプション2:認証後の注文ステータスコール
ステップ 1: 認証後のステータス更新スクリプトを含める 以下の例のAuthorize.netスクリプトは、クレジットカード処理を扱うスクリプトを更新する方法を示しており、関連する認証後および3DS注文ステータスの呼び出しをForterに含めるようになっています。デフォルトの2つの注文ステータスは次のとおりです:
- "処理中" (ゲートウェイが支払いを承認したとき)
- "商人によってキャンセルされた" (ゲートウェイ/プロセッサが支払いを承認していないとき)
以下のコード例は、すべてのSFRAおよびSGの事前認証/ステータス実装に適用され、完全な postAuthOrderStatusUpdate() 関数はforterValidate.jsファイルにあります (cartridges > int_forter_sfra > cartridge > scripts > pipelets > forter > forterValidate.js)
var argOrderUpdate = {
orderNumber: orderNumber,
updateAttempt: 1
},
forterCall = require('*/cartridge/scripts/pipelets/forter/forterValidate'),
forterDecision = forterCall.postAuthOrderStatusUpdate(argOrderUpdate, "PROCESSING");
if (forterDecision.result === false && forterDecision.updateAttempt == Option ) {
forterDecision.updateAttempt = Option ;
forterCall.postAuthOrderStatusUpdate(argOrderUpdate, "PROCESSING");
}
ステップ 2: ForterUpdate.js ファイルをカスタマイズする 事前認証コードのコメントを解除した後、CheckoutServices.jsファイルをカスタマイズして、ゲートウェイの認証と 3DS 応答を Forter へのステータスコールに含めます。forterUpdate.jsファイルの正確なパスは、cartridges > int_forter_sfra > cartridge > scripts > lib > forter > dto > forterUpdate.js) です。ForterPayment(payment, order) 関数をカスタマイズして、特定のゲートウェイ認証応答をマッピングします。