# スワイプデータを収集する Terminal を使用して、リーダーのハードウェアインターフェイスで PCI 以外のデータを収集します。 > データ収集の非公開ベータ版へのアクセスをリクエストする場合は、次の情報を添えて [terminal-collect-data@stripe.com](mailto:terminal-collect-data@stripe.com) までお問い合わせください。 > > - ユースケース - 端末装置とシステムタイプ - 磁気ストライプのデータフォーマット - プロバイダー (サードパーティーのカードプロバイダーを利用している場合) Terminal SDK とリーダーのハードウェアインターフェイス (磁気ストライプリーダーなど) を使用して、ギフトカードなどの非 PCI の決済手段を読み取ることができます。この機能はオフラインでは使用できません。 カードをスワイプすると、Stripe はトークン化されたデータオブジェクトを提供します。トークンを使用して、バックエンドでクリアテキストのトラックデータを安全に取得できます。 Terminal リーダーは、以下のフォーマットに沿ったクリアテキストの磁気ストライプデータのみを読み取り、保存します。 - カードデータはトラック 2 でのみ使用できます。 - カードデータは、[ISO/IEC-7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) のトラック 2 の開始点 `;` と終了点 `?` のみを使用します。区切り文字は使用しません。 - カードデータは数字のみで構成されます。 承認済みのフォーマットとカード番号が一致しない場合は、カードのフォーマットと BIN 範囲をご用意のうえ、[Terminal チームにお問い合わせください](mailto:terminal-collect-data@stripe.com)。 スワイプされたデータの収集は、次の環境で利用できます。 - [Stripe Reader S700/S710](https://docs.stripe.com/terminal/readers/stripe-reader-s700-s710.md)、[BBPOS WisePOS E](https://docs.stripe.com/terminal/readers/bbpos-wisepos-e.md)、[Stripe M2](https://docs.stripe.com/terminal/readers/stripe-m2.md)、[BBPOS Chipper2X BT](https://docs.stripe.com/terminal/readers/bbpos-chipper2xbt.md) # iOS > This is a iOS for when terminal-sdk-platform is ios. View the full page at https://docs.stripe.com/terminal/features/collect-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 アプリケーションにデータを収集するように求めます。関数に渡される構成で受信するデータの種類を指定します (`.magstripe` など)。顧客がカードをスワイプすると、SDK はデータを表すトークンを返すか、スワイプが失敗した場合はエラーを返します。このトークンをインテグレーションで使用して、データを参照します。 > サポート対象のリーダーでは、顧客が取引をキャンセルする機能が *デフォルトで有効* になりました。スマートリーダーで顧客のキャンセルを無効にするには、`customerCancellation` を `.disableIfAvailable` に設定します。 #### Swift ```swift import UIKit import StripeTerminal class PaymentViewController: UIViewController { func readGiftCard() throws { let config = try CollectDataConfigurationBuilder() .setCollectDataType(.magstripe) .build() self.cancelable = Terminal.shared.collectData(config) { collectedData, collectError in if let error = collectError { // Handle read errors print("Collect data failed: \(error)") } else if let data = collectedData, let stripeId = data.stripeId { print("Received collected data token: \(stripeId)") } } } } ``` ## 収集したデータを取得する ギフトカードの引き換えなどの操作を行う必要がある場合は、収集したデータトークンを使用してバックエンドから[クリアテキストデータを取得](https://docs.stripe.com/api/terminal/reader-collected_data.md)します。収集されたデータは、Stripe のサーバー上に 24 時間保管されます。 ```curl curl https://api.stripe.com/v1/terminal/reader_collected_data/tmrcd_xxxxxxxx \ -u "<>:" ``` > Stripe は、収集データの認証または収集データを使用した取引の承認を実行せず、それらに関する責任を負いません。Stripe は、収集データに関連する第三者による違法行為や不正利用について責任を負いません。 # Android > This is a Android for when terminal-sdk-platform is android. View the full page at https://docs.stripe.com/terminal/features/collect-data?terminal-sdk-platform=android. ## データを収集 - [collectData (Android)](https://stripe.dev/stripe-terminal-android/core/com.stripe.stripeterminal/-terminal/collect-data.html) `Terminal.collectData()` を使用して、POS アプリケーションにデータを収集するように求めます。関数に渡される構成で受信するデータの種類を指定します (`.magstripe` など)。顧客がカードをスワイプすると、SDK はデータを表すトークンを返すか、スワイプが失敗した場合はエラーを返します。このトークンをインテグレーションで使用して、データを参照します。 > サポート対象のリーダーでは、顧客が取引をキャンセルする機能が *デフォルトで有効* になりました。スマートリーダーで顧客のキャンセルを無効にするには、`customerCancellation` を `DISABLE_IF_AVAILABLE` に設定します。 #### Kotlin ```kotlin val config = CollectDataConfiguration.Builder() .setType(CollectDataType.MAGSTRIPE) .build() val cancelable = Terminal.getInstance().collectData( config, callback = object : CollectedDataCallback { override fun onSuccess(collectedData: CollectedData) { // Placeholder for handling successful operation } override fun onFailure(e: TerminalException) { // Placeholder for handling exception } } ) ``` ## 収集したデータを取得する ギフトカードの引き換えなどの操作を行う必要がある場合は、収集したデータトークンを使用してバックエンドから[クリアテキストデータを取得](https://docs.stripe.com/api/terminal/reader-collected_data.md)します。収集されたデータは、Stripe のサーバー上に 24 時間保管されます。 ```curl curl https://api.stripe.com/v1/terminal/reader_collected_data/tmrcd_xxxxxxxx \ -u "<>:" ``` > Stripe は、収集データの認証または収集データを使用した取引の承認を実行せず、それらに関する責任を負いません。Stripe は、収集データに関連する第三者による違法行為や不正利用について責任を負いません。 # 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-data?terminal-sdk-platform=react-native. ## データを収集 - [collectData (React Native)](https://stripe.dev/stripe-terminal-react-native/api-reference/interfaces/StripeTerminalSdkType.html#collectdata) `collectData()` を使用して、POS アプリケーションにデータの収集を促します。関数に渡される構成で受信するデータの種類を指定します (`MAGSTRIPE` など)。顧客がカードをスワイプすると、SDK はデータを表すトークンを返すか、スワイプが失敗した場合はエラーを返します。このトークンを統合で使用して、データを参照します。 ```javascript import { CollectDataType } from '@stripe/stripe-terminal-react-native'; const readGiftCard = async () => { try { let collectDataType = CollectDataType.MAGSTRIPE; const { collectedData, error } = await collectData({ collectDataType: collectDataType, customerCancellation: 'disableIfAvailable', }); if (error) { // Handle read errors console.error('Collect data failed:', error); } else if (collectedData?.stripeId) { console.log('Received collected data token:', collectedData.stripeId); } } catch (e) { // Handle any unexpected errors console.error('Error collecting data:', e); } }; ``` ## 収集したデータを取得する ギフトカードの引き換えなどの操作を行う必要がある場合は、収集したデータトークンを使用してバックエンドから[クリアテキストデータを取得](https://docs.stripe.com/api/terminal/reader-collected_data.md)します。収集されたデータは、Stripe のサーバー上に 24 時間保管されます。 ```curl curl https://api.stripe.com/v1/terminal/reader_collected_data/tmrcd_xxxxxxxx \ -u "<>:" ``` > Stripe は、収集データの認証または収集データを使用した取引の承認を実行せず、それらに関する責任を負いません。Stripe は、収集データに関連する第三者による違法行為や不正利用について責任を負いません。