---
title: "決済サービスプロバイダー"
slug: "payments-service-provider"
abstract: ""
---
# 決済サービスプロバイダー

サービスプロバイダーは、Connectパイプラインとのやり取りを容易にするために設計されたラッパーオブジェクトです。プロバイダーはConnectパイプラインを呼び出す以外のロジックを実装しません。すべてのビジネスロジックはパイプラインプロセッサ内で実装されています。

プロバイダー内の各メソッドには対応するRequestオブジェクトとResultオブジェクトが使われています。例えば、GetCartsRequestオブジェクトを受け取ってGetCartsResultオブジェクトを返すGetCartsです。場合によっては、同じデータを返す際にレスポンスオブジェクトを再利用することもあります。

デフォルトリクエストおよび結果引数のカスタマイズ版は、オーバーロードされたジェネリックベースのメソッドを呼び出すことで使用できます。

Paymentsサービスプロバイダーは、支払いデータとやり取りするための以下の方法を含んでいます。

## GetPaymentOptionsの方法

GetPaymentOptions方式は、外部の商取引システムに対して支払いオプションデータを照会し、支払いオプションの集合を返します。

**名前:**

GetPaymentOptions(支払いオプション)

**説明:**

指定された条件に合致するカートを取得します。 GetPaymentOptions パイプラインを呼び出します。

**使用方法:**

支払いオプションのリストが必要な場合はお電話ください。  
  
例としては以下のものがあります:  
  

-   ショップの支払い方法のリストを入手すること。

**署名:**

GetPaymentOptionsResult(\[NotNull\]GetPaymentOptionsRequest request)

**入力:**

\*\*ショップ名 – 任意。\*\*支払いオプションを取得するためのショップ名。

**出力:**

**IEnumerable** – リクエストされた店舗の支払いオプションの集合。

**SystemMessages -** 外部システムからのメッセージの収集。

使用例:

var paymentService = new PaymentServiceProvider();
var request = new GetPaymentOptionsRequest("WebShop");
var result = paymentService.GetPaymentOptions(request);
## GetPaymentMethodsメソッド

GetPaymentMethodsメソッドは、外部の商取引システムに対して支払いデータを照会し、特定の支払いオプションのすべての支払い方法を取得するために使われます。

**名前:**

GetPaymentMethods

**説明:**

指定された条件に合致する支払い方法を取得します。 GetPaymentMethods パイプラインを呼び出します。

**使用方法:**

支払い方法のリストが必要なときに電話します。  
  
例としては以下のものがあります:  
  

-   特定の支払いオプションタイプの支払い方法を取得すること。

**署名:**

GetPaymentMethodsResult(\[NotNull\]GetPaymentMethodsRequest request)

**入力:**

**PaymentOption**\*\*–\*\*支払い方法を取得するための支払いオプション。

**ショップネー**ム\*\*-\*\***オプション** – ショップ名。

**出力:**

**IEnumerable** – 要求されたオプションの支払い方法の集合。

**SystemMessages -** 外部システムからのメッセージの収集。

使用例:

var paymentService = new PaymentServiceProvider();
var paymentOption = new PaymentOption
{
 Name = "Visa",
 PaymentOptionType = new PaymentOptionType(1, "CreditCard"),
 ShopName = "webShop"
};
var request = new GetPaymentMethodsRequest(paymentOption);
var result = paymentService.GetPaymentMethods(request);
## GetPricesForPaymentsメソッド

GetPricesForPayments方式はカート内のすべての商品の支払い価格のリストを取得するために使われます。

**名前:**

GetPricesForPayments

**説明:**

指定された条件に合致する支払いコストを取得します。 GetPricesForPayments パイプラインを呼び出します。

**使用方法:**

支払い費用のリストが必要な場合はお電話ください。

**署名:**

GetPricesForPayments結果GetPricesForPayments(GetPricesForPaymentsRequestリクエスト)

**入力:**

\*\*ショップ名 -****必須****\-\*\*現在のショップの名前。

\**Payment*\*\*\*検索 –\*\***必須** – 支払い方法と検索オプションの組み合わせ

\*\*カート –\*\***必須** – 検索すべき項目が入ったカート。

**出力:**

**ReadOnlyCollection<\*\*\*\*支払い\*\*\*\*Price>** –カート内の商品に割り当てられた支払い価格の集合。

**SystemMessages -** 外部システムからのメッセージの収集。

使用例:

var paymentLookupList = new List<PaymentLookup>
{
 new PaymentLookup
 {
 OptionId = "{B83E4AA3-5F98-4FEE-95C0-BDE9CE572E7C}",
 LineItemIds = new List<string> {"1", "2"}.AsReadOnly()
 },
 new PaymentLookup
 {
 OptionId = "{B83E4AA3-5F98-4FEE-95C0-BDE9CE572E7C}",
 MethodId = "{8BC8E1DA-4FA8-4D20-AB53-53C104CCC2CC}"
 }
};
var cartProvider = (CartServiceProvider)Factory.CreateObject("cartServiceProvider", true);
var cartRequest = new LoadCartRequest("StarterKit", "cartid");
var cartResult = cartProvider.LoadCart(cartRequest);
var cart = cartResult.Cart;
var provider = (PaymentServiceProvider)Factory.CreateObject("paymentServiceProvider", true);
var request = new GetPricesForPaymentsRequest("StarterKit", paymentLookupList, cart);
var result = provider.GetPricesForPayments(request);
if (result.Success && result.PaymentPrices != null)
{
 foreach (var paymentPrice in result.PaymentPrices)
 {
 // handle payment price.
 }
}
## GetPaymentServiceUrlメソッド

GetPaymentServiceUrlメソッドは、決済サービスとの取引を初期化し、支払いサービスの決済承認ページのURLを取得するために使われます。

**名前:**

GetPaymentServiceUrl

**説明:**

連邦決済サービスの支払い承認ページのURLを取得します。

**使用方法:**

ウェブサイトが顧客から支払い情報を取得できる準備ができたときに電話をかけます。  
  
例としては以下のものがあります:  
  

-   チェックアウト時に支払い承認ページを作成する際。

**署名:**

GetPaymentServiceUrl結果GetPaymentServiceUrl(\[NotNull\] GetPaymentServiceUrlRequest request)

**入力:**

**HostPageOrigin – 必須。** 支払い受理ページをホストする加盟店のウェブサイトページのルートURLを指定します。

**AllowPartialAuthorization**\*\*– オプション。\*\*トランザクションで部分的な認可が許可されているかどうかを指定します。

\*\*AllowVoiceAuthorization – 任意。\*\*トランザクションで音声承認が許可されているかどうかを指定します。

**CardType – オプション。** 取引で受け入れられる支払いカードの種類を指定します。

**都市 – 任意。** 請求先または配送先住所の都市を指定します。

**ColumnNumber – オプション。** 支払い承認ページが入力フィールドを表示する際に使用する列数を指定します。

**国 – 任意。** 請求国または配送先住所を指定します。

**通貨コード – オプション。** 取引で使用される通貨を指定します。通貨コードの形式は、使用される決済サービスプロバイダーに特有です。

**DisabledTextBackgroundColor - オプション。** 支払い承認ページで無効化されたテキストの背景色を指定します。

**FontFamily – オプション。** 支払い承認ページのテキストのフォントファミリーを指定します。

**FontSize – オプション。** 支払い承認ページのテキストサイズを指定します。

**IndustryType – 任意。** 取引の産業タイプを指定します。

**LabelColor – オプション。** 支払い承認ページのラベルテキストの色を指定します。

**所在地 – 任意。** 支払い承認ページの地域・地域・言語を指定します。

**PageBackgroundColor – オプション。** 支払い承認ページの背景色を指定します。

**ページ幅 – オプション。** 支払い承認ページの幅を指定します。

**郵便番号 – 任意。** 請求先または配送先の郵便番号を指定します。

**PurchaseLevel – オプション。** 実行中の取引の購入レベルを指定します。

**ShowSameAsShippingAddress – 任意。** 請求先住所と配送先住所が同一であることを示すチェックボックスを表示するかどうかを指定します。

**州 – 任意。** 請求先または配送先住所の州を指定します。

**StreetAddress – オプション。** 請求先または配送先住所の住所を指定します。

**SupportCardSwipe – 任意。** カードスワイプがトランザクションを完了するためにサポートされているかどうかを指定します。

**SupportCardTokenization – オプション。** 取引中に入力されたカード情報がトークン化されるかどうかを指定します。

**TextBackgroundColor – オプション。** 支払い承認ページのテキストの背景を指定します。

**TextColor – オプション。** 支払い承認ページのテキストの色を指定します。

**TransactionType – オプション。** 実行されるトランザクションの種類を指定します。

**出力:**

**URL****\-** 支払い承認ページのURLで、提供されたオプションで取引を行います。

**SystemMessages -** 外部システムからのメッセージの収集。

使用例:

var request = new GetPaymentServiceUrlRequest()
{
 AllowPartialAuthorization = false,
 AllowVoiceAuthorization = false,
 CardType = CardType.AllCardTypes,
 ColumnNumber = 1,
 CurrencyCode = "USD",
 DisabledTextBackgroundColor = "#E4E4E4",
 FontFamily = "\\"Helvetica Neue\\", Helvetica, Arial, sans-serif",
 FontSize = "14px",
 IndustryType = "Ecommerce",
 LabelColor = "black",
 Locale = Context.Culture.Name,
 PageBackgroundColor = "white",
 PageWidth = "429px",
 PurchaseLevel = PurchaseLevel.Level1,
 ShowSameAsShippingAddress = false,
 SupportCardSwipe = false,
 SupportCardTokenization = true,
 TextBackgroundColor = "white",
 TextColor = "black",
 TransactionType = TransactionType.Authorize,
};
if (HttpContext.Current != null && HttpContext.Current.Request != null)
{
 request.HostPageOrigin = string.Format(
 System.Globalization.CultureInfo.InvariantCulture,
 "{0}://{1}",
 HttpContext.Current.Request.Url.Scheme,
 HttpContext.Current.Request.Url.Authority);
}
var provider = (PaymentServiceProvider)Factory.CreateObject("paymentServiceProvider", true);
var result = provider.GetPaymentServiceUrl(request);
## GetPaymentServiceActionResultメソッド

GetPaymentServiceActionResultメソッドは、決済サービスに対する取引やアクションの結果を取得するために用いられます。

**名前:**

GetPaymentServiceActionResult

**説明:**

フェデレーテッド決済サービスの取引・アクションの結果を取得します。

**使用方法:**

ウェブサイトが取引結果を取得する準備ができたときに呼び出されます。  
  
例としては以下のものがあります:  
  

-   フェデレーテッド決済サービスでの顧客の取引結果の取得。

**署名:**

GetPaymentServiceActionResultResult(\[NotNull\] GetPaymentServiceActionResultRequest request)

**入力:**

**Locale**\*\*–\*\*\*\*Required.\*\* Personsのウェブサイトの所在地を指定します。

**PaymentAcceptResultAccessCode – 必須。** フェデレーテッド決済サービスからの結果アクセスコードを指定します。このコードは通常、クロスページJavaScriptイベントを通じて加盟店ウェブサイトに送信されます。

**出力:**

**CardToken****–** 顧客が支払いサービスに提供した支払い情報を表すカードトークンです。

\*\*AuthorizationResult –\*\*支払いサービスとの取引結果を示す値。この文字列の形式は使用されている決済サービスに特有です。

**SystemMessages -** 外部システムからのメッセージの収集。

使用例:

var request = new GetPaymentServiceActionResultRequest()
{
 Locale = Context.Culture.Name,
 PaymentAcceptResultAccessCode = "accessCode"
};
var provider = (PaymentServiceProvider) Factory.CreateObject("paymentServiceProvider", true);
var result = provider.GetPaymentServiceActionResult(request);