# Google Pay Google Pay を使用した決済の受け付け方法をご紹介します。 決済手段の取引手数料については、[料金体系の詳細](https://stripe.com/pricing/local-payment-methods)をご覧ください。 Google Pay を使用すると、Google Play、YouTube、Chrome、Android デバイスなど、Google アカウントに保存されているクレジットカードやデビットカードを使用して、アプリやウェブサイトで支払いを行うことができます。Google Pay API を使用して、顧客の Google アカウントに保存されているクレジットカードまたはデビットカードをリクエストします。 Google Pay は Stripe のプロダクトや機能 (継続支払いなど) と完全な互換性があるため、通常は従来の支払いフォームの代わりに使用できます。物品、寄付、*サブスクリプション* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis)の受け付けに使用します。 > #### Google Pay の規約 > > Google Pay を組み込むことで、Google の[利用規約](https://payments.developers.google.com/terms/sellertos)に同意したことになります。 #### 支払い方法のプロパティ - **顧客の場所** インドを除く世界各地 - **取引通貨** [サポートされている取引通貨](https://docs.stripe.com/currencies.md#presentment-currencies)を参照してください - **支払いの確定** 顧客主導 - **支払い方法の種類** ウォレット - **継続支払い** あり - **入金タイミング** 標準の入金タイミングを適用 - **Connect のサポート** あり - **不審請求の申請に関するサポート** [可](https://docs.stripe.com/google-pay.md#disputed-payments) - **手動キャプチャーのサポート** あり - **返金 / 一部返金** [可 / 可](https://docs.stripe.com/google-pay.md#refunds) #### ビジネスの所在地 インドを除く世界各地の Stripe アカウントは、Google Pay による支払いを現地通貨決済で受け付けることができます。 #### 製品のサポート - Connect - Checkout - Payment Links - Elements - Subscriptions - Invoicing ## Stripe および Google Pay の利用と Google Play の課金システムの利用について 物品およびサービスの販売については、お客様のアプリで Google Pay など Stripe で対応可能な支払い方法を受け付けることができます。これらの支払いは Stripe を介して処理され、お客様は Stripe の[決済手数料](https://stripe.com/pricing)を支払うだけで済みます。ただし、デジタル商品およびコンテンツのアプリ内購入では. [Google Play の課金システム](https://developer.android.com/google/play/billing) を使用する必要があります。これらの支払いは Google によって処理され、同社の決済手数料が適用されます。 Google Play の課金システムを使用しなければならない購入の詳細については、Google Play の[開発者向け利用規約](https://support.google.com/googleplay/android-developer/answer/10281818)をご覧ください。 # Android > This is a Android for when platform is android. View the full page at https://docs.stripe.com/google-pay?platform=android. ## Android アプリで Google Pay を使用した決済を受け付ける Stripe Android SDK の一部である `GooglePayLauncher` は、Android アプリで Google Pay の受け付けを開始する際の最速で最も簡単な方法です。 ## 前提条件 Android で Google Pay に対応するには、以下が必要です。 - `19` 以上の `minSdkVersion`。 - `28` 以上の `compileSdkVersion`。 さらに、ご自身のデバイスでテストをご希望の場合は、[Google アカウントに支払い方法を追加](https://support.google.com/wallet/answer/12058983?visit_id=637947092743186187-653786796&rd=1)する必要があります。 ## 実装方法を設定する このガイドは、Stripe Android SDK の最新バージョンを使用していることを前提としています。 #### Groovy ```groovy dependencies { implementation 'com.stripe:stripe-android:23.0.2' } ``` Google Pay を使用するには、まず以下を **AndroidManifest.xml** の `` に追加し、Google Pay API を有効化します。 ```xml ... ``` 詳細は、Google Pay の Android 向け [Google Pay API を設定する](https://developers.google.com/pay/api/android/guides/setup) を参照してください。 ## PaymentIntent を作成する ### サーバー側 サーバーで[金額](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount)および[通貨](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-currency)を指定して `PaymentIntent` を作成します。請求金額は、クライアント側ではなく、常に信頼できる環境のサーバー側で指定してください。これにより、悪意のある顧客が金額を恣意的に選択できないようにします。 #### curl ```bash curl https://api.stripe.com/v1/payment_intents \ -u <>: \ -d "amount"=1099 \ -d "currency"="usd" ``` ### クライアント側 PaymentIntent には *client Secret* (The client secret is a unique key returned from Stripe as part of a PaymentIntent. This key lets the client access important fields from the PaymentIntent (status, amount, currency) while hiding sensitive ones (metadata, customer)) が含まれています。これを Android アプリで使用することで、PaymentIntent オブジェクト全体を渡すことなく安全に支払いプロセスを完了できます。アプリで、サーバーの PaymentIntent をリクエストし、その client Secret を保存します。 #### Kotlin ```kotlin class CheckoutActivity : AppCompatActivity() { private lateinit var paymentIntentClientSecret: String override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ... startCheckout() } private fun startCheckout() { // Request a PaymentIntent from your server and store its client secret in paymentIntentClientSecret // Click View full sample to see a complete implementation } } ``` ## Google Pay ボタンを追加する [Google のチュートリアル](https://developers.google.com/pay/api/android/guides/tutorial#add-button)に従って、アプリに Google Pay ボタンを追加します。これにより、適正なアセットを使用できます。 ## GooglePayLauncher をインスタンス化する 次に、`Activity` または `Fragment` で [GooglePayLauncher](https://github.com/stripe/stripe-android/blob/master/payments-core/src/main/java/com/stripe/android/googlepaylauncher/GooglePayLauncher.kt) のインスタンスを作成します。これは `Activity#onCreate()` で行う必要があります。 `GooglePayLauncher.Config` では、`GooglePayLauncher` を設定する際の必須プロパティとオプションプロパティの両方が公開されます。設定オプションの詳細については、`GooglePayLauncher.Config` をご覧ください。 #### Kotlin ```kotlin import com.google.android.gms.wallet.button.PayButton class CheckoutActivity : AppCompatActivity() { // fetch client_secret from backend private lateinit var clientSecret: String private lateinit var googlePayButton: PayButton override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.checkout_activity) PaymentConfiguration.init(this, PUBLISHABLE_KEY) googlePayButton = /* TODO: Initialize button by following Google's guide. */ val googlePayLauncher = GooglePayLauncher( activity = this, config = GooglePayLauncher.Config( environment = GooglePayEnvironment.Test, merchantCountryCode = "US", merchantName = "Widget Store" ), readyCallback = ::onGooglePayReady, resultCallback = ::onGooglePayResult ) googlePayButton.setOnClickListener { // launch `GooglePayLauncher` to confirm a Payment Intent googlePayLauncher.presentForPaymentIntent(clientSecret) } } private fun onGooglePayReady(isReady: Boolean) { // implemented below } private fun onGooglePayResult(result: GooglePayLauncher.Result) { // implemented below } } ``` `GooglePayLauncher` をインスタンス化した後、`GooglePayLauncher.ReadyCallback` インスタンスが呼び出され、Google Pay が利用可能で使用できるかどうかどうかを示すフラグが示されます。このフラグを使用して UI を更新し、Google Pay が使用可能であることを顧客に示すことができます。 #### Kotlin ```kotlin import com.google.android.gms.wallet.button.PayButton class CheckoutActivity : AppCompatActivity() { // continued from above private lateinit var googlePayButton: PayButton private fun onGooglePayReady(isReady: Boolean) { googlePayButton.isEnabled = isReady } } ``` ## GooglePayLauncher を起動する Google Pay が利用可能になり、アプリが `PaymentIntent` または `SetupIntent` の client secret を取得したら、適切な方法を使用して `GooglePayLauncher` を起動します。`PaymentIntent` を確定する際は、`GooglePayLauncher#presentForPaymentIntent(clientSecret)` を使用します。`SetupIntent` を確定する際は、`GooglePayLauncher#presentForSetupIntent(clientSecret)` を使用します。 #### Kotlin ```kotlin import com.google.android.gms.wallet.button.PayButton class CheckoutActivity : AppCompatActivity() { // fetch client_secret from backend private lateinit var clientSecret: String private lateinit var googlePayButton: PayButton override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // instantiate `googlePayLauncher` googlePayButton.setOnClickListener { // launch `GooglePayLauncher` to confirm a Payment Intent googlePayLauncher.presentForPaymentIntent(clientSecret) } } } ``` ## 結果を処理する 最後に、`GooglePayLauncher.ResultCallback` を実装して、`GooglePayLauncher` の動作結果を処理します。 結果は、`GooglePayLauncher.Result.Completed`、`GooglePayLauncher.Result.Canceled`、または `GooglePayLauncher.Result.Failed` になります。 #### Kotlin ```kotlin class CheckoutActivity : AppCompatActivity() { // continued from above private fun onGooglePayResult(result: GooglePayLauncher.Result) { when (result) { GooglePayLauncher.Result.Completed -> { // Payment succeeded, show a receipt view } GooglePayLauncher.Result.Canceled -> { // User canceled the operation } is GooglePayLauncher.Result.Failed -> { // Operation failed; inspect `result.error` for the exception } } } } ``` ## Google Pay を本番環境に移行する [Google の指示](https://developers.google.com/pay/api/android/guides/test-and-deploy/request-prod-access) に従ってアプリの本番環境でのアクセスをリクエストします。メッセージが表示されたら、連携タイプに **Gateway (ゲートウェイ)** を選択し、審査のためにアプリのスクリーンショットを提供します。 アプリが承認されたら、環境を `GooglePayEnvironment.Production` に設定し、署名済みのアプリのリリースビルドから Google Pay を起動して、本番環境で連携をテストします。この際に*本番環境* (Use this mode when you’re ready to launch your app. Card networks or payment providers process payments) [API キー](https://docs.stripe.com/keys.md)を使用することを忘れないでください。[`capture_method` = `manual`](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-capture_method) を指定した `PaymentIntent` を使用すると、支払いをキャプチャーせずに取引を処理できます。 ### Google Pay をテストする Google では、[テストクレジットカードスイート](https://developers.google.com/pay/api/android/guides/resources/test-card-suite) を使用してテスト決済を行うことができます。Stripe [テストカード](https://docs.stripe.com/testing.md) をテストスイートと併用できます。 Google Pay がサポートされている国では、シミュレーションされたデバイスではなく、物理的な Android デバイスを使用して Google Pay をテストする必要があります。Google ウォレットに保存した実際のクレジットカードを使用して、テスト用デバイスの Google アカウントにログインします。 ## PaymentMethod を作成する サーバーで支払いを確認する場合は、`GooglePayPaymentMethodLauncher` を使用して、支払いを確認する代わりに `PaymentMethod` のみを収集できます。 #### Kotlin ```kotlin import com.google.android.gms.wallet.button.PayButton class CheckoutActivity : AppCompatActivity() { private lateinit var googlePayButton: PayButton override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.checkout_activity) PaymentConfiguration.init(this, PUBLISHABLE_KEY) googlePayButton = /* TODO: Initialize button by following Google's guide. */ val googlePayLauncher = GooglePayPaymentMethodLauncher( activity = this, config = GooglePayPaymentMethodLauncher.Config( environment = GooglePayEnvironment.Test, merchantCountryCode = "FR", merchantName = "Widget Store" ), readyCallback = ::onGooglePayReady, resultCallback = ::onGooglePayResult ) googlePayButton.setOnClickListener { googlePayLauncher.present( currencyCode = "EUR", amount = 2500 ) } } private fun onGooglePayReady(isReady: Boolean) { googlePayButton.isEnabled = isReady } private fun onGooglePayResult( result: GooglePayPaymentMethodLauncher.Result ) { when (result) { is GooglePayPaymentMethodLauncher.Result.Completed -> { // Payment details successfully captured. // Send the paymentMethodId to your server to finalize payment. val paymentMethodId = result.paymentMethod.id } GooglePayPaymentMethodLauncher.Result.Canceled -> { // User canceled the operation } is GooglePayPaymentMethodLauncher.Result.Failed -> { // Operation failed; inspect `result.error` for the exception } } } } ``` # React Native > This is a React Native for when platform is react-native. View the full page at https://docs.stripe.com/google-pay?platform=react-native. Stripe の React Native SDK は、React Native アプリで Google Pay の受け付けを開始するための最も早くて簡単な方法です。[PlatformPayButton](https://stripe.dev/stripe-react-native/api-reference/index.html#PlatformPayButton) コンポーネントには Google の必要な UI がラップされており、また `confirmPlatformPayPayment` と `createPlatformPayPaymentMethod` メソッドを使用して、アプリから最小限の設定でシームレスに支払いを回収または作成できます。 > React Native と Expo を使用している場合、Expo Go は Google Pay に対応していません。Google Pay を Expo で使用するには、[開発ビルド](https://docs.expo.dev/get-started/set-up-your-environment/?mode=development-build&platform=android)を作成する必要があります。すでに Expo Go プロジェクトがある場合は、[開発ビルドに移行](https://docs.expo.dev/develop/development-builds/expo-go-to-dev-build/)できます。 ## Stripe を設定する [サーバ側] [クライアント側] ### サーバ側 この組み込みには、Stripe API と通信するエンドポイントがサーバ上に必要です。Stripe の公式ライブラリを使用して、サーバから Stripe API にアクセスします。 #### Ruby ```bash # Available as a gem sudo gem install stripe ``` ```ruby # If you use bundler, you can add this line to your Gemfile gem 'stripe' ``` ### クライアント側 [React Native SDK](https://github.com/stripe/stripe-react-native) はオープンソースであり、詳細なドキュメントが提供されています。内部では、[ネイティブの iOS](https://github.com/stripe/stripe-ios) および [Android](https://github.com/stripe/stripe-android) の SDK を使用します。Stripe の React Native SDK をインストールするには、プロジェクトのディレクトリーで (使用するパッケージマネージャーによって異なる) 次のいずれかのコマンドを実行します。 #### yarn ```bash yarn add @stripe/stripe-react-native ``` #### npm ```bash npm install @stripe/stripe-react-native ``` 次に、その他の必要な依存関係をインストールします。 - iOS の場合は、**ios** ディレクトリに移動して `pod install` を実行し、必要なネイティブ依存関係もインストールします。 - Android の場合は、依存関係をインストールする必要はありません。 > [公式の TypeScript ガイド](https://reactnative.dev/docs/typescript#adding-typescript-to-an-existing-project)に従って TypeScript のサポートを追加することをお勧めします。 ### Stripe の初期化 React Native アプリで Stripe を初期化するには、決済画面を `StripeProvider` コンポーネントでラップするか、`initStripe` 初期化メソッドを使用します。`publishableKey` の API [公開可能キー](https://docs.stripe.com/keys.md#obtain-api-keys)のみが必要です。次の例は、`StripeProvider` コンポーネントを使用して Stripe を初期化する方法を示しています。 ```jsx import { useState, useEffect } from 'react'; import { StripeProvider } from '@stripe/stripe-react-native'; function App() { const [publishableKey, setPublishableKey] = useState(''); const fetchPublishableKey = async () => { const key = await fetchKey(); // fetch key from your server here setPublishableKey(key); }; useEffect(() => { fetchPublishableKey(); }, []); return ( {/* Your app code here */} ); } ``` > テストおよび開発時には API の[テストキー](https://docs.stripe.com/keys.md#obtain-api-keys)を使用し、アプリの公開時には[本番環境](https://docs.stripe.com/keys.md#test-live-modes)キーを使用します。 ## Google Pay を有効にする Google Pay を使用するには、まず以下を **AndroidManifest.xml** の `` に追加し、Google Pay API を有効化します。 ```xml ... ``` 詳細は、Google Pay の Android 向け [Google Pay API を設定する](https://developers.google.com/pay/api/android/guides/setup) を参照してください。 ## PaymentIntent を作成する [サーバー側] まず、サーバーで `PaymentIntent` を作成し、回収する金額と通貨を指定します。すでに [Payment Intents API](https://docs.stripe.com/payments/payment-intents.md) を使用したシステムがある場合は、`card` を `PaymentIntent` の[支払い方法のタイプ](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_types)のリストに追加します (これは、何も指定しなかった場合のデフォルトの支払い方法でもあります)。 ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]"=card \ -d amount=1099 \ -d currency=usd ``` PaymentIntent には *client secret* (The client secret is a unique key returned from Stripe as part of a PaymentIntent. This key lets the client access important fields from the PaymentIntent (status, amount, currency) while hiding sensitive ones (metadata, customer)) が含まれています。これを React Native アプリで使用することで、PaymentIntent オブジェクト全体を渡すことなく安全に支払いプロセスを完了できます。アプリで、サーバーの PaymentIntent をリクエストし、その client secret を保存します。 ## Google Pay を初期化する [クライアント側] まず、`isPlatformPaySupported` を呼び出して、デバイスが Google Pay をサポートしているかどうかを確認します。 ```javascript import { usePlatformPay } from '@stripe/stripe-react-native'; function PaymentScreen() { const { isPlatformPaySupported } = usePlatformPay(); React.useEffect(() => { (async function () { if (!(await isPlatformPaySupported({ googlePay: {testEnv: true} }))) { Alert.alert('Google Pay is not supported.'); return; } })(); }, []); ... return ( ... ); } ``` ## Google Pay 支払い画面を表示する [クライアント側] Google Pay が利用可能であることが分かり、アプリが `PaymentIntent` または `SetupIntent` の client secret を取得したら、`confirmPlatformPayPayment` を呼び出します。`SetupIntent` を確定する際は、代わりに `confirmPlatformPaySetupIntent` を使用します。 ```javascript import {PlatformPayButton, usePlatformPay} from '@stripe/stripe-react-native'; function PaymentScreen() { const { isPlatformPaySupported, confirmPlatformPayPayment, } = usePlatformPay(); React.useEffect(() => { ... // see above }, []); const fetchPaymentIntentClientSecret = async () => { // Fetch payment intent created on the server, see above const response = await fetch(`${API_URL}/create-payment-intent`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ currency: 'usd', }), }); const { clientSecret } = await response.json(); return clientSecret; }; const pay = async () => { const clientSecret = await fetchPaymentIntentClientSecret(); const { error, paymentIntent } = await confirmPlatformPayPayment( clientSecret, { googlePay: { testEnv: true, merchantName: 'My merchant name', merchantCountryCode: 'US', currencyCode: 'USD', billingAddressConfig: { format: PlatformPay.BillingAddressFormat.Full, isPhoneNumberRequired: true, isRequired: true, }, }, } ); if (error) { Alert.alert(error.code, error.message); // Update UI to prompt user to retry payment (and possibly another payment method) return; } Alert.alert('Success', 'The payment was confirmed successfully.'); console.log(JSON.stringify(paymentIntent, null, 2)); }; return ( ); } ``` ## Optional: PaymentMethod を作成する [クライアント側] サーバーで支払いを確定する場合は、Google Pay を使用して、支払いを確定する代わりに `PaymentMethod` の収集のみを実行できます。このコールを行うには、`createPlatformPayPaymentMethod` メソッドを使用します。 ```javascript import {PlatformPayButton, usePlatformPay} from '@stripe/stripe-react-native'; function PaymentScreen() { const { isPlatformPaySupported, createPlatformPayPaymentMethod, } = usePlatformPay(); React.useEffect(() => { ... // see above }, []); const createPaymentMethod = async () => { const { error, paymentMethod } = await createPlatformPayPaymentMethod({ googlePay: { amount: 12, currencyCode: 'USD', testEnv: true, merchantName: 'Test', merchantCountryCode: 'US', }, }); if (error) { Alert.alert(error.code, error.message); return; } else if (paymentMethod) { Alert.alert( 'Success', `The payment method was created successfully. paymentMethodId: ${paymentMethod.id}` ); } }; return ( ); } ``` ## Google Pay を本番環境に移行する [Google の指示](https://developers.google.com/pay/api/android/guides/test-and-deploy/request-prod-access) に従ってアプリの本番環境でのアクセスをリクエストします。メッセージが表示されたら、連携タイプに **Gateway (ゲートウェイ)** を選択し、審査のためにアプリのスクリーンショットを提供します。 アプリが承認されたら、`testEnv: false` を使用し、署名済みのアプリのリリースビルドから Google Pay を起動して、本番環境で連携をテストします。この際に*本番環境* (Use this mode when you’re ready to launch your app. Card networks or payment providers process payments) [API キー](https://docs.stripe.com/keys.md)を使用することを忘れないでください。[`capture_method` = `manual`](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-capture_method) を指定した `PaymentIntent` を使用すると、支払いをキャプチャーせずに取引を処理できます。 ### Google Pay をテストする Google では、[テストクレジットカードスイート](https://developers.google.com/pay/api/android/guides/resources/test-card-suite) を使用してテスト決済を行うことができます。Stripe [テストカード](https://docs.stripe.com/testing.md) をテストスイートと併用できます。 Google Pay がサポートされている国では、シミュレーションされたデバイスではなく、物理的な Android デバイスを使用して Google Pay をテストする必要があります。Google ウォレットに保存した実際のクレジットカードを使用して、テスト用デバイスの Google アカウントにログインします。 # ウェブ > This is a ウェブ for when platform is web. View the full page at https://docs.stripe.com/google-pay?platform=web. ## ウェブで Google Pay を受け付け [決済手段の設定](https://dashboard.stripe.com/settings/payment_methods)で Google Pay を有効にすると、[Checkout](https://docs.stripe.com/payments/checkout.md) または [Elements](https://docs.stripe.com/payments/elements.md) を使用してウェブで Google Pay 決済を受け付けることができます。Checkout で Google Pay を使用するために追加のコード実装は不要です。Elements の場合、ウェブサイトに Google Pay を追加する方法については、[Express Checkout Element](https://docs.stripe.com/elements/express-checkout-element.md) または[決済の受け付け](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=elements&api-integration=checkout)ガイドを参照してください。 ウェブで Google Pay 支払いを受け付けるには、HTTPS ウェブページで TLS ドメイン認証の証明書を発行する必要があります。 ### Google Pay にドメイン登録する Google Pay を使用するには、Google Pay ボタンが表示されているすべてのウェブドメインを登録する必要があります。これには、本番環境とテスト版のトップレベルドメイン (**stripe.com**など) とサブドメイン (**shop.stripe.com**など) が含まれます。 > #### サブドメイン > > `www` は、合わせて登録が必要なサブドメイン (**www.stripe.com** など) です。 ```curl curl https://api.stripe.com/v1/payment_method_domains \ -u "<>:" \ -d domain_name="example.com" ``` [ダイレクト支払い](https://docs.stripe.com/connect/direct-charges.md)を*Connect* (Connect is Stripe's solution for multi-party businesses, such as marketplace or software platforms, to route payments between sellers, customers, and other recipients)と組み合わせて使用する場合、API を使用して連結されたアカウントごとに、ドメインを設定する必要があります。これは、他の支払いタイプを使用している連結アカウント要件ではありません。 ドメインを登録したら、本番環境用の API キーを使用して、サイトで支払いを作成できます。 ## Google Pay をテストする Google では、[テストカードスイート](https://developers.google.com/pay/api/android/guides/resources/test-card-suite) を使用してテスト決済を行うことができます。Stripe [テストカード](https://docs.stripe.com/testing.md) をテストスイートと併用できます。 Stripeのテストカードを使用する前に、Google Payが表示されるようにウォレットに本物のカードを追加しておく必要があります。デバイスおよび連携の要件を満たしていない場合、Stripe は Google Pay を決済オプションとして表示しません。Google Pay の表示に関する問題のトラブルシューティングを行うには、弊社の [テストページ](https://docs.stripe.com/testing/wallets.md) をご利用ください。 ## 不審請求の申請 利用者は自身の Google Pay アカウントを使用して支払いを承認する必要があり、これによって不正使用や未承認の支払いを減らすことができます。それでも、支払いの完了後に利用者が不審請求の申請を行う場合があります。不審請求の申請に異議を申し立てる反証資料は、直接提出することができます。不審請求の申請プロセスはカード支払いと同じです。[不審請求の申請に対応する](https://docs.stripe.com/disputes/responding.md)方法をご覧ください。 ### Google Pay 支払いのライアビリティシフト Google Pay は世界各地での [ライアビリティシフト](https://docs.stripe.com/payments/3d-secure/authentication-flow.md#disputed-payments) に対応しています。Stripe が提供するプロダクトのユーザーと Stripe.js を使用するユーザーは自動的に適用されます。Stripe が提供するプロダクト以外が Visa の取引の場合、Google Pay & ウォレットコンソールでライアビリティシフトを有効にする必要があります。これを行うには、_**Google Pay & ウォレットコンソール**_に移動し、左側のナビゲーションバーで _**Google Pay API**_を選択して、ライアビリティシフト保護の _**Visa デバイストークンの不正利用によるライアビリティ保護**_を有効にします。 Google Pay の取引には、3 つのユースケースがあります。 1. ユーザーがモバイルデバイスを使用して、Google Pay アプリにカードを追加する場合、このカードは DPAN (デバイスプライマリアカウント番号) として保存され、デフォルトでライアビリティシフトに対応します。 1. ユーザーが Chrome や Google サービス (YouTube、Google Play など) にカードを追加すると、そのカードは Funding Primary Account Number (FPAN) として保存されます。[3D セキュア](https://docs.stripe.com/payments/3d-secure.md)利用時には、Visa を含むすべての主要ネットワークのライアビリティシフトが全世界でサポートされます。[Stripe Radar ルール](https://docs.stripe.com/radar/rules.md#request-3d-secure)をカスタマイズして 3D セキュアの有効化をリクエストできます。 1. ユーザーが EC ストアサイトで支払い方法として Google Pay を選択したり、 Google Pay で支払うアプリを選択する場合、カードは登録済みのカードを表す EC ストアトークンとして保存されます。ライアビリティシフトも 3D セキュアも、現時点では EC ストアトークンでサポートされていません。 Sigma ユーザーの場合、`charges` テーブルには Google Pay の取引タイプを示す `card_token_type` フィールドが格納されます。FPAN 取引は `card_token_type` を `fpan` に設定します。DPAN および EC ストアトークンの取引は、`card_token_type` を `dpan_or_ecommerce_token` に設定します。 ## 返金 成功した Google Pay の支払いは、一部返金または全額返金することができます。返金プロセスはカード支払いの場合と同じです。返金の開始または管理の手順については、[支払いの返金とキャンセル](https://docs.stripe.com/refunds.md)をご覧ください。