> For the complete documentation index, see [llms.txt](https://docs.payments.thalescloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payments.thalescloud.io/click-to-pay/ja/implement-click-to-pay-issuers/retrieve-click-to-pay-profiles/retrieve-profiles-by-d1-sdk.md).

# D1 SDKによるプロファイルの取得

## 概要

このページでは、イシュアアプリケーションが D1 SDK を使用して Click to Pay プロファイルを取得する方法を説明します。

イシュアアプリケーションが次を呼び出します `getProfiles` ([Android](https://thalesgroup.github.io/d1sdk-docs/d1-sdk/latest/android/com/thalesgroup/gemalto/d1/clicktopay/ClickToPayService.html#getProfiles\(com.thalesgroup.gemalto.d1.D1Task.Callback\)) / [iOS](https://thalesgroup.github.io/d1sdk-docs/d1-sdk/4.3.0/ios/documentation/d1/clicktopayservice/profiles\(\))) API は、イシュアバックエンドが呼び出す場合と同じバックエンド取得動作をトリガーします [Click to Pay の消費者プロフィール取得 API](/click-to-pay/ja/integrate-the-d1-api/d1-api-summary.md).

エンドユーザーにプロファイルの詳細を更新させたり、カードのオプトアウトを許可したりする前など、イシュアアプリケーションで現在の Click to Pay プロファイルデータを直接表示したい場合に、この SDK フローを使用します。

{% hint style="info" %}
**クイックリンク**

* [Click to Pay プロファイルを取得](/click-to-pay/ja/implement-click-to-pay-issuers/retrieve-click-to-pay-profiles.md)
* [D1 SDK によるカード登録](/click-to-pay/ja/implement-click-to-pay-issuers/enroll-cards-in-click-to-pay/enroll-cards-by-d1-sdk.md)
* [Click to Pay プロファイルを更新](/click-to-pay/ja/implement-click-to-pay-issuers/update-click-to-pay-profiles.md)
* [D1 SDK によるオプトアウト](/click-to-pay/ja/implement-click-to-pay-issuers/opt-out-cards-from-click-to-pay/opt-out-by-d1-sdk.md)
  {% endhint %}

## フロー

SDK の retrieve-profiles フローは次の手順で進みます:

1. イシュアアプリケーションが D1 SDK を初期化し、エンドユーザーをログインさせます。
2. イシュアアプリケーションが Click to Pay の retrieve-profiles オペレーションを呼び出します。
3. D1 は認証済みのエンドユーザーコンテキストを使用して、リクエストを D1 バックエンドに送信します。
4. D1 バックエンドが設定済みの Click to Pay ディレクトリを照会します。
5. D1 が結果を集約し、支払いネットワークごとに最大 1 件のプロファイルをイシュアアプリケーションに返します。

## シーケンス図

SDK フローはバックエンドの retrieve-profiles フローと同じ機能動作を持ちますが、イシュアアプリケーションから直接開始されます。

詳細なシーケンス図については、 [Click to Pay プロファイルを取得](/click-to-pay/ja/implement-click-to-pay-issuers/retrieve-click-to-pay-profiles.md).

### 重要なポイント

* これは非同期オペレーションです。イシュアアプリケーションは、コールバックまたは返された結果で現在のプロファイルを直接受け取ります。
* レスポンスには  `ProfileResult.Profile` コレクションが含まれます。各エントリは、1 つの支払いネットワークディレクトリ内の 1 つの Click to Pay プロファイルを表します。
* 複数の Click to Pay ディレクトリが設定されている場合、D1 はプロファイルを 1 つのレスポンスにまとめます。
* エンドユーザーが D1 には存在するものの Click to Pay に登録されていない場合、オペレーションは空のリストを返します。
* イシュアアプリケーションが次の呼び出しの前に現在の Click to Pay ステータスを表示する必要がある場合は、このフローを使用します [Click to Pay にカードを登録](/click-to-pay/ja/implement-click-to-pay-issuers/enroll-cards-in-click-to-pay.md) または [Click to Pay からカードをオプトアウト](/click-to-pay/ja/implement-click-to-pay-issuers/opt-out-cards-from-click-to-pay.md).

{% hint style="info" %}
空のプロファイルリストは有効な機能結果として扱ってください。

通常、これはエンドユーザーが D1 では認識されているものの、まだ Click to Pay プロファイルを持っていないことを意味します。
{% endhint %}

## レスポンスの処理

イシュアアプリケーションは次のデータを想定しておく必要があります:

* `scheme`: 返されたプロファイルの支払いネットワークディレクトリ。
* `consumerInfo`: Click to Pay ディレクトリに保存されている現在のエンドユーザーデータ。
* `cards`: その支払いネットワークの Click to Pay プロファイルに関連付けられたカードの一覧。
* `message`: D1 が部分的なレスポンスしか提供できない場合に返される、トラブルシューティング用のオプションテキスト。

返されたデータを次の用途に使用します:

* 現在の Click to Pay 登録状態を表示する、
* 各支払いネットワークディレクトリで利用可能なカードを表示する、
* プロファイル更新用のユーザーインターフェースを事前入力する、または
* エンドユーザーが次に取るべき適切なアクションを選べるようにする。

{% hint style="warning" %}
オプションの  `message` フィールドをエンドユーザーに解析したり表示したりしないでください。

トラブルシューティング専用に使用してください。
{% endhint %}

### Click to Pay のプッシュ通知を処理する

登録やオプトアウトとは異なり、Click to Pay プロファイルの取得には専用のプッシュ通知フローは必要ありません。

このオペレーションは現在の結果をイシュアアプリケーションに直接返します。プロファイル取得自体については非同期完了イベントは想定されていません。

イシュアアプリケーションでは、登録やオプトアウトなど他のオペレーション向けに、Click to Pay のプッシュ通知を有効にしたままにしておくこともできます。実装の詳細については、 [Click to Pay のプッシュ通知を処理する](/click-to-pay/ja/implement-click-to-pay-issuers/enroll-cards-in-click-to-pay/enroll-cards-by-d1-sdk.md#handle-click-to-pay-push-notifications).

## SDK API

その `getProfiles` ([Android](https://thalesgroup.github.io/d1sdk-docs/d1-sdk/latest/android/com/thalesgroup/gemalto/d1/clicktopay/ClickToPayService.html#getProfiles\(com.thalesgroup.gemalto.d1.D1Task.Callback\)) / [iOS](https://thalesgroup.github.io/d1sdk-docs/d1-sdk/4.3.0/ios/documentation/d1/clicktopayservice/profiles\(\))) API は D1 SDK を通じて利用できます。

{% tabs %}
{% tab title="Android - Kotlin" %}

```kotlin
fun getProfilesC2Pay(d1Task: D1Task) {
    val callback: D1Task.Callback<ProfileResult?> = object : D1Task.Callback<ProfileResult?> {
        override fun onSuccess(data: ProfileResult?) {
            // Click to Pay プロファイルの取得に成功
            val profiles: MutableList<Profile?>? = data?.getProfileList()
            val message: String? = data?.getErrorMessage()
            if (!message.isNullOrEmpty()) {
                // メッセージをログに記録し、完全なプロファイルを取得するために再試行することがあります
            }
            // すべてのプロファイルを表示
        }

        override fun onError(exception: D1Exception) {
            // D1 SDK 統合 – エラー管理のセクションを参照してください。
        }
    }

    d1Task.getClickToPayService().getProfiles(
        callback
    )
}
```

{% endtab %}

{% tab title="iOS" %}

```swift
do {
    let profileResult = try await d1Task.clickToPayService().profiles()
    if let message = profileResult.errorMessage {
        // メッセージをログに記録し、完全なプロファイルを取得するために再試行することがあります
    }
    // すべてのプロファイルを表示
} catch let error {
    // エラーを処理します。
}
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
返されたプロファイルデータを、イシュアアプリケーションのユーザーインターフェースのソースとして使用します。

すべての支払いネットワークがエンドユーザー向けのプロファイルを返すとは想定しないでください。
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.payments.thalescloud.io/click-to-pay/ja/implement-click-to-pay-issuers/retrieve-click-to-pay-profiles/retrieve-profiles-by-d1-sdk.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
