トークン化サービスの Apex クラス実装
トークン化サービスを使用して、機密性の高い顧客支払方法データを非表示にします。トークン化サービスは、PaymentMethodTokenizationRequest、PaymentMethodTokenizationResponse、および CardPaymentMethodRequest を使用します。これらのクラスを支払ゲートウェイアダプタに実装します。
| 使用可能なバージョン: Salesforce Spring '21 以降 |
- PaymentMethodTokenizationRequest
- 支払方法をトークン化する要求を表します。
- このクラスはトークン化要求に関する情報を保持します。ゲートウェイアダプタは、支払ゲートウェイに送信される JSON トークン化要求を作成する際にこの情報を使用します。
- PaymentMethodTokenizationRequest はコンストラクタを使用して、Salesforce でトークン化要求オブジェクトを作成します。PaymentMethodTokenizationRequest コンストラクタは引数を取りません。このコンストラクタは次のように呼び出すことができます。
-
1CommercePayments.PaymentMethodTokenizationRequest pmtr = new CommercePayments.PaymentMethodTokenizationRequest(); - 支払方法トークン化要求オブジェクトを作成する場合は、支払ゲートウェイ ID を引数としてコンストラクタを呼び出すこともできます。ただし、コンストラクタはテスト環境でのみ機能し、Apex テストコンテキスト以外で使用された場合は例外が発生します。次の例で示されている数字はサンプルです。
-
1CommercePayments.PaymentMethodTokenizationRequest pmtr = new CommercePayments.PaymentMethodTokenizationRequest(00000585923); - CardPaymentMethodRequest
-
承認、販売、またはトークン化トランザクション要求の支払方法として使用されるカードに関する詳細が含まれています。ゲートウェイアダプタは、この情報を使用して JSON トランザクション要求を支払ゲートウェイに送信します。CardPaymentMethodRequest は、SaleApiPaymentMethodRequest Class、AuthApiPaymentMethodRequest Class、および PaymentMethodTokenizationRequest Class の cardPaymentMethod 項目として使用できます。
- CardPaymentMethodRequest はコンストラクタを使用して、Salesforce でカード支払方法要求オブジェクトを作成します。コンストラクタは、引数として cardCategory を取り、カード支払方法がクレジットカードかデビットカードであるかを定義します。
- PaymentMethodTokenizationResponse
- このクラスには、トークン化トランザクションゲートウェイ応答に関する詳細が含まれます。PaymentMethodTokenizationResponse 項目は、支払ゲートウェイから取得した応答から入力されます。このクラスは、ユーザに表示されるトークン化ゲートウェイ応答を作成するために支払プラットフォームが使用する Java レイヤの応答クラスに対応付けられています。
ゲートウェイアダプタでのトークン化クラスの実装
トークン化クラスを支払ゲートウェイアダプタに追加します。次のコードは、PaymentGatewayContext クラスから PaymentMethodTokenizationRequest を取得します。
1commercepayments.PaymentMethodTokenizationRequest tokenizeRequest= (commercepayments.PaymentMethodTokenizationRequest)gatewayContext.getPaymentRequest()
2commercepayments.CardPaymentMethodRequest cardPaymentMethodRequest = tokenizeRequest.cardPaymentMethod;その後、PaymentMethodTokenizationResponse オブジェクトを作成できます。この例では、各 setter メソッドにプレースホルダ値を提供しています。
1commercepayments.PaymentMethodTokenizationResponse tokenizeResponse = new commercepayments.PaymentMethodTokenizationResponse();
2tokenizeResponse.setGatewayToken("gatewayToken");
3tokenizeResponse.setGatewayTokenDetails("gatewayTokenDetails");
4tokenizeResponse.setGatewayAvsCode("avsCode");
5tokenizeResponse.setGatewayMessage("transaction message");
6tokenizeResponse.setGatewayResultCode("res_code");
7tokenizeResponse.setGatewayResultCodeDescription("result code description");
8tokenizeResponse.setSalesforceResultCodeInfo(getSalesforceResultCodeInfo(commercepayments.SalesforceResultCode.SUCCESS.name()));
9tokenizeResponse.setGatewayDate("02-04-2020");