> 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/release-notes/ja/sdk/june-2026/d1-sdk-v4.4.0/asynchronous-apis-on-d1-sdk-4.4.0.md).

# D1 SDK 4.4.0 の非同期API

## D1 SDK 4.4.0 の非同期 API

#### 概要

D1 SDK 4.4.0 では、Android と iOS 向けに非同期 API の更新が導入されます。

Android では、更新された API はコルーチンベースの統合をサポートします。iOS では、更新された API は Swift concurrency をサポートします。これらの変更は Secure Card Display と Push Provisioning API に適用されます。

このガイドを使用して、影響を受ける API を確認し、イシュアアプリケーションを更新してください。

#### 変更点

D1 SDK 4.4.0 では、以前の API サーフェスは非推奨になります。非推奨の API は、現在、関連する製品の下で提供されます:

* カード表示フローには Secure Card Display を使用します。
* ウォレットのデジタル化フローには Push Provisioning を使用します。

イシュアアプリケーションが非同期呼び出しを使用している場合は、移行中にそれらの呼び出しを更新してください:

* Android では、Kotlin のコルーチンベース API を使用します。
* iOS では、Swift concurrency ベース API を使用します。

このページには、4.4.0 で変更された API が一覧表示されています。

#### 製品固有の API に移行する

{% stepper %}
{% step %}

#### 現在の統合を確認する

イシュアアプリケーションで使用されている非推奨の D1 SDK API を特定します。

Secure Card Display と Push Provisioning のフローで使用される API に焦点を当てます。
{% endstep %}

{% step %}

#### 製品固有の API に移行する

* 各非推奨 API を、対応する製品固有の API に置き換えます。&#x20;
* カード表示機能には Secure Card Display API を使用します。
* ウォレットのデジタル化機能には Push Provisioning API を使用します。
  {% endstep %}

{% step %}

#### 非同期呼び出しを更新する

* Android では、既存の非同期呼び出しを Kotlin のコルーチンベース API に置き換えます。
* iOS では、既存の非同期呼び出しを Swift concurrency API に置き換えます。
  {% endstep %}

{% step %}

#### 移行後のフローを検証する

* 移行後にイシュアアプリケーションをビルドしてテストします。
* Secure Card Display と Push Provisioning のフローを検証します。
  {% endstep %}
  {% endstepper %}

#### 非同期処理を更新する

{% tabs %}
{% tab title="Android" %}
イシュアアプリケーションが Kotlin コルーチンを使用している場合は、Kotlin のコルーチンベース API を使用します。

これにより、非同期コードが簡潔になり、コールバック処理が減ります。

Secure Card Display と Push Provisioning の呼び出しは現在、 `Task<T>` の代わりに `Callback`.

**使用 `await()` コルーチンベースの統合では**

をインポートします `await` 拡張を明示的に:

```kotlin
import com.thalesgroup.gemalto.d1.await
```

コルーチンベースの例:

```kotlin
fun getCardMetaData(d1Task: D1Task, cardID: String, activity: FragmentActivity) {
   activity.lifecycleScope.launch {
       try {
           val cardMetadata = d1Task.secureCardDisplayService.getCardMetadata(cardID).await()

           // PAN の下4桁
           val last4Pan = cardMetadata.last4Pan

           // CardAsset はカードデザインの表示に使用されます
           val cardAssets = cardMetadata.getAssetList().await()
           // アプリケーションロジックを続行します
       } catch (exception: D1Exception) {
           // D1 SDK Integration – Error Management セクションを参照してください
       }
   }
}
```

**使用 `execute(callback)` コルーチンを使用しない統合では**

```kotlin
public void getCardMetaData(@NonNull D1Task d1Task, @NonNull String cardID) {
   D1Task.Callback<CardMetadata> callback = new D1Task.Callback<CardMetadata>() {
       @Override
       public void onSuccess(CardMetadata cardMetadata) {
           // PAN の下4桁
           String last4Pan = cardMetadata.getLast4Pan();

           // 注: アセット一覧の取得は getAssetList() メソッドで別途処理されます
           // アプリケーションロジックを続行します
       }

       @Override
       public void onError(D1Exception exception) {
           // D1 SDK Integration – Error Management セクションを参照してください
       }
   };

   d1Task.getSecureCardDisplayService().getCardMetadata(cardID).execute(callback);
}
```

{% endtab %}

{% tab title="iOS" %}
イシュアアプリケーションが Swift concurrency を使用している場合は、Swift concurrency API を使用します。

これにより、非同期コードが読みやすく、保守しやすくなります。

Secure Card Display と Push Provisioning の呼び出しは現在、 `async throws` completion handler の代わりに使用されます。
{% endtab %}
{% endtabs %}

#### 4.4.0 の API 変更

このセクションで D1 SDK 4.4.0 で変更された API を確認してください。

各製品サービスを初期化します `d1Task` 製品 API を呼び出す前に。

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

```kotlin
val pushProvisioningService = d1Task.pushProvisioningService
val secureCardDisplayService = d1Task.secureCardDisplayService
```

{% endtab %}

{% tab title="iOS" %}

```swift
let secureCardDisplayService = try d1Task.secureCardDisplayService()
let pushProvisioningService = try d1Task.pushProvisioningService()
```

{% endtab %}
{% endtabs %}

**Secure Card Display**

{% tabs %}
{% tab title="Android" %}
**`getCardMetadata`**

前:

```java
getCardMetadata(String cardID, Callback<CardMetadata> callback)
```

現在:

```java
Task<CardMetadata> getCardMetadata(String cardID)
```

**`getCardDetails`**

前:

```java
getCardDetails(String cardID, Callback<CardDetails> callback)
```

現在:

```java
Task<CardDetails> getCardDetails(String cardID)
```

**`displayCardDetails`**

前:

```java
displayCardDetails(String cardID, CardDetailsUI cardDetailsUI, Callback<Void> callback)
```

現在:

```java
Task<Void> displayCardDetails(String cardID, CardDetailsUI cardDetailsUI)
```

{% endtab %}

{% tab title="iOS" %}
**`cardMetadata`**

前:

```swift
cardMetadata(_ cardID: String, completion: @escaping (CardMetadata?, D1Error?) -> Void)
```

現在:

```swift
cardMetadata(_ cardID: String) async throws -> CardMetadata
```

**`cardDetails`**

前:

```swift
cardDetails(_ cardID: String, completion: @escaping (CardDetails?, D1Error?) -> Void)
```

現在:

```swift
cardDetails(_ cardID: String) async throws -> CardDetails
```

**`displayCardDetails`**

前:

```swift
displayCardDetails(_ cardID: String, cardDetailsUI ui: CardDetailsUI, completion: @escaping (D1Error?) -> Void)
```

現在:

```swift
displayCardDetails(_ cardID: String, cardDetailsUI: CardDetailsUI) async throws
```

{% endtab %}
{% endtabs %}

**Push Provisioning**

{% tabs %}
{% tab title="Android" %}
**`addDigitalCardToScheme`**

前:

```java
addDigitalCardToScheme(String cardID, TokenRequestor tokenRequestor, String appURL, boolean tcsAccepted, Callback<String> callback)
```

現在:

```java
Task<String> addDigitalCardToScheme(String cardID, TokenRequestor tokenRequestor, String appURL, boolean tcsAccepted)
```

**`addDigitalCardToOEM`**

前:

```java
addDigitalCardToOEM(String cardID, OEMPayType oemType, Activity activity, D1Task.Callback<Object> callback)
```

現在:

```java
Task<Object> addDigitalCardToOEM(String cardID, OEMPayType oemType, Activity activity, int options)
```

**`getTokenRequestorList`**

前:

```java
getTokenRequestorList(String cardID, Callback<List<TokenRequestor>> callback)
```

現在:

```java
Task<List<TokenRequestor>> getTokenRequestorList(String cardID)
```

**`getCardDigitizationState`**

前:

```java
getCardDigitizationState(String cardID, OEMPayType oemType, D1Task.Callback<CardDigitizationState> callback)
```

現在:

```java
Task<CardDigitizationState> getCardDigitizationState(String cardID, OEMPayType oemType)
```

4.4.0 の新機能:

```java
Task<CardDigitizationState> getCardDigitizationState(OEMPayType oemType, String last4)
```

{% endtab %}

{% tab title="iOS" %}
**`cardDigitizationState`**

前:

```swift
cardDigitizationState(_ cardID: String, completion: @escaping (CardDigitizationResult?, D1Error?) -> Void)
```

現在:

```swift
cardDigitizationState(_ cardID: String) async throws -> CardDigitizationResult
```

**`addDigitalCardToOEM`**

前:

```swift
addDigitalCardToOEM(_ cardID: String, viewController: UIViewController, completion: @escaping (D1Error?) -> Void)
```

現在:

```swift
addDigitalCardToOEM(_ cardID: String, viewController: UIViewController) async throws
```

**`digitalCardPass` へ `digitalCard`**

前:

```swift
digitalCardPass(forSerialNumber serialNumber: String) throws -> PKPass?
```

現在:

```swift
digitalCard(forSerialNumber serialNumber: String) throws -> PKPass?
```

**`tokenRequestorList`**

前:

```swift
tokenRequestorList(_ cardID: String, completion: @escaping ([TokenRequestor]?, D1Error?) -> Void)
```

現在:

```swift
tokenRequestorList(_ cardID: String) async throws -> [TokenRequestor]
```

**`addDigitalCardToScheme`**

前:

```swift
addDigitalCardToScheme(_ cardID: String, tokenRequestor: TokenRequestor, appURL: String, termsAndConditionsAccepted: Bool, completion: @escaping (String?, D1Error?) -> Void)
```

現在:

```swift
addDigitalCardToScheme(_ cardID: String, tokenRequestor: TokenRequestor, appURL: String, termsAndConditionsAccepted: Bool) async throws -> String
```

4.4.0 の新機能:

```swift
cardDigitizationState(withLast4 last4: String) async throws -> CardDigitizationResult
```

{% endtab %}
{% endtabs %}


---

# 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/release-notes/ja/sdk/june-2026/d1-sdk-v4.4.0/asynchronous-apis-on-d1-sdk-4.4.0.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.
