# Google Pay Pelajari cara menerima pembayaran menggunakan Google Pay. Untuk informasi tentang biaya transaksi metode pembayaran, lihat [detail skema biaya](https://stripe.com/pricing/local-payment-methods). Google Pay memungkinkan pelanggan melakukan pembayaran di aplikasi atau situs web Anda menggunakan kartu kredit atau debit yang disimpan ke Akun Google mereka, termasuk yang dari Google Play, YouTube, Chrome, atau perangkat Android. Gunakan Google Pay API untuk meminta kartu kredit atau debit yang disimpan di akun Google pelanggan Anda. Google Pay sepenuhnya kompatibel dengan produk dan fitur Stripe (misalnya, pembayaran rutin), sehingga Anda dapat menggunakannya sebagai pengganti formulir pembayaran tradisional bila memungkinkan. Gunakan Google Pay untuk menerima pembayaran barang fisik, donasi, *langganan* (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), dan lain-lain. > #### Ketentuan Google Pay > > Dengan mengintegrasikan Google Pay, Anda menyetujui [ketentuan layanan](https://payments.developers.google.com/terms/sellertos) Google. #### Properti metode pembayaran - **Lokasi pelanggan** Di seluruh dunia, kecuali India - **Mata uang transaksi** Lihat [mata uang transaksi yang didukung](https://docs.stripe.com/currencies.md#presentment-currencies) - **Konfirmasi pembayaran** Diprakarsai pelanggan - **Kelompok metode pembayaran** Dompet digital - **Pembayaran rutin** Ya - **Pengaturan waktu payout** Berlaku pengaturan waktu payout standar - **Dukungan Connect** Ya - **Dukungan sengketa** [Ya](https://docs.stripe.com/google-pay.md#disputed-payments) - **Dukungan penarikan manual** Ya - **Pengembalian dana/Pengembalian dana sebagian** [Ya / Ya](https://docs.stripe.com/google-pay.md#refunds) #### Lokasi bisnis Akun Stripe di seluruh dunia, kecuali India, dapat menerima pembayaran Google Pay dengan penyelesaian mata uang lokal. #### Dukungan produk - Connect - Checkout - Payment Links - Elements - Subscriptions - Invoicing ## Menggunakan Stripe dan Google Pay dibandingkan sistem tagihan Google Play Panduan ini menjelaskan cara mengonfigurasi aplikasi Anda agar dapat menerima Google Pay untuk pembelian barang fisik, layanan, dan item lain yang memenuhi syarat. Stripe akan memproses pembayaran tersebut, dan Anda hanya dikenakan [biaya pemrosesan](https://stripe.com/pricing) dari Stripe. Untuk produk digital, konten, dan langganan yang dijual di Amerika Serikat atau Wilayah Ekonomi Eropa (EEA), aplikasi Android Anda dapat menerima pembayaran langsung di dalam aplikasi melalui prosesor pembayaran pihak ketiga seperti Stripe. Anda dapat menggunakan antarmuka pembayaran berikut: - [Elemen Pembayaran Seluler](https://docs.stripe.com/payments/mobile.md) untuk menerima pembayaran langsung di dalam aplikasi - [Stripe Checkout](https://docs.stripe.com/mobile/digital-goods/checkout.md) untuk mengarahkan pelanggan ke halaman pembayaran yang dihosting Stripe - [Payment Links](https://docs.stripe.com/mobile/digital-goods/payment-links.md) untuk jumlah produk dan harga yang terbatas Untuk informasi selengkapnya tentang pembelian mana yang harus menggunakan sistem tagihan Google Play, lihat [ketentuan pengembang](https://support.google.com/googleplay/android-developer/answer/10281818) Google Play. # Android > This is a Android for when platform is android. View the full page at https://docs.stripe.com/google-pay?platform=android. ## Setujui pembayaran menggunakan Google Pay di aplikasi Android Anda `GooglePayLauncher`, bagian dari Stripe Android SDK, adalah cara tercepat dan termudah untuk mulai menyetujui Google Pay di aplikasi Android Anda. ## Prasyarat Untuk mendukung Google Pay di Android, Anda memerlukan hal berikut ini: - `minSdkVersion` dari `19` atau lebih tinggi. - `compileSdkVersion` dari `28` atau lebih tinggi. Selain itu, jika ingin mencoba dengan perangkat sendiri, Anda perlu [menambahkan metode pembayaran ke Akun Google](https://support.google.com/wallet/answer/12058983?visit_id=637947092743186187-653786796&rd=1). ## Siapkan integrasi Anda Panduan ini beranggapan Anda menggunakan versi terbaru Stripe Android SDK. #### Groovy ```groovy dependencies { implementation 'com.stripe:stripe-android:23.2.0' } ``` Untuk menggunakan Google Pay, pertama aktifkan Google Pay API dengan menambahkan yang berikut ini ke tag `` **AndroidManifest.xml** Anda: ```xml ... ``` Untuk detail selengkapnya, lihat [Siapkan Google Pay API](https://developers.google.com/pay/api/android/guides/setup) untuk Android dari Google Pay. ## Buat PaymentIntent ### Sisi server Buat `PaymentIntent` di server Anda dengan [jumlah](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount) dan [mata uang](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-currency). Selalu putuskan berapa banyak yang akan di-charge di sisi server, suatu lingkungan tepercaya, bukan ke client. Hal ini mencegah yang pelanggan berniat jahat memilih harganya sendiri. #### curl ```bash curl https://api.stripe.com/v1/payment_intents \ -u <>: \ -d "amount"=1099 \ -d "currency"="usd" ``` ### Sisi client PaymentIntent menyertakan *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)). Anda dapat menggunakan client secret di aplikasi React Native untuk menyelesaikan proses pembayaran dengan aman, bukan meneruskan seluruh objek PaymentIntent kembali. Di aplikasi, minta PaymentIntent dari server Anda dan simpan client secret-nya. #### 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 } } ``` ## Tambahkan tombol Google Pay Tambahkan tombol Google Pay ke aplikasi Anda dengan mengikuti [tutorial Google](https://developers.google.com/pay/api/android/guides/tutorial#add-button). Ini untuk memastikan Anda menggunakan aset yang tepat. ## Buat instance GooglePayLauncher Berikutnya, buat instance [GooglePayLauncher](https://github.com/stripe/stripe-android/blob/master/payments-core/src/main/java/com/stripe/android/googlepaylauncher/GooglePayLauncher.kt) dalam `Activity` atau `Fragment`. Ini harus dilakukan di `Activity#onCreate()`. `GooglePayLauncher.Config` mengekspos properti yang diperlukan maupun opsional yang mengonfigurasi `GooglePayLauncher`. Lihat `GooglePayLauncher.Config` untuk detail selengkapnya mengenai opsi konfigurasi. #### 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 } } ``` Setelah membuat instance `GooglePayLauncher`, instance `GooglePayLauncher.ReadyCallback` akan dipanggil dengan flag yang menunjukkan apakah Google Pay tersedia dan siap digunakan. Flag ini dapat digunakan untuk memperbarui UI untuk menandakan kepada pelanggan Anda bahwa Google Pay siap digunakan. #### 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 } } ``` ## Luncurkan GooglePayLauncher Setelah Google Pay tersedia dan aplikasi Anda memperoleh client secret `PaymentIntent` atau `SetupIntent`, luncurkan `GooglePayLauncher`menggunakan metode yang sesuai. Saat mengonfirmasikan `PaymentIntent`, gunakan `GooglePayLauncher#presentForPaymentIntent(clientSecret)`. Saat mengonfirmasikan `SetupIntent`, gunakan `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) } } } ``` ## Tangani hasil Terakhir, implementasikan `GooglePayLauncher.ResultCallback` untuk menangani hasil operasi `GooglePayLauncher`. Hasilnya dapat berupa `GooglePayLauncher.Result.Completed`, `GooglePayLauncher.Result.Canceled`, atau `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 } } } } ``` ## Live dengan Google Pay Ikuti [petunjuk Google](https://developers.google.com/pay/api/android/guides/test-and-deploy/request-prod-access) untuk meminta akses produksi bagi aplikasi Anda. Pilih tipe integrasi **Gateway** bila diminta, dan berikan cuplikan layar aplikasi Anda untuk ditinjau. Setelah aplikasi disetujui, coba integrasi Anda dalam produksi dengan mengatur lingkungan ke `GooglePayEnvironment.Production`, dan meluncurkan Google Pay dari build rilis aplikasi Anda yang ditandatangani. Ingatlah untuk menggunakan [kunci API](https://docs.stripe.com/keys.md) *mode live* (Use this mode when you’re ready to launch your app. Card networks or payment providers process payments). Anda dapat menggunakan `PaymentIntent` dengan [`capture_method` = `manual`](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-capture_method) untuk memproses transaksi tanpa menarik pembayaran. ### Google Pay percobaan Google mengizinkan Anda melakukan pembayaran melalui [Rangkaian kartu percobaan](https://developers.google.com/pay/api/android/guides/resources/test-card-suite). Rangkaian kartu percobaan ini mendukung penggunaan [kartu percobaan](https://docs.stripe.com/testing.md) Stripe. Anda harus menguji Google Pay menggunakan perangkat Android fisik, bukan perangkat simulasi, di negara yang mendukung Google Pay. Masuk ke Akun Google pada perangkat percobaan Anda dengan kartu asli yang disimpan di Google Wallet. ## Membuat PaymentMethod Jika Anda mengonfirmasikan pembayaran di server, Anda dapat menggunakan `GooglePayPaymentMethodLauncher` hanya untuk mengumpulkan `PaymentMethod` sebagai ganti mengonfirmasikan pembayaran. #### 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. React Native SDK Stripe adalah cara tercepat dan termudah untuk mulai menerima Google Pay di aplikasi React Native Anda. Komponen [PlatformPayButton](https://stripe.dev/stripe-react-native/api-reference/index.html#PlatformPayButton) membungkus UI yang diperlukan Google, serta Anda dapat menggunakan metode `confirmPlatformPayPayment` dan `createPlatformPayPaymentMethod` untuk mengumpulkan atau membuat pembayaran secara lancar di aplikasi dengan penyiapan minimal. > Jika Anda menggunakan React Native dan Expo, Expo Go tidak mendukung Google Pay. Untuk menggunakan Google Pay dengan Expo, Anda harus membuat [build pengembangan](https://docs.expo.dev/get-started/set-up-your-environment/?mode=development-build&platform=android). Jika Anda sudah memiliki proyek Expo Go, Anda dapat [memigrasikannya ke build pengembangan](https://docs.expo.dev/develop/development-builds/expo-go-to-dev-build/). ## Siapkan Stripe [Sisi server] [Sisi client] ### Sisi server Integrasi ini memerlukan endpoint di server Anda yang berbicara dengan API Stripe. Gunakan pustaka resmi kami untuk akses ke API Stripe dari server Anda: #### 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' ``` ### Sisi client [React Native SDK](https://github.com/stripe/stripe-react-native) adalah sumber terbuka dan didokumentasikan lengkap. Secara internal, SDK [iOS asli](https://github.com/stripe/stripe-ios) dan SDK [Android](https://github.com/stripe/stripe-android) digunakan. Untuk menginstal React Native SDK Stripe, jalankan salah satu perintah berikut di direktori proyek (bergantung pada manajer paket yang Anda gunakan): #### yarn ```bash yarn add @stripe/stripe-react-native ``` #### npm ```bash npm install @stripe/stripe-react-native ``` Selanjutnya, instal beberapa dependensi lain yang diperlukan: - Untuk iOS, buka direktori **ios** dan jalankan `pod install` untuk memastikan bahwa Anda juga menginstal dependensi asli yang diperlukan. - Untuk Android, tidak ada lagi ketergantungan yang harus diinstal. > Sebaiknya ikuti [panduan TypeScript resmi](https://reactnative.dev/docs/typescript#adding-typescript-to-an-existing-project) untuk menambahkan dukungan TypeScript. ### Inisialisasi Stripe Untuk menginisialisasi Stripe di aplikasi React Native, bungkus layar pembayaran dengan komponen `StripeProvider`, atau gunakan metode inisialisasi `initStripe`. Hanya [kunci yang dapat dipublikasikan](https://docs.stripe.com/keys.md#obtain-api-keys) API di `publishableKey` yang diperlukan. Contoh berikut menunjukkan cara menginisialisasi Stripe menggunakan komponen `StripeProvider`. ```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 */} ); } ``` > Gunakan [kunci percobaan](https://docs.stripe.com/keys.md#obtain-api-keys) API Anda saat mencoba serta mengembangkan, dan kunci [mode live](https://docs.stripe.com/keys.md#test-live-modes) bila Anda memublikasikan aplikasi. ## Aktifkan Google Pay Untuk menggunakan Google Pay, pertama aktifkan Google Pay API dengan menambahkan yang berikut ini ke tag `` **AndroidManifest.xml** Anda: ```xml ... ``` Untuk detail selengkapnya, lihat [Siapkan Google Pay API](https://developers.google.com/pay/api/android/guides/setup) untuk Android dari Google Pay. ## Buat PaymentIntent [Sisi server] Pertama, buat `PaymentIntent` pada server Anda serta tentukan jumlah yang akan dikumpulkan dan mata uangnya. Jika Anda sudah memiliki integrasi menggunakan [Payment Intents API](https://docs.stripe.com/payments/payment-intents.md), tambahkan `card` ke daftar [tipe metode pembayaran](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_types) untuk `PaymentIntent` (ini juga merupakan metode pembayaran default jika tidak ada yang diberikan): ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=card" \ -d amount=1099 \ -d currency=usd ``` PaymentIntent menyertakan *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)). Anda dapat menggunakan client secret di aplikasi React Native untuk menyelesaikan proses pembayaran dengan aman, bukan meneruskan seluruh objek PaymentIntent kembali. Di aplikasi, minta PaymentIntent dari server Anda dan simpan client secret-nya. ## Inisialisasikan Google Pay [Sisi klien] Pertama, periksa apakah perangkat mendukung Google Pay dengan memanggil `isPlatformPaySupported`. ```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 ( ... ); } ``` ## Tampilkan lembar Google Pay [Sisi klien] Setelah Anda mengetahui bahwa Google Pay tersedia dan aplikasi Anda telah memperoleh client secret `PaymentIntent` atau `SetupIntent`, panggil `confirmPlatformPayPayment`. Saat mengonfirmasi `SetupIntent`, gunakan `confirmPlatformPaySetupIntent` sebagai gantinya. ```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: Create a PaymentMethod [Sisi klien] Jika mengonfirmasi pembayaran pada server, Anda dapat menggunakan Google Pay untuk hanya mengumpulkan `PaymentMethod`, bukan mengonfirmasi pembayaran. Untuk melakukan panggilan itu, gunakan metode `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 ( ); } ``` ## Live dengan Google Pay Ikuti [petunjuk Google](https://developers.google.com/pay/api/android/guides/test-and-deploy/request-prod-access) untuk meminta akses produksi bagi aplikasi Anda. Pilih tipe integrasi **Gateway** bila diminta, dan berikan cuplikan layar aplikasi Anda untuk ditinjau. Setelah aplikasi disetujui, coba integrasi Anda dalam produksi dengan menggunakan `testEnv: false`, dan meluncurkan Google Pay dari build rilis aplikasi Anda yang ditandatangani. Ingatlah untuk menggunakan [kunci API](https://docs.stripe.com/keys.md) *mode live* (Use this mode when you’re ready to launch your app. Card networks or payment providers process payments). Anda dapat menggunakan `PaymentIntent` dengan [`capture_method` = `manual`](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-capture_method) untuk memproses transaksi tanpa menarik pembayaran. ### Google Pay percobaan Google mengizinkan Anda melakukan pembayaran melalui [Rangkaian kartu percobaan](https://developers.google.com/pay/api/android/guides/resources/test-card-suite). Rangkaian kartu percobaan ini mendukung penggunaan [kartu percobaan](https://docs.stripe.com/testing.md) Stripe. Anda harus menguji Google Pay menggunakan perangkat Android fisik, bukan perangkat simulasi, di negara yang mendukung Google Pay. Masuk ke Akun Google pada perangkat percobaan Anda dengan kartu asli yang disimpan di Google Wallet. # Web > This is a Web for when platform is web. View the full page at https://docs.stripe.com/google-pay?platform=web. ## Terima Google Pay di web Anda dapat menerima pembayaran Google Pay di web menggunakan [Checkout](https://docs.stripe.com/payments/checkout.md) atau [Elements](https://docs.stripe.com/payments/elements.md) dengan mengaktifkan Google Pay di [pengaturan metode pembayaran](https://dashboard.stripe.com/settings/payment_methods) Anda. Menggunakan Google Pay di Checkout tidak memerlukan penerapan kode tambahan. Untuk Element, lihat panduan [Express Checkout Element](https://docs.stripe.com/elements/express-checkout-element.md) atau [Menerima pembayaran](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=elements&api-integration=checkout) untuk mempelajari cara menambahkan Google Pay ke situs Anda. Anda perlu melayani dari halaman web HTTPS dengan sertifikat yang divalidasi domain TLS untuk menerima pembayaran Google Pay pada web. ### Daftarkan domain Anda dengan Google Pay Untuk menggunakan Google Pay, Anda harus mendaftarkan semua domain web yang menampilkan tombol Google Pay. Ini termasuk domain tingkat atas (misalnya, **stripe.com**) dan subdomain (misalnya, **shop.stripe.com**), dalam produksi dan pengujian. > #### Subdomain > > `www` adalah subdomain (misalnya, **www.stripe.com**) yang juga harus anda daftarkan. Register your domain on the [Payment methods domains page](https://dashboard.stripe.com/settings/payment_method_domains) in the Dashboard or use the API with your live secret key, as shown in the following example. Register your domain only once per account. ```curl curl https://api.stripe.com/v1/payment_method_domains \ -u "<>:" \ -d "domain_name=example.com" ``` Ketika menggunakan [direct charges](https://docs.stripe.com/connect/direct-charges.md) dengan *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), Anda perlu mengonfigurasi domain untuk setiap akun terhubung menggunakan API. Ini bukan merupakan persyaratan untuk akun terhubung yang menggunakan jenis biaya lainnya. Setelah mendaftarkan domain, Anda dapat melakukan pembayaran di situs Anda dengan kunci API live. ## Google Pay percobaan Google mengizinkan Anda untuk melakukan pembayaran tes melalui [Rangkaian kartu percobaan](https://developers.google.com/pay/api/android/guides/resources/test-card-suite). Anda dapat menggunakan [kartu percobaan](https://docs.stripe.com/testing.md) Stripe dengan rangkaian kartu percobaan. Sebelum Anda dapat menggunakan kartu uji Stripe, Anda harus menambahkan kartu asli ke dompet Anda agar Google Pay dapat ditampilkan. Jika Anda tidak memenuhi persyaratan perangkat dan integrasi, Stripe tidak akan menampilkan Google Pay sebagai opsi pembayaran. Untuk mengatasi masalah rendering dengan Google Pay, gunakan [halaman percobaan](https://docs.stripe.com/testing/wallets.md). ## Sengketa Pengguna harus mengautentikasi pembayaran dengan rekening Google Pay, yang mengurangi risiko penipuan atau pembayaran yang tidak diakui. Namun, pengguna masih dapat mempersengketakan transaksi setelah menyelesaikan pembayaran. Anda dapat mengajukan bukti untuk membantah sengketa secara langsung. Proses sengketa sama seperti proses pembayaran kartu. Pelajari cara [menangani sengketa](https://docs.stripe.com/disputes/responding.md). ### Pengalihan pertanggungjawaban untuk charge Google Pay Google Pay mendukung [pengalihan pertanggungjawaban](https://docs.stripe.com/payments/3d-secure/authentication-flow.md#disputed-payments) secara global. Hal ini berlaku secara otomatis untuk pengguna di produk yang dihosting Stripe dan menggunakan Stripe.js. Untuk transaksi Visa di luar produk yang dihosting Stripe, Anda harus mengaktifkan pengalihan pertanggungjawaban di Konsol Google Pay & Dompet Digital. Untuk melakukannya, buka ***Konsol Google Pay & Dompet Digital*** Anda, pilih ***Google Pay API*** di bilah navigasi di sebelah kiri, lalu aktifkan ***Proteksi Penipuan untuk Token Perangkat Visa*** untuk pengalihan pertanggungjawaban. Ada tiga contoh penggunaan dari transaksi Google Pay: 1. Jika pengguna menambahkan kartu ke aplikasi Google Pay menggunakan perangkat seluler, kartu ini disimpan sebagai Device Primary Account Number (DPAN), dan mendukung pengalihan pertanggungjawaban secara default. 1. Jika pengguna menambahkan kartu ke Chrome atau properti Google (misalnya, YouTube, atau Play), kartu ini disimpan sebagai Nomor Akun Utama Pendanaan (FPAN). Bila Anda menggunakan [3D Secure](https://docs.stripe.com/payments/3d-secure.md), kami secara global mendukung pengalihan pertanggungjawaban untuk semua jaringan utama, termasuk Visa. Anda dapat menyesuaikan aturan [Stripe Radar](https://docs.stripe.com/radar/rules.md#request-3d-secure) untuk meminta aktivasi 3D Secure. 1. Jika pengguna memilih Google Pay sebagai metode pembayaran di situs ecommerce atau dalam aplikasi yang membayar dengan Google Pay, kartu tersebut disimpan sebagai token ecommerce yang mewakili kartu di file. Baik pengalihan pertanggungjawaban maupun 3D Secure tidak didukung untuk token ecommerce saat ini. Untuk pengguna Sigma, tabel `charges` berisi bidang `card_token_type` yang menunjukkan jenis transaksi Google Pay. Transaksi FPAN menetapkan `card_token_type` ke `fpan`. Transaksi token DPAN dan ecommerce mengatur `card_token_type` ke `dpan_or_ecommerce_token`. ## Pengembalian dana Anda dapat mengembalikan sebagian atau seluruh pembayaran Google Pay yang berhasil. Proses pengembalian dana sama dengan yang digunakan dalam pembayaran kartu. Lihat [Kembalikan dana dan batalkan pembayaran](https://docs.stripe.com/refunds.md) untuk petunjuk tentang memulai atau menangani pengembalian dana.