> 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/nfc-wallet-sdk-ios/ja/implement-nfc-wallet/enroll-wallet.md).

# ウォレットを登録する

## 概要

あなたの **デジタルウォレットアプリケーション** 後に **NFC Wallet SDK** 初期化し、開始する前に **トークン化**。ウォレット登録では、デジタルウォレットアプリケーションに、呼び出しに必要なセキュリティ資産をプロビジョニングします **NFC Wallet** サービスを：

* ウォレットインスタンスごとに1回実行します。
* デジタルウォレットアプリケーションが **NFC Wallet** サービスを使用する場合のみ実行します。
* 非接触型決済をサポートするデバイスでのみ実行します。参照： [非接触機能を確認する](broken://spaces/iHBSjQEwsJj8Udj0AFXY/pages/bOB3wh3T2b7CA8EKfMLg).

{% hint style="warning" %}
使用するデジタルウォレットアプリケーションのみを登録します **NFC Wallet** サービスを使用する場合のみ実行します。

これにより、デジタルウォレットアプリケーションからの不要なネットワークトラフィックと、 **NFC Wallet** 製品への不要な負荷を回避できます。
{% endhint %}

## シーケンス図

ウォレットアプリケーションを登録するための高レベルのフロー。

<figure><img src="/files/d230931d1b5a909a514fece6653c7d8e432c431b" alt=""><figcaption><p>ウォレット登録フロー。</p></figcaption></figure>

{% hint style="info" %}
このフローは技術的には **ウォレットの安全な登録** と呼ばれます **NFC Wallet**.
{% endhint %}

## SDK統合

### 前提条件

開始する前に、次の内容を確認してください：

* デジタルウォレットアプリケーションが **NFC Wallet** バックエンドにオンボードされている。
* を初期化した。 **NFC Wallet SDK**.
* ウォレットは登録されていません（`WalletSecureEnrollmentService.isEnrolled()` が `false`).
* を返します [非接触機能を確認する](/nfc-wallet-sdk-ios/ja/implement-nfc-wallet/check-contactless-capability.md).

{% hint style="info" %}
非接触型決済をサポートしている場合は、デバイスが有効であることを確認してください。参照：
{% endhint %}

### デジタルウォレットアプリケーションが非接触型決済をサポートしていない場合（たとえば、QRコードのみ、またはDSRPリモート決済のみ）は、非接触機能の確認をスキップしてください。

ウォレット登録を実行する

ウォレット登録は、デジタルウォレットアプリケーションのライフサイクルにおける1回限りの操作です。SDKの初期化後に、かつウォレットが未登録の場合にのみ実行してください。

1. を作成します `WalletSecureEnrollmentService` インスタンス。
2. 確認 `wse.isEnrolled()`.
3. 必要に応じて、 `wse.enroll()` を呼び出してプロセスを開始します。操作が成功すると、ウォレットの安全な登録は完了し、失敗した場合はエラーがスローされます。

ウォレットの安全な登録が正常に完了したら、次へ進みます [カードをトークン化する](/nfc-wallet-sdk-ios/ja/implement-nfc-wallet/tokenize-a-card.md).

```swift
func invokeWSEAsync() async {
   do {
        let wse = try WalletSecureEnrollmentService()
        // ウォレットの登録状況を確認します。
        if wse.isEnrolled() {
            // WSE は登録済みです
        } else {
            // ウォレットの安全な登録をトリガーします。
            try await wse.enroll()
            // 登録プロセスはここで正常に完了します。
        }
    } catch {
        // WSE エラー 
    }
}
```

### エラー

ウォレット登録が失敗した場合は、次のエラータイプを処理してください：

* `clientError`：内部SDKエラー。メッセージがデジタルウォレットアプリケーションに提供されます。
* `serverError`：バックエンドエラー。メッセージ、 `httpStatus`, `errorCode`、および任意の `additionalInfo` がデジタルウォレットアプリケーションに提供されます。
* `networkError`：デバイスにインターネット接続がありません。

{% hint style="info" %}
その `WalletSecureEnrollmentService.eventStream` および `WalletSecureEnrollmentService.State` APIは非推奨であり、次回のリリースで削除されます。そのため、コードを移行して `WalletSecureEnrollmentService.enroll` APIを使用し、上記のとおりすべての新規実装に対応する必要があります
{% endhint %}

### 非推奨API

以下の例は、 `WalletSecureEnrollmentService.State` および `WalletSecureEnrollmentService.eventStream` APIの使用を示しています。これらは非推奨です。

以下は `WalletSecureEnrollment` の可能なイベントです `WalletSecureEnrollmentService.eventStream` （非推奨）APIが使用される場合：

* `.started`：ウォレットの安全な登録プロセスが開始されます。
* `.completed` ：ウォレットの安全な登録プロセスが完了します。
* `.errorEncountered`：ウォレットの安全な登録エラーが返されます。

```swift
// 非推奨API
func invokeWSEAsync() async {
    do {
        let wse = try WalletSecureEnrollmentService()
        // ウォレットの登録状況を確認します。
        if wse.isEnrolled() {
            // WSE は登録済みです
        } else {
          // ウォレットの安全な登録をトリガーします。
            wse.enroll()
            for await state in wse.eventStream {
              switch state {
                case .started:
                  // WSE が開始したときにトリガーします。
                case .completed:
                  // WSE が完了したときにトリガーします。
                case .errorEncountered(let error):
                  switch error {
                    case .clientError(let message):
                        // エラー処理 
                    case .serverError(let message, let httpStatus, let errorCode, let additionalInfo):
                        // エラー処理 
                    case .networkError:
                        // エラー処理 
                    }
                }
            }
        }
    } catch {
        // WSE 初期化エラー 
    }
}
```


---

# 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:

```
GET https://docs.payments.thalescloud.io/nfc-wallet-sdk-ios/ja/implement-nfc-wallet/enroll-wallet.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
