> 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 get consumer profiles 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 フローは backend 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 Integration – Error Management セクションを参照してください。
        }
    }

    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.
