Google Pay
Receba pagamentos pelo Google Pay.
O Google Pay permite fazer pagamentos no seu aplicativo ou site com qualquer cartão de crédito ou débito salvo na conta do Google, inclusive no Google Play, YouTube, Chrome ou aparelho Android. Use a API Google Pay para solicitar cartões de crédito ou débito armazenados na conta do seu cliente.
O Google Pay é totalmente compatível com os produtos e recursos da Stripe (por exemplo, pagamentos recorrentes), permitindo que você o utilize no lugar de uma forma de pagamento tradicional sempre que for possível. Use-o para aceitar pagamentos referentes a produtos físicos, doações, assinaturas e assim por diante.
Uso da Stripe e Google Pay x sistema de faturamento do Google Play
Para vendas de mercadorias e serviços físicos, seu aplicativo pode aceitar Google Pay ou qualquer forma de pagamento aceita pela Stripe. Esses pagamentos são processados pela Stripe, e você só precisa pagar as tarifas de processamento da Stripe. No entanto, compras de produtos e conteúdos digitais no aplicativo devem usar o sistema de faturamento do Google Play. Esses pagamentos são processados pelo Google e estão sujeitos às tarifas de transação do Google.
Para obter mais informações sobre quais compras devem usar o sistema de faturamento do Google Play, consulte os termos para desenvolvedores do Google Play.
O SDK do React Native da Stripe é a maneira mais rápida e simples de começar a aceitar Google Pay nos seus aplicativos React Native. O componente PlatformPayButton inclui a IU obrigatória do Google, e você pode usar os métodos confirmPlatformPayPayment
e createPlatformPayPaymentMethod
para coletar ou criar pagamentos no seu aplicativo facilmente e com o mínimo de configuração.
Configurar a StripeLado do servidorLado do cliente
Servidor
Esta integração exige que os endpoints do seu servidor se comuniquem com a API da Stripe. Use nossas bibliotecas oficiais para acessar a API da Stripe a partir do seu servidor:
Cliente
O SDK do React Native é de código aberto e totalmente documentado. Internamente, utiliza as SDKs de iOS nativo e Android. Para instalar o SDK do React Native da Stripe, execute um dos seguintes comandos no diretório do seu projeto (dependendo de qual gerenciador de pacotes você usa):
Em seguida, instale algumas outras dependências necessárias:
- Para iOS, vá até o diretório ios e execute
pod install
para garantir a instalação das dependências nativas necessárias. - Para Android, não há mais dependências para instalar.
Inicialização da Stripe
To initialize Stripe in your React Native app, either wrap your payment screen with the StripeProvider
component, or use the initStripe
initialization method. Only the API publishable key in publishableKey
is required. The following example shows how to initialize Stripe using the StripeProvider
component.
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 ( <StripeProvider publishableKey={publishableKey} merchantIdentifier="merchant.identifier" // required for Apple Pay urlScheme="your-url-scheme" // required for 3D Secure and bank redirects > // Your app code here </StripeProvider> ); }
Ativar Google Pay
Para usar o Google Pay, habilite a API Google Pay adicionando o seguinte à <application>
tag do seu AndroidManifest.xml:
<application> ... <meta-data android:name="com.google.android.gms.wallet.api.enabled" android:value="true" /> </application>
Veja mais detalhes na Configuração da API Google Pay do Google Pay para Android.
Crie um PaymentIntentLado do servidor
Primeiro, crie um PaymentIntent
no seu servidor e especifique o valor a ser coletado e a moeda. Se já tiver uma integração que usa a API Payment Intents, adicione card
à lista de tipos de forma de pagamento para o seu PaymentIntent
(essa também é a forma de pagamento padrão se nenhuma for informada):
Um PaymentIntent inclui um client secretsegredo do cliente. Você pode usar o segredo do cliente no aplicativo React Native para concluir o processo de pagamento em vez de passar de volta todo o objeto PaymentIntent. No aplicativo, solicite um PaymentIntent do seu servidor e armazene o segredo do cliente.
Inicializar o Google PayDo lado do cliente
Primeiro, verifique se o dispositivo aceita ou não o Google Pay chamando isPlatformPaySupported
.
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 ( <View > ... </View> ); }
Apresentar a planilha do Google PayDo lado do cliente
Após saber que o Google Pay está disponível e que seu aplicativo obteve um segredo do cliente PaymentIntent
ou SetupIntent
, chame confirmPlatformPayPayment
. Ao confirmar um SetupIntent
, use confirmPlatformPaySetupIntent
.
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 } = 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.'); }; return ( <View > <PlatformPayButton type={PlatformPay.ButtonType.Pay} onPress={pay} style={{ width: '100%', height: 50, }} /> </View> ); }
Usar o Google Pay no modo de produção
Siga as instruções do Google para solicitar acesso de produção para seu aplicativo. Escolha o tipo de integração Gateway quando solicitado e forneça capturas de tela do seu aplicativo para análise.
Após a aprovação do aplicativo, teste sua integração em produção usado testEnv: false
e iniciando o Google Pay em uma versão assinada do seu aplicativo. Lembre-se de usar seu modo de produção API keys. Você pode usar um PaymentIntent
com capture_
= manual
para processar uma transação sem capturar o pagamento.
Contestações
Os usuários precisam autenticar os pagamentos com as contas do Google Pay, o que reduz o risco de fraude ou pagamentos não reconhecidos. No entanto, os usuários ainda podem contestar transações após finalizarem o pagamento. Você pode enviar comprovantes para refutar diretamente uma contestação. O processo de contestação é o mesmo dos pagamentos com cartão. Saiba como gerenciar contestações.
Transferência de responsabilidade para cobranças do Google Pay
O Google Pay aceita transferência de responsabilidade no mundo todo. Isso ocorre automaticamente para os usuários em produtos hospedados pela Stripe e que usam o Stripe.js. Para transações da Visa fora de um produto hospedado pela Stripe, você deve habilitar a transferência de responsabilidade no console do Google Pay e Google Wallet. Para fazer isso, acesse o Console do Google Pay e Google Wallet, selecione API do Google Pay na barra de navegação à esquerda e ative a Proteção de responsabilidade por fraude para tokens de dispositivo Visa para proteção de transferência de responsabilidade.
Há três casos de uso de transações do Google Pay:
- Se o usuário adicionar um cartão ao aplicativo Google Pay usando o dispositivo móvel, esse cartão é salvo como Número de Conta Principal de Dispositivo (DPAN) e aceita transferência de responsabilidade automaticmente.
- Se o usuário adicionar um cartão ao Chrome ou a uma propriedade do Google (por exemplo, YouTube ou Google Play), esse cartão será salvo como um Número de Conta Principal de Financiamento (FPAN). A transferência de responsabilidade é aceita nas principais bandeiras do mundo, incluindo a Visa, quando o 3D Secure é executado. Você pode personalizar as regras do Stripe Radar para solicitar a ativação do 3D Secure.
- Se o usuário selecionar o Google Pay como forma de pagamento em um site de e-commerce ou em um aplicativo que paga com Google Pay, os cartões são salvos como tokens de e-commerce que representam os cartões registrados. A transferência de responsabilidade e o 3D Secure não são aceitos para tokens de e-commerce no momento.
Para usuários do Sigma, a tabela de charges
contém um campo card_
que indica o tipo de transação do Google Pay. Uma transação FPAN define o card_
como fpan
. Transações de token DPAN e e-commerce definem o card_
como dpan_
.
Reembolsos
Você pode reembolsar de forma parcial ou total qualquer pagamento bem-sucedido do Google Pay. O processo de reembolso é o mesmo dos pagamentos com cartão. Consulte Reembolsar e cancelar pagamentos para obter instruções sobre como iniciar ou gerenciar reembolsos.