Apple Pay
ID du produit de paiement : 302
Apple Pay permet aux clients de payer en toute securite en utilisant Touch ID ou Face ID sur leurs appareils iOS. Les donnees de carte sont tokenisees et stockees en securite dans le portefeuille Apple Pay, offrant une securite renforcee et une experience de paiement sans friction.
Avantages
- Authentification transparente - Touch ID/Face ID natif pour un paiement rapide
- Securite renforcee - Donnees de carte tokenisees avec Device PAN (DPAN)
- Conversion elevee - Friction reduite pour les transactions mobiles
- Large compatibilite - iPhone, iPad, Apple Watch, Mac
Marques de cartes prises en charge
- Visa
- Mastercard
- American Express
- Cartes Bancaires
Exigences des appareils
| Appareil | Exigences |
|---|---|
| iPhone | Face ID ou Touch ID (iPhone 6 et ulterieur) |
| iPad | iPad Pro, Air, standard ou mini avec Touch ID |
| Apple Watch | Series 1 et ulterieure |
| Mac | Touch ID ou Apple Watch appaire |
Methodes d'integration
Page de paiement hebergee
La methode d'integration la plus simple. Apple Pay apparait automatiquement pour les clients utilisant Safari sur les appareils Apple compatibles.
{
"order": {
"amountOfMoney": {
"currencyCode": "EUR",
"amount": 2980
}
},
"hostedCheckoutSpecificInput": {
"locale": "fr_FR",
"returnUrl": "https://yoursite.com/return"
},
"mobilePaymentMethodSpecificInput": {
"authorizationMode": "FINAL_AUTHORIZATION",
"paymentProductId": 302
}
}
Flux multi-appareils
Les clients sur desktop peuvent scanner un code QR pour completer le paiement sur leur appareil Apple :
- Le client initie le paiement sur desktop
- Un code QR Apple Pay est affiche
- Le client scanne le code QR avec son iPhone
- L'interface Apple Pay s'ouvre sur l'iPhone
- Le client s'authentifie avec Face ID/Touch ID
- Le desktop recoit la confirmation
Integration SDK mobile
Pour les applications iOS natives, choisissez entre le dechiffrement gere par la plateforme ou par le marchand.
Dechiffrement gere par la plateforme (recommande)
Worldline gere le dechiffrement du token Apple Pay. Approche la plus simple avec le perimetre PCI le plus faible.
- Requete API
- iOS (Swift)
{
"mobilePaymentMethodSpecificInput": {
"paymentProductId": 302,
"authorizationMode": "FINAL_AUTHORIZATION",
"encryptedPaymentData": "eyJ2ZXJzaW9uIjoiRUNfdjEiLCJkYX...",
"ephemeralKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj...",
"publicKeyHash": "uUhU0fJoEJNk11gR8Ptd5Uw+jAnudz..."
},
"order": {
"amountOfMoney": {
"amount": 2980,
"currencyCode": "EUR"
}
}
}
func handleApplePayAuthorization(payment: PKPayment) {
let paymentData = payment.token.paymentData
let base64PaymentData = paymentData.base64EncodedString()
// Envoyer a votre serveur
let request = CreatePaymentRequest(
encryptedPaymentData: base64PaymentData,
ephemeralKey: extractEphemeralKey(from: payment),
publicKeyHash: extractPublicKeyHash(from: payment)
)
// Votre serveur envoie ceci a l'API Worldline
sendToServer(request)
}
Dechiffrement gere par le marchand
Vous dechiffrez le token Apple Pay avant de l'envoyer a Worldline. Offre plus de controle mais augmente le perimetre PCI.
{
"mobilePaymentMethodSpecificInput": {
"paymentProductId": 302,
"authorizationMode": "FINAL_AUTHORIZATION",
"decryptedPaymentData": {
"dpan": "4761120010000492",
"expiryDate": "1225",
"cryptogram": "jiSRYgf6G2rjYwAAC0GPAHQAAAA=",
"eci": "7",
"cardholderName": "John Doe"
}
},
"order": {
"amountOfMoney": {
"amount": 2980,
"currencyCode": "EUR"
}
}
}
Configuration d'integration
Etape 1 : Compte developpeur Apple
- Inscrivez-vous au Programme developpeur Apple
- Creez un Apple Merchant ID
- Acceptez les conditions generales Apple Pay
Etape 2 : Configuration du certificat
Pour le dechiffrement gere par la plateforme :
- Allez dans Portail Marchand > Business > Moyens de paiement > Apple Pay
- Telechargez la demande de signature de certificat (CSR)
- Dans le portail developpeur Apple, creez un certificat Apple Pay en utilisant le CSR
- Telechargez le certificat genere dans le Portail Marchand
Les certificats expirent apres deux ans. Vous recevrez des notifications par email avant l'expiration. Creez des certificats separes pour les environnements de test et de production.
Etape 3 : Activer Apple Pay
- Dans le Portail Marchand, allez dans Business > Moyens de paiement
- Activez Apple Pay (Produit de paiement 302)
- Testez dans l'environnement sandbox
Paiements recurrents
Apple Pay prend en charge les paiements recurrents (Carte enregistree) :
Paiement initial
{
"mobilePaymentMethodSpecificInput": {
"paymentProductId": 302,
"encryptedPaymentData": "xxx",
"ephemeralKey": "xxx",
"publicKeyHash": "xxx",
"paymentProduct302SpecificInput": {
"isRecurring": true,
"tokenize": true,
"recurring": {
"recurringPaymentSequenceIndicator": "first"
}
}
},
"order": {
"amountOfMoney": {
"currencyCode": "EUR",
"amount": 1000
}
}
}
Paiements subsequents
Utilisez le token stocke pour les debits subsequents :
{
"subsequentCardPaymentMethodSpecificInput": {
"subsequentType": "recurring"
},
"order": {
"amountOfMoney": {
"amount": 1000,
"currencyCode": "EUR"
}
}
}
Configuration d'abonnement
Configurez les details de facturation recurrente :
{
"mobilePaymentMethodSpecificInput": {
"paymentProduct302SpecificInput": {
"applePayRecurringPaymentRequest": {
"paymentDescription": "Abonnement mensuel",
"regularBilling": {
"label": "Forfait Premium",
"amount": "9.99",
"type": "final",
"paymentTiming": "recurring",
"recurringPaymentIntervalUnit": "month",
"recurringPaymentIntervalCount": 1
},
"managementURL": "https://yoursite.com/manage-subscription"
}
}
}
}
Correspondance PKPayment
Faites correspondre l'objet PKPayment d'Apple a la requete API :
| Propriete PKPayment | Propriete API |
|---|---|
token.data.applicationPrimaryAccountNumber | dpan |
token.data.applicationExpirationDate | expiryDate |
token.data.paymentData.onlinePaymentCryptogram | cryptogram |
token.data.paymentData.eciIndicator | eci |
billingContact.emailAddress | contactDetails.emailAddress |
billingContact.phoneNumber | contactDetails.phoneNumber |
billingContact.name | personalInformation.name |
billingContact.postalAddress | billingAddress |
Tests
Utilisez l'environnement sandbox Apple Pay pour les tests :
- Creez un identifiant Apple sandbox dans App Store Connect
- Ajoutez des cartes de test au portefeuille sandbox
- Utilisez le point d'acces de l'environnement de test Worldline
Apple fournit des cartes de test specifiquement pour les tests sandbox. Consultez la documentation Apple pour les numeros de cartes de test disponibles.
Prise en charge des pays et devises
Pays pris en charge : 40+ incluant Australie, Belgique, Canada, France, Allemagne, Japon, Pays-Bas, Royaume-Uni, Etats-Unis
Devises prises en charge : 150+ incluant EUR, USD, GBP, JPY, CAD, AUD
Securite
Apple Pay fournit plusieurs couches de securite :
- Tokenisation - Les numeros de carte ne sont jamais stockes ou transmis
- Device PAN (DPAN) - Token unique specifique a l'appareil
- Authentification biometrique - Face ID ou Touch ID requis
- Code de securite dynamique - Genere pour chaque transaction
Bonnes pratiques
- Afficher Apple Pay en evidence - Utilisez les directives officielles d'Apple pour les boutons
- Pre-remplir les donnees client - Demandez les adresses de livraison/facturation via Apple Pay
- Gerer les erreurs avec elegance - Fournissez un retour clair en cas d'echec
- Tester sur de vrais appareils - Le simulateur a des limitations
- Maintenir les certificats a jour - Surveillez les dates d'expiration
SDKs
| Plateforme | SDK |
|---|---|
| iOS (Swift/Obj-C) | GitHub |
| Android | GitHub |
| JavaScript | GitHub |
| Flutter | pub.dev |
| React Native | npm |
Prochaines etapes
- Configurer 3-D Secure pour une securite supplementaire des cartes
- Configurer les webhooks pour les notifications de paiement
- Explorer les autres moyens de paiement