Accéder directement au contenu
Créez un compte
ou
connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compte
Connectez-vous
Démarrer
Paiements
Automatisation des opérations financières
Plateformes et places de marché
Gestion de fonds
Outils de développement
Démarrer
Paiements
Automatisation des opérations financières
Démarrer
Paiements
Automatisation des opérations financières
Plateformes et places de marché
Gestion de fonds
Aperçu
Démarrer une intégration
Produits
Global Payouts
Capital
Émission de cartes
    Présentation
    Fonctionnement d'Issuing
    Disponibilité mondiale
    Gérer la fraude
    Cartes bancaires
    Choisir votre type de carte
    Cartes virtuelles
    Émettre des cartes virtuelles
    Cartes physiques
    Gérer des cartes bancaires
    Portefeuilles électroniques
    Cartes de remplacement
    Programmes de cartes
    Gestion de programme
    Personnaliser votre programme de cartes
    Ajoutez des fonds à votre programme de cartes
    Credit Consumer Issuing
    Contrôles
    Contrôles des dépenses
    Outils antifraude avancés
    3DS
    Étapes de détection de la fraude
    Autorisations en temps réel
    Gestion des PIN
    Issuing et Elements
    Gestion des tokens
    L'obtention de financements
    Solde
    Post-financer votre intégration à Stripe
    Post-financer votre intégration avec les réserves dynamiques
    Achats
    Autorisations
    Transactions
    Litiges
    Tests
    Catégories de marchands
    Utilisation des distributeurs automatiques
    Issuing avec Connect
    Configurer une intégration pour Issuing et Connect
    Mettre à jour les Conditions d'utilisation du service
    Financement Connect
    Comptes connectés, cartes et titulaires de carte
    Intégrer l'interface utilisateur pour la gestion des cartes
    Crédit
    Présentation
    Configurer des comptes connectés
    Gérer les conditions de crédit
    Enregistrer d'autres décisions de crédit et gérer les avis de décision défavorable (AAN)
    Communiquer les données réglementaires requises pour les décisions de crédit
    Gérer les obligations des comptes
    Tester une intégration de crédit
    Informations complémentaires
    Choisir un type de titulaire de carte
    Service de support dédié à Issuing et Treasury
    Liste de surveillance Issuing
    Recommandations pour le marketing (Europe/Royaume-Uni)
    Recommandations pour la conformité des produits et du marketing (US)
Treasury
Gérer vos fonds
AccueilGestion de fondsIssuing cards

Utiliser des portefeuilles électroniques avec Issuing

Comment utiliser Issuing pour ajouter des cartes à des portefeuilles électroniques.

Copier la page

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 :

  1. 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.
  2. 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_number 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.

Un bouton d'interface utilisateur noir indiquant la mention Ajouter à Apple Wallet. Le logo Apple Wallet figure à gauche du texte. Il s'agit d'un portefeuille gris avec des cartes bleues, jaunes, vertes et rouges légèrement décalées.

Demander un accès

Une mise en service de type push nécessite un droit Apple spécial appelé com.apple.developer.payment-pass-provisioning. Vous pouvez demander ce droit par e-mail à l’adresse support-issuing@stripe.com. Dans votre e-mail, veillez à inclure les informations suivantes :

  • Réseau de cartes : Visa ou MasterCard.
  • Nom de la carte : il s’agit du nom de la carte affichée dans le portefeuille numérique.
  • Nom de l’application : le nom de votre application.
  • ID de l’équipe de développeurs : disponible dans la section abonnement des paramètres de votre compte Apple Developer (par exemple, 2A23JCNA5E).
  • ID ADAM : l’ID numérique unique de votre application, que vous trouverez sur l’App Store Connect ou dans le lien de l’App Store vers votre application (par exemple, https://apps.apple.com/app/id123456789).
  • ID de groupe (bundle ID) : l’identifiant de groupe de votre application, également disponible sur l’App Store Connect (par exemple, com.example.yourapp).

Si vous avez plusieurs applications (par exemple pour effectuer des tests), qui ont des champs différents pour les attributs ci-dessus, vous devrez demander l’accès pour chacune d’entre elles.

Une fois que nous avons approuvé et appliqué votre demande, votre application apparaît sur la page d’informations de la carte ajoutée dans l’app Cartes, et l’objet PKSecureElementPass est disponible dans votre application en appelant PKPassLibrary().passes(). Vous devrez peut-être supprimer et ajouter à nouveau la carte pour que les modifications soient effectives.

Vérifier votre admissibilité
Côté client

Assurez-vous d’avoir intégré à votre application la dernière version du SDK iOS de Stripe.

Déterminez si l’appareil est éligible à la mise en service de type push.

  1. Vérifiez que la valeur wallets[apple_pay][eligible] de la carte émise est définie sur true.
  2. Appelez PKPassLibrary().canAddSecureElementPass(primaryAccountIdentifier:) avec le wallets[primary_account_identifier] de votre carte et vérifiez que le résultat est true. Si le primary_account_identifier est vide, transmettez une chaîne vide à canAddSecureElementPass().

Récupérez ces valeurs sur votre back-end, puis transmettez-les à votre application pour la vérification de l’admissibilité.

Avertissement

Avant d’afficher le bouton PKAddPassButton, vous devez vérifier le flag wallets[apple_pay][eligible] côté serveur et le résultat de canAddSecureElementPass(). Si vous affichez le bouton Ajouter à Apple Wallet sans vérifier ces valeurs, App Review peut rejeter votre application.

Swift
import Stripe class MyViewController: UIViewController { @IBOutlet weak var addPassButton: PKAddPassButton! // ... func handleEligibilityResponse(eligible: Bool, primaryAccountIdentifier: String?) { if eligible && PKPassLibrary().canAddSecureElementPass(primaryAccountIdentifier: primaryAccountIdentifier ?? "") { addPassButton.isHidden = false } else { addPassButton.isHidden = true } } }

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 vérifie l’admissibilité.

Ajouter une carte
Côté client

Lorsque l’utilisateur touche le bouton PKAddPassButton, créez et présentez un PKAddPaymentPassViewController contenant l’interface utilisateur d’Apple pour le flux de mise en service de type push.

Remarque

PKAddPaymentPassViewController peut utiliser l’attribut primaryAccountIdentifier de l’étape précédente pour déterminer si une carte a déjà été ajoutée à un appareil spécifique. Par exemple, si la carte a été ajoutée à un iPhone, l’interface utilisateur d’Apple proposera de l’ajouter à une Apple Watch associée.

Swift
import Stripe class MyViewController: UIViewController { // ... func beginPushProvisioning() { let config = STPPushProvisioningContext.requestConfiguration( withName: "Jenny Rosen", // the cardholder's name description: "RocketRides Card", // optional; a description of your card last4: "4242", // optional; the last 4 digits of the card brand: .visa, // optional; the brand of the card primaryAccountIdentifier: self.primaryAccountIdentifier // the primary_account_identifier value from the previous step ) let controller = PKAddPaymentPassViewController(requestConfiguration: config, delegate: self) self.present(controller!, animated: true, completion: nil) } }

Pour plus de contexte, observez comment l’application test utilise un PKAddPaymentPassViewController.

L’initialiseur du PKAddPaymentPassViewController nécessite un délégué que vous devez implémenter. Généralement, il s’agit simplement du contrôleur d’affichage à partir duquel vous le présentez. Nous fournissons une classe nommée STPPushProvisioningContext pour vous aider à implémenter ces méthodes.

Swift
class MyViewController: UIViewController { var pushProvisioningContext: STPPushProvisioningContext? = nil // ... } extension MyViewController: PKAddPaymentPassViewControllerDelegate { func addPaymentPassViewController(_ controller: PKAddPaymentPassViewController, generateRequestWithCertificateChain certificates: [Data], nonce: Data, nonceSignature: Data, completionHandler handler: @escaping (PKAddPaymentPassRequest) -> Void) { self.pushProvisioningContext = STPPushProvisioningContext(keyProvider: self) // STPPushProvisioningContext implements this delegate method for you, by retrieving encrypted card details from the Stripe API. self.pushProvisioningContext?.addPaymentPassViewController(controller, generateRequestWithCertificateChain: certificates, nonce: nonce, nonceSignature: nonceSignature, completionHandler: handler); } func addPaymentPassViewController(_ controller: PKAddPaymentPassViewController, didFinishAdding pass: PKPaymentPass?, error: Error?) { // Depending on if `error` is present, show a success or failure screen. self.dismiss(animated: true, completion: nil) } }

Pour plus de contexte, observez comment l’application test met en œuvrePKAddPaymentPassViewControllerDelegate.

Vous pouvez constater que l’initialiseur du STPPushProvisioningContext requiert un keyProvider. Il s’agit d’une instance d’une classe qui implémente le protocole STPIssuingCardEphemeralKeyProvider.

Ce protocole définit une seule méthode obligatoire, createIssuingCardKeyWithAPIVersion:completion. Pour implémenter cette méthode, effectuez un appel à l’API vers votre back-end. Votre back-end crée un objet Ephemeral Key à l’aide de l’API Stripe et le renvoie à votre application. Votre application appelle ensuite le gestionnaire d’exécution fourni avec la réponse API de votre back-end.

Swift
extension MyViewController: STPIssuingCardEphemeralKeyProvider { func createIssuingCardKey(withAPIVersion apiVersion: String, completion: @escaping STPJSONResponseCompletionBlock) { // This example uses Alamofire for brevity, but you can make the request however you want AF.request("https://myapi.com/ephemeral_keys", method: .post, parameters: ["api_version": apiVersion]) .responseJSON { response in switch response.result { case .success: if let data = response.data { do { let obj = try JSONSerialization.jsonObject(with: data, options: []) as! [AnyHashable: Any] completion(obj, nil) } catch { completion(nil, error) } } case .failure(let error): completion(nil, error) } } } }

Pour plus de contexte, observez comment l’application test met en œuvreSTPIssuingCardEphemeralKeyProvider.

Mettre votre back-end à jour
Cô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é.

Command Line
curl
curl https://api.stripe.com/v1/ephemeral_keys \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "issuing_card"="{{ISSUING_CARD_ID}}" \ -H "Stripe-Version: {{API_VERSION}}"
{ "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

Le droit com.apple.developer.payment-pass-provisioning fonctionne uniquement avec des profils de mise en service en mode distribution, ce qui signifie que, même après l’avoir obtenu, la seule façon de tester le flux de mise en service de bout en bout est de distribuer votre application avec TestFlight ou avec l’App Store.

Pour vous aider concernant les tests, nous fournissons une version fictive du PKAddPaymentPassViewController nommée STPFakeAddPaymentPassViewController qui peut être utilisée de façon interchangeable durant les tests.

Swift
import Stripe class MyViewController: UIViewController { // ... func beginPushProvisioning() { let config = STPPushProvisioningContext.requestConfiguration( withName: "Jenny Rosen", // the cardholder's name description: "RocketRides Card", // optional; a description of your card last4: "4242", // optional; the last 4 digits of the card brand: .visa // optional; the brand of the card ) let controller = STPFakeAddPaymentPassViewController(requestConfiguration: config, delegate: self) self.present(controller!, animated: true, completion: nil) } }

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.

Cette page vous a-t-elle été utile ?
OuiNon
Besoin d'aide ? Contactez le service Support.
Rejoignez notre programme d'accès anticipé.
Consultez notre log des modifications.
Des questions ? Contactez l'équipe commerciale.
LLM ? Lire llms.txt.
Propulsé par Markdoc