Utiliser des portefeuilles électroniques avec Issuing
Comment utiliser Issuing pour ajouter des cartes à des portefeuilles électroniques.
Issuing permet aux utilisateurs d’ajouter des cartes à des portefeuilles électroniques comme Apple Pay et Google Pay. Stripe prend en charge l’ajout de cartes via deux méthodes :
- Mise en service manuelle : les titulaires de carte saisissent les informations de leur carte dans l’application de portefeuille de leur téléphone pour l’ajouter à leur portefeuille électronique.
- Mise en service de type push : les applications mobiles permettent aux utilisateurs d’ajouter des cartes à leur portefeuille électronique directement depuis l’application.
Lorsqu’une carte est ajoutée à un portefeuille électronique, une représentation tokenisée de cette carte est créée. Les tokens de réseau sont gérés séparément des cartes. Pour en savoir plus sur les tokens de réseau et leur fonctionnement, veuillez consulter la page Gestion des tokens.
Mise en service manuelle
Les titulaires de cartes peuvent ajouter des cartes virtuelles et des cartes physiques Stripe Issuing à leurs portefeuilles Apple Pay, Google Pay et Samsung Pay par le biais d’une mise en service manuelle.
Pour ce faire, les titulaires de carte ouvrent l’application du portefeuille concerné sur leur téléphone et saisissent les informations de leur carte. Stripe envoie ensuite un code de vérification à 6 chiffres au phone_
ou email
du titulaire de la carte.
Un message d’erreur carte non prise en charge s’affiche si aucun de ces champs n’est renseigné pour le titulaire de la carte au moment où celle-ci est mise en service.
Aucun code n’est nécessaire pour mettre en œuvre la mise en service manuelle, mais le processus de configuration peut varier en fonction du fournisseur de portefeuille électronique et du pays dans lequel vous êtes établi :
États-Unis
Les portefeuilles Apple Pay nécessitent l’approbation d’Apple. Consultez vos paramètres de portefeuilles électroniques pour connaître l’état d’Apple Pay sur votre compte. Il est possible que vous deviez soumettre une demande avant d’utiliser Apple Pay.
Google Pay et Samsung Pay ne nécessitent aucune étape supplémentaire.
UE/Royaume-Uni
Les intégrations de portefeuilles électroniques nécessitent une approbation supplémentaire de la part de l’équipe de partenariat Stripe. Pour en savoir plus, contactez le représentant de votre compte ou contactez Stripe.
Les portefeuilles Apple Pay nécessitent une autorisation supplémentaire. Vérifiez vos paramètres de portefeuilles électroniques pour connaître l’état d’Apple Pay sur votre compte. Il est possible que vous deviez soumettre une demande avant de pouvoir utiliser Apple Pay.
Mise en service de type push
Avec la mise en service de type push, les titulaires de carte peuvent ajouter leurs cartes Stripe Issuing à leurs portefeuilles électroniques grâce à votre application, en appuyant sur un bouton « Ajouter au portefeuille » comme ceux illustrés ci-dessous.
Pour activer la mise en service de type push aux États-Unis, les utilisateurs doivent d’abord effectuer les étapes de mise en service manuelle. En plus de l’approbation manuelle de la mise en service, la mise en service push nécessite une intégration avec le SDK Stripe.
Cela nécessite à la fois des processus d’approbation via Stripe et une intégration de code avec le SDK Stripe pour chaque plateforme sur laquelle vous souhaitez prendre en charge la mise en service de type push. Les approbations de la plateforme se répercutent sur tous les comptes connectés.
La mise en service de type push de Samsung Pay n’est pas prise en charge par nos SDK.

Demander un accès
Stripe fournit un wrapper SDK autour d’une bibliothèque Google privée pour la mise en service de type push. Pour distribuer votre application sur le Google Pay Store avec la mise en service de type push, vous devez effectuer les actions suivantes :
- Demander un accès à Google Pay. Une fois le formulaire rempli, votre demande devrait être approuvée sous quelques heures ou une journée au plus tard.
- Après avoir reçu l’approbation, téléchargez le SDK privé TapAndPay de Google. La version 18 est la dernière version testée en date du SDK TapAndPay.
- Demandez un accès à l’API de mise en service de type push pour votre application. Vous devrez fournir votre ID d’application pour l’ajouter à la liste des adresses autorisées de Google. Pour en savoir plus sur ce processus, consultez la documentation de Google. Quand le processus est terminé, Google accorde des droits de mise en service de type push.
- Une fois que Google a accordé les droits de mise en service de type push, contactez Stripe en indiquant le nom et l’ID de votre application, le réseau de cartes et le nom de la carte pour effectuer cette étape.
Mettre votre application à jourCôté client
- Importez le SDK privé de Google.
- Importez le SDK de Stripe.
dependencies { [... your dependencies] implementation 'com.stripe:stripe-android-issuing-push-provisioning:1.2.2' }
Pour plus de contexte, consultez à chaque étape les extraits de code proposés et les renvois vers l’application test. Pour cette étape, observez comment l’application test importe ces SDK.
- Préparez votre back-end pour qu’il crée des clés éphémères pour vos cartes. Voir la section ci-dessous.
- Créez un
EphemeralKeyProvider
qui étendPushProvisioningEphemeralKeyProvider
. Puisque le fournisseur de clés éphémères sera transmis à une autre activité, il doit également implémenter un attributParcelable
(voir Parcelable). Pour plus de contexte, observez comment l’application test définit sonEphemeralKeyProvider
. - Implémentez le bouton Ajouter à Google Pay selon les spécifications de Google. L’application test fournit un exemple de bouton respectant les directives relatives à l’image de marque.
Mise en garde
Comme le recommande Google, n’obligez pas vos utilisateurs à installer l’application Google Pay, et ne vérifiez pas si c’est le cas de manière programmatique. L’application n’est qu’un front-end. Vous n’en avez pas besoin pour que Google Pay fonctionne. Les utilisateurs peuvent gérer leur carte bancaire à partir de leurs paramètres Google dans l’application « Paramètres ».
Mise en garde
Google exige que le bouton Ajouter à Google Pay s’affiche uniquement lorsqu’une carte n’est pas encore présente sur l’appareil de l’utilisateur et que les utilisateurs ayant des cartes en attente de vérification effectuent le processus guidé d’activation finale. Utilisez la liste des points de contrôle de Google pour vérifier que votre implémentation est correcte.
Pour vérifier l’état des cartes de vos utilisateurs, utilisez listTokens() afin de récupérer la liste de toutes les cartes déjà présentes sur l’appareil. Comparez la valeur de getFpanLastFour()
de chaque objet renvoyé avec la propriété Stripe last4 de l’objet Issued Card pour la carte que vous voulez ajouter. Éliminez de la liste tous les objets qui ne correspondent pas.
- Si la liste résultante est vide, cela signifie que la carte que vous souhaitez ajouter n’est pas encore présente sur l’appareil. Vous pouvez poursuivre la procédure décrite ci-dessous pour afficher le bouton.
- Si la liste résultante contient un objet
TokenInfo
, vérifiez son TokenState en appelantgetTokenState()
.- Si cet état est
TOKEN_
, cela signifie que l’utilisateur a déjà essayé d’ajouter manuellement la carte en question sur son appareil. Affichez le bouton Ajouter à Google Pay, mais liez l’écouteurSTATE_ NEEDS_ IDENTITY_ VERIFICATION onActivityResult
à la méthodetokenize()
en suivant les instructions fournies dans la documentation de Google, afin que l’utilisateur puisse facilement régler le problème. - Tout autre état indique que la carte figure déjà sur l’appareil. N’affichez pas le bouton Google Pay.
- Si cet état est
Veillez à fournir votre ID d’application à Stripe avant de commencer les tests internes. La configuration peut prendre plus d’une semaine et une configuration incomplète aura notamment pour conséquence la réception de réponses incohérentes pour ces deux méthodes. La configuration par Stripe est terminée lorsque listTokens()
donne pour résultat only contains cards added after.
- Lorsqu’un utilisateur touche le bouton, lancez la
PushProvisioningActivity
de Stripe à l’aide duPushProvisioningActivityStarter
.
new PushProvisioningActivityStarter( this, // The Activity or Fragment you are initiating the push provisioning from new PushProvisioningActivityStarter.Args( "Stripe Card", // The name that will appear on the push provisioning UI ephemeralKeyProvider, // Your instance of EphemeralKeyProvider false // If you want to enable logs or not )).startForResult();
Pour plus de contexte, observez comment l’application test lance PushProvisioningActivity
.
Cela prépare la mise en service de type push et lance l’interface utilisateur permettant l’ajout de la carte au portefeuille. Implémentez le rappel dans votre onActivityResult
.
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { if (requestCode == PushProvisioningActivityStarter.REQUEST_CODE) { if (resultCode == PushProvisioningActivity.RESULT_OK) { PushProvisioningActivityStarter.Result success = PushProvisioningActivityStarter.Result.fromIntent(data); } else if (resultCode == PushProvisioningActivity.RESULT_ERROR) { PushProvisioningActivityStarter.Error error = PushProvisioningActivityStarter.Error.fromIntent(data); } } }
Pour plus de contexte, observez comment l’application test implémenteonActivityResult
.
Si la mise en service a abouti, vous recevrez un PushProvisioningActivityStarter.
contenant un cardTokenId
, qui est l’ID Google pour la carte dans le portefeuille actif. Vous pouvez utiliser les autres fonctions du portefeuille avec cet ID.
Si une erreur est survenue lors de la mise en service, une PushProvisioningActivityStarter.
sera renvoyée avec un code
et un message
. Le message
est un texte destiné au développeur expliquant l’erreur. Le code
peut prendre les valeurs suivantes :
Énumération | Signification |
---|---|
USER_CANCELED | L’utilisateur a annulé la mise en service. |
CARD_CANCELED | La carte a été annulée ou est perdue ou a été volée et ne peut pas être mise en service. |
EPHEMERAL_KEY_ERROR | Une erreur est survenue lors de la récupération de la clé éphémère. |
TAP_AND_PAY_UNAVAILABLE | Le bibliothèque TapAndPay ne peut pas être utilisée, probablement parce que l’application ne figure pas sur la liste blanche. |
NO_STABLE_HARDWARE_ID | Ce problème peut survenir dans l’émulateur de développement. L’application ne peut pas récupérer l’ID du matériel stable. |
NO_ACTIVE_WALLET_FOUND | Aucun portefeuille actif disponible. Veuillez noter que les émulateurs n’ont généralement pas Google Pay. |
PUSH_PROVISIONING_ENCRYPTED_PAYLOAD_ERROR | Une erreur est survenue lors de la communication avec les serveurs de Stripe pour obtenir la charge utile chiffrée de la mise en service de type push. |
UNKNOWN_ERROR | Une erreur inattendue est survenue. Le message contiendra des informations supplémentaires. |
Mettre votre back-end à jourCôté serveur
L’implémentation de la mise en service de type push expose des méthodes qui requièrent que vous communiquiez avec votre back-end pour créer une clé éphémère Stripe et renvoyer un JSON de celle-ci à votre application. Cette clé est un identifiant éphémère de l’API que vous pouvez utiliser pour récupérer les informations de carte chiffrées d’une instance unique d’un objet Card.
Pour garantir que l’objet renvoyé par l’API Stripe est compatible avec la version du SDK iOS ou Android que vous utilisez, le SDK Stripe vous indique quelle version d’API il privilégie. Vous devez explicitement transmettre cette version d’API à notre API lorsque vous créez la clé.
{ "id": "ephkey_1G4V6eEEs6YsaMZ2P1diLWdj", "object": "ephemeral_key", "associated_objects": [ { "id": "ic_1GWQp6EESaYspYZ9uSEZOcq9", "type": "issuing.card" } ], "created": 1586556828, "expires": 1586560428, "livemode": false, "secret": "ek_test_YWNjdF8xRmdlTjZFRHelWWxwWVo5LEtLWFk0amJ2N0JOa0htU1JzEZkd2RpYkpJdnM_00z2ftxCGG" }
Pour plus de contexte, observez comment l’exemple de backend créée une clé Stripe éphémère.
Tests
Tous les tests doivent être réalisés en mode production, avec des cartes réelles et sur des appareils physiques.
Pour créer l’application test, suivez les étapes décrites dans le fichier readme. Il n’est pas nécessaire de créer l’application pour suivre les instructions ci-dessus.