# NFC 機器のタップによって取得したデータを収集 Terminal を使用して、リーダーのハードウェアインターフェイスで NFC 機器のデータを収集できます。 > データ収集のプライベートプレビュー版へのアクセスをリクエストする場合は、[terminal-collect-data@stripe.com](mailto:terminal-collect-data@stripe.com) までお問い合わせください。ユースケース、端末装置、実装タイプを入力します。 Terminal SDK とリーダーの非接触型インターフェイスを使用して、カードやリストバンドなどの NFC 決済手段の一意の識別子 (UID) を読み取ります。この機能はオフラインで利用できます。 NFC 計測器をタップすると、Terminal SDK は収集されたデータオブジェクトを NFC UID とともに提供します。エラーが発生した場合は、エラーを返します。 > #### 警告 > > この機能を使用してカード支払いを回収することはできません。Stripe Terminal を使用して支払いを回収するには、[こちらの手順](https://docs.stripe.com/terminal/payments/collect-card-payment.md)に従ってください。 NFC 機器のタップデータの収集は、以下で利用できます。 - [Android SDK](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=android) を使用する [Stripe M2](https://docs.stripe.com/terminal/readers/stripe-m2.md) と [iOS SDK](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=ios) `4.2.0` 以降、および [React Native SDK](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=react-native) `0.0.1-beta.27` 以降がサポートされているすべての国。 - [Android SDK](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=android) を使用するリーダーソフトウェアバージョン `2.29.6.0` 以降の [Stripe Reader S700/S710](https://docs.stripe.com/terminal/readers/stripe-reader-s700-s710.md)、[Apps on Devices](https://docs.stripe.com/terminal/features/apps-on-devices/overview.md) `4.2.0` 以降、[iOS SDK](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=ios) `4.4.0` 以降、[React Native SDK](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=react-native) `0.0.1-beta.27` 以降がサポートされているすべての国。 # iOS > This is a iOS for when terminal-sdk-platform is ios. View the full page at https://docs.stripe.com/terminal/features/collect-nfc-data?terminal-sdk-platform=ios. ## データを収集 - [collectData (iOS)](https://stripe.dev/stripe-terminal-ios/docs/Classes/SCPTerminal.html#/c:objc\(cs\)SCPTerminal\(im\)collectData:completion:) `Terminal.collectData()` を使用して、POS アプリケーションからのデータ収集を求めます。受信する収集データのタイプ (`.nfcUid` など) を、関数に渡される構成で指定します。顧客が NFC 機器をタップすると、SDK は NFC UID でデータオブジェクトを収集するか、読み取りが失敗した場合はエラーを返します。 > サポート対象のリーダーでは、顧客が取引をキャンセルする機能が *デフォルトで有効* になりました。スマートリーダーで顧客のキャンセルを無効にするには、`customerCancellation` を `.disableIfAvailable` に設定します。 #### Swift ```swift import UIKit import StripeTerminal class PaymentViewController: UIViewController { func readNfcUid() throws { let config = try CollectDataConfigurationBuilder().setCollectDataType(.nfcUid).build() self.cancelable = Terminal.shared.collectData(config) { collectedData, collectError in if let error = collectError { // Placeholder for handling exceptions } else if let nfcUid = collectedData?.nfcUid { // Placeholder for receiving NFC UID print("NFC UID is: \(nfcUid)") } } } } ``` # Android > This is a Android for when terminal-sdk-platform is android. View the full page at https://docs.stripe.com/terminal/features/collect-nfc-data?terminal-sdk-platform=android. ## データを収集 - [collectData (Android)](https://stripe.dev/stripe-terminal-android/core/com.stripe.stripeterminal/-terminal/collect-data.html) `Terminal.collectData()` を使用して、POS アプリケーションからのデータ収集を求めます。受信する収集データのタイプ (`NFC_UID` など) を、関数に渡される構成で指定します。顧客が NFC 機器をタップすると、SDK は NFC UID でデータオブジェクトを収集するか、読み取りが失敗した場合はエラーを返します。 > サポート対象のリーダーでは、顧客が取引をキャンセルする機能が *デフォルトで有効* になりました。スマートリーダーで顧客のキャンセルを無効にするには、`customerCancellation` を `DISABLE_IF_AVAILABLE` に設定します。 #### Kotlin ```kotlin val config = CollectDataConfiguration.Builder() .setType(CollectDataType.NFC_UID) .build() val cancelable = Terminal.getInstance().collectData(config, object : CollectedDataCallback { override fun onSuccess(collectedData: CollectedData) { // Placeholder for receiving NFC UID collectedData.nfcUid?.let { print("NFC UID is $it") } } override fun onFailure(exception: TerminalException) { // Placeholder for handling exception } } ) ``` # React Native > This is a React Native for when terminal-sdk-platform is react-native. View the full page at https://docs.stripe.com/terminal/features/collect-nfc-data?terminal-sdk-platform=react-native. ## データを収集 - [collectData (React Native)](https://stripe.dev/stripe-terminal-react-native/api-reference/interfaces/StripeTerminalSdkType.html#collectdata) `collectData()` を使用して、POS アプリケーションからのデータ収集を促します。受信する収集データのタイプ (`NFC_UID` など) を、関数に渡される構成で指定します。顧客が NFC 機器をタップすると、SDK は NFC UID でデータオブジェクトを収集するか、読み取りが失敗した場合はエラーを返します。 ```javascript import { CollectDataType } from '@stripe/stripe-terminal-react-native'; const readNfcUid = async () => { try { let collectDataType = CollectDataType.NFC_UID; const { collectedData, error } = await collectData({ collectDataType: collectDataType, customerCancellation: 'disableIfAvailable', }); if (error) { // Placeholder for handling exceptions console.error('Collect data failed:', error); } else if (collectedData?.nfcUid) { // Placeholder for receiving NFC UID console.log('NFC UID is:', collectedData.nfcUid); } } catch (e) { // Handle any unexpected errors console.error('Error collecting NFC data:', e); } }; ```