Google Pay
Comment accepter des paiements avec Google Pay.
Google Pay permet à vos clients d’effectuer des paiements dans votre application ou sur votre site Web à l’aide d’une carte de crédit ou de débit enregistrée sur leur compte Google, y compris les cartes enregistrées sur Google Play, YouTube, Chrome, ou un appareil Android. Utilisez l’API Google Pay pour accéder à une carte de crédit ou de débit enregistrée sur le compte Google de votre client.
Google Pay est pleinement compatible avec les produits et fonctionnalités de Stripe (p. ex., les paiements récurrents), ce qui vous permet de remplacer les moyens de paiement traditionnels par Google Pay chaque fois que cela est possible. Utilisez Google Pay pour l’achat de marchandises, pour des abonnements, pour des dons, etc.
Utilisation de Stripe et Google Pay avec le système de facturation Google Play
Pour la vente de biens et services physiques, votre application peut accepter Google Pay ou tout autre moyen de paiement pris en charge par Stripe. Ces paiements sont traités par Stripe et vous n’avez qu’à payer les frais de traitement. Cependant, les achats dans les applications de produits et de contenus numériques doivent utiliser le système de facturation Google Play. Ces paiements sont traités par Google et sont soumis aux frais de transaction de l’entreprise.
Pour en savoir plus sur les achats qui doivent utiliser le système de facturation Google Play, consultez les Conditions d’utilisation pour les développeurs de Google Play.
Le SDK React Native de Stripe est la solution la plus rapide et la plus simple pour commencer à accepter Google Pay dans vos applications React Native. Le composant PlatformPayButton encapsule l’interface utilisateur requise par Google, et vous pouvez utiliser les méthodes confirmPlatformPayPayment
et createPlatformPayPaymentMethod
pour collecter ou créer facilement des paiements dans votre application avec une configuration minimale.
Configurer StripeCôté serveurCôté client
Côté serveur
Pour cette intégration, votre serveur doit être doté d’endpoints qui communiquent avec l’API Stripe. Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre serveur :
Côté client
Le SDK React Native est disponible en open source et fait l’objet d’une documentation complète. En interne, il utilise des SDK Android et iOS natifs. Pour installer le SDK React Native de Stripe, exécutez l’une des commandes suivantes dans le répertoire de votre projet (selon le gestionnaire de paquets que vous utilisez) :
Ensuite, installez les autres dépendances nécessaires :
- Pour iOS, accédez au répertoire ** ios** et exécutez
pod install
pour vous assurer d’installer également les dépendances natives requises. - Pour Android, il n’y a plus de dépendances à installer.
Initialisation de Stripe
Pour initialiser Stripe dans votre application React Native, wrappez votre écran de paiement avec le composant StripeProvider
ou utilisez la méthode d’initialisation initStripe
. Seule la clé publiable de l’API dans publishableKey
est nécessaire. L’exemple suivant montre comment initialiser Stripe à l’aide du composant StripeProvider
.
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> ); }
Note
Utilisez vos clés API pour le mode test pendant vos phases de test et de développement, et vos clés pour le mode production lorsque vous publiez votre application.
Activer Google Pay
Pour utiliser Google Pay, commencez par activer l’API Google Pay en ajoutant les informations suivantes au libellé <application>
de votre AndroidManifest.xml :
<application> ... <meta-data android:name="com.google.android.gms.wallet.api.enabled" android:value="true" /> </application>
Pour en savoir plus, consultez cette page indiquant comment configurer l’API Google Pay pour Android.
Créer un PaymentIntentCôté serveur
Créez d’abord un PaymentIntent
sur votre serveur, puis indiquez le montant à encaisser et la devise. Si votre intégration inclut déjà l’API Payment Intents, ajoutez card
à la liste des types de moyens de paiement pour votre PaymentIntent
(il s’agit aussi du moyen de paiement par défaut) :
Un PaymentIntent contient une clé secrète du client. Au lieu de transmettre la totalité de l’objet PaymentIntent, vous pouvez utiliser la clé secrète du client dans votre application React Native pour finaliser le processus de paiement en toute sécurité. Dans votre application, demandez un PaymentIntent auprès de votre serveur et sauvegardez sa clé secrète du client.
Initialiser Google PayCôté client
Tout d’abord, vérifiez si l’appareil prend en charge Google Pay en appelant 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> ); }
Présenter le formulaire Google PayCôté client
Une fois que vous savez que Google Pay est disponible et que votre application a obtenu une clé secrète du client PaymentIntent
ou SetupIntent
, appelez confirmPlatformPayPayment
. Lors de la confirmation d’un SetupIntent
, utilisez plutôt 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> ); }
Passer en mode production avec Google Pay
Suivez les instructions de Google pour demander un accès en production pour votre application. Choisissez le type d’intégration Gateway, et fournissez des captures d’écran de votre application pour vérification.
Une fois votre application approuvée, testez votre intégration en mode production en utilisant testEnv: false
et en lançant Google Pay à partir d’une version publiée de votre application. N’oubliez pas d’utiliser vos clés API en mode production. Vous pouvez utiliser un PaymentIntent
avec capture_
= manual
pour traiter une transaction sans capturer le paiement.
Litiges
Les utilisateurs doivent authentifier leurs paiements à l’aide de leurs comptes Google Pay, ce qui contribue à réduire le risque de fraude ou de paiements non reconnus. Cependant, les utilisateurs peuvent toujours contester des transactions une fois le paiement finalisé. Vous pouvez soumettre des preuves pour contester directement un litige. La procédure de litige est la même que celle prévue pour les paiements par carte bancaire. Découvrez comment gérer les litiges.
Transfert de responsabilité pour les paiements Google Pay
Google Pay prend en charge le transfert de responsabilité à l’échelle mondiale. Cela est valable automatiquement pour les utilisateurs de produits hébergés par Stripe et utilisant Stripe.js. Pour les transactions Visa effectuées en dehors d’un produit hébergé par Stripe, vous devez activer le transfert de responsabilité dans la console Google Pay & Wallet. Pour ce faire, accédez à votre console Google Pay & Wallet, sélectionnez API Google Pay dans la barre de navigation située à gauche, puis activez la protection contre la fraude pour les tokens de périphérique Visa pour bénéficier de la protection contre les risques liés au transfert de responsabilité.
Il existe trois cas d’usage des transactions Google Pay :
- Si l’utilisateur ajoute une carte à l’application Google Pay à l’aide de son appareil mobile, cette carte est enregistrée en tant que numéro de compte principal de l’appareil (DPAN) et le transfert de responsabilité est pris en charge par défaut.
- Si l’utilisateur ajoute une carte à Chrome ou à l’une des propriétés de Google (par exemple, YouTube ou Play), cette carte est enregistrée en tant que numéro de compte principal de financement (FPAN). Le transfert de responsabilité est pris en charge pour tous les principaux réseaux, y compris Visa dans le monde entier lorsque l’authentification 3D Secure est effectuée. Vous pouvez personnaliser les règles de Stripe Radar pour demander l’activation de 3D Secure.
- Si l’utilisateur sélectionne Google Pay comme moyen de paiement sur un site d’e-commerce ou dans une application, les cartes sont enregistrées en tant que tokens d’e-commerce qui représentent les cartes enregistrées. Ni le transfert de responsabilité ni 3D Secure ne sont actuellement pris en charge pour les tokens d’e-commerce.
Pour les utilisateurs de Sigma , la table charges
contient un champ card_
qui indique le type de transaction Google Pay. Une transaction FPAN définit le card_
sur fpan
. Les transactions DPAN et de token d’e-commerce définissent le card_
sur dpan_
.
Remboursements
Vous pouvez rembourser partiellement ou intégralement tout paiement Google Pay réussi. Le processus de remboursement est le même que pour les paiements par carte bancaire. Consultez la page Rembourser et annuler des paiements pour en savoir plus sur la marche à suivre et la gestion des remboursements.