Configurer le SDK iOS
Avec le SDK iOS, vous pouvez proposer Affirm comme option de paiement dans les applications iOS. Ce guide vous explique la manière de configurer le client iOS sur votre page de paiement.
Aperçu
Commencer un paiement avec Affirm sur un client iOS consiste à créer un formulaire de paiement, à tokeniser les renseignements des clients pour les transmettre en toute sécurité à votre serveur et à utiliser ce jeton pour initier une facturation.
Le SDK iOS est disponible sur Github.
Étapes
1. Configurer Affirm sur iOS
Avec CocoaPods
- Installez la dernière version de CocoaPods.
- Si vous n'avez pas de Podfile existant, exécutez cette commande pour en créer un :
pod init- Ajoutez cette ligne à votre Podfile :
pod 'AffirmSDK'- Exécutez cette commande :
pod install- Utilisez le fichier
.xcworkspacepour ouvrir votre projet dans Xcode, au lieu du fichier.xcodeproj, à partir de maintenant. - À l'avenir, pour mettre à jour vers la dernière version du SDK, vous pouvez exécuter ceci :
pod update AffirmSDKAvec Carthage
- Installez la dernière version de Carthage.
- Ajoutez cette ligne à votre Cartfile :
github "Affirm/affirm-merchant-sdk-ios"- Suivez les instructions d'installation de Carthage.
- À l'avenir, pour passer à la dernière version du SDK, exécutez cette commande :
carthage update affirm-merchant-sdk-ios --platform ios
Versions du SDKPour en savoir plus sur la dernière version du SDK et les versions antérieures, consultez la page des versions sur GitHub. Surveillez les versions pour que le référentiel reçoive des notifications lorsqu'une nouvelle version est publiée.
2. Initialiser Affirm
Configurez le SDK avec votre clé API publique Affirm afin qu'il puisse effectuer des requêtes vers le serveur Affirm :
ffirmConfiguration.shared.configure(publicKey: "YOUR PUBLIC KEY", environment: .sandbox, merchantName: "Affirm Example Swift")[[AffirmConfiguration sharedInstance] configureWithPublicKey:@"YOUR PUBLIC KEY" environment:AffirmEnvironmentSandbox merchantName:@"Affirm Example"];3. Rendu du paiement Affirm
La création d'une caisse est le moment où un client utilise Affirm pour payer un achat intégré à une application. Vous pouvez créer un objet de paiement et lancer le paiement Affirm en utilisant la fonction Checkout :
let dollarPrice = NSDecimalNumber(string: self.amountTextField.text)
let item = AffirmItem(name: "Affirm Test Item", sku: "test_item", unitPrice: dollarPrice, quantity: 1, url: URL(string: "http://sandbox.affirm.com/item")!)
let shipping = AffirmShippingDetail.shippingDetail(name: "Chester Cheetah", line1: "633 Folsom Street", line2: "", city: "San Francisco", state: "CA", zipCode: "94107", countryCode: "USA")
let checkout = AffirmCheckout(items: [item], shipping: shipping, taxAmount: NSDecimalNumber.zero, shippingAmount: NSDecimalNumber.zero, discounts: nil, metadata: nil, financingProgram: nil, orderId: "JKLMO4321")
let controller = AffirmCheckoutViewController.start(checkout: checkout, useVCN: true, delegate: self)
present(controller, animated: true, completion: nil)// initialize an AffirmItem with item details
AffirmItem *item = [AffirmItem itemWithName:@"Affirm Test Item" SKU:@"test_item" unitPrice:price quantity:1 URL:[NSURL URLWithString:@"http://sandbox.affirm.com/item"]];
// initialize an AffirmShippingDetail with the user's shipping address
AffirmShippingDetail *shipping = [AffirmShippingDetail shippingDetailWithName:@"Chester Cheetah" addressWithLine1:@"633 Folsom Street" line2:@"" city:@"San Francisco" state:@"CA" zipCode:@"94107" countryCode:@"USA"];
// initialize an AffirmCheckout object with the item(s), shipping details, tax amount, shipping amount, discounts, financing program, and order ID
AffirmCheckout *checkout = [[AffirmCheckout alloc] initWithItems:@[item] shipping:shipping taxAmount:[NSDecimalNumber zero] shippingAmount:[NSDecimalNumber zero] discounts:nil metadata:nil financingProgram:nil orderId:@"JKLMO4321"];
// The minimum requirements are to initialize the AffirmCheckout object with the item(s), shipping details, and payout Amount
AffirmCheckout *checkout = [AffirmCheckout checkoutWithItems:@[item] shipping:shipping payoutAmount:price];
// initialize an UINavigationController with the checkout object and present it
UINavigationController *nav = [AffirmCheckoutViewController startCheckoutWithNavigation:checkout useVCN:YES getReasonCodes:NO delegate:self];
[self presentViewController:nav animated:YES completion:nil];
// It is recommended that you round the total in the checkout request to two decimal places. Affirm SDK converts the float total to integer cents before initiating the checkout, so may round up or down depending on the decimal places. Ensure that the rounding in your app uses the same calculation across your other backend systems, otherwise, it may cause an error of 1 cent or more in the total validation on your end.Ajouter un message promotionnel d'Affirm
Les composants de messagerie promotionnelle d’Affirm montrent aux clients comment ils peuvent utiliser Affirm pour financer leurs achats. Des messages promotionnels correctement placés contribuent à augmenter la valeur moyenne des commandes et la conversion.
A. Configurer la messagerie promotionnelle :
1. Pour afficher la messagerie promotionnelle, utilisez la classe AffirmPromotionalButton, qui vous oblige uniquement à configurer et à ajouter à votre vue pour l'implémentation. Pour mettre en œuvre le AffirmPromotionalButton :
self.promotionalButton = [[AffirmPromotionalButton alloc] initWithPromoID:@"promo_set_ios"
showCTA:YES
pageType:AffirmPageTypeProduct
presentingViewController:self
frame:CGRectMake(0, 0, 315, 34)];
[self.stackView insertArrangedSubview:self.promotionalButton atIndex:0];2. Utilisez ce qui suit pour afficher ou actualiser a la messagerie promotionnelle :
[self.promotionalButton configureByHtmlStylingWithAmount:[NSDecimalNumber decimalNumberWithString:amountText]
affirmLogoType:AffirmLogoTypeName
affirmColor:AffirmColorTypeBlue
remoteFontURL:[NSURL URLWithString:@"https://fonts.googleapis.com/css?family=Saira+Stencil+One&display=swap"]
remoteCssURL:url];self.promotionalButton.configure(amount: NSDecimalNumber(string: amountText),
affirmLogoType: .name,
affirmColor: .blue,
font: UIFont.italicSystemFont(ofSize: 15),
textColor: .gray)3. Pour utiliser des polices locales :
- Tout d'abord, ajoutez les fichiers de polices à votre projet. Assurez-vous que les fichiers sont correctement ciblés sur votre application.
- Ensuite, ajoutez les fichiers de police à votre
App-Info.plist. - Enfin, utilisez la police dans votre fichier CSS. Par exemple :
@font-face
{
font-family: 'OpenSansCondensed-Bold';
src: local('OpenSansCondensed-Bold'),url('OpenSansCondensed-Bold.ttf') format('truetype');
}
body {
font-family: 'OpenSansCondensed-Light';
font-weight: normal;
!important;
}Si aucun message promotionnel n'est renvoyé, nous masquons automatiquement le bouton.
Appuyer sur le bouton Promotionnel ouvre automatiquement une fenêtre modale dans un AffirmPrequalModalViewController avec plus de renseignements, y compris (si vous l'avez configuré) un bouton qui invite l'utilisateur à se préqualifier pour le financement Affirm.
B. Récupérer la chaîne brute du message promotionnel :
Vous pouvez récupérer une chaîne brute en utilisant AffirmDataHandler.
NSDecimalNumber *dollarPrice = [NSDecimalNumber decimalNumberWithString:self.amountTextField.text];
[AffirmDataHandler getPromoMessageWithPromoID:@"promo_set_ios"
amount:dollarPrice
showCTA:YES
pageType:AffirmPageTypeBanner
logoType:AffirmLogoTypeName
colorType:AffirmColorTypeBlue
font:[UIFont boldSystemFontOfSize:15]
textColor:[UIColor grayColor]
presentingViewController:self
completionHandler:^(NSAttributedString *attributedString, UIViewController *viewController, NSError *error) {
[self.promoButton setAttributedTitle:attributedString forState:UIControlStateNormal];
self.promoViewController = viewController;
}];Ensuite, vous pouvez présenter le modal promotionnel en utilisant ce qui suit :
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:self.promoViewController];
[self presentViewController:nav animated:YES completion:nil];-
initWithPromoId– Affirm fournit cette ID promotionnelle.showCTA– Pour afficher le lien vers le modal.pageType- Affirm fournit ce type de Page.
-
Bouton Configurer :
configureWithAmount: Le prix du produit ou du panier au format NSDecimalNumber.affirmLogoType:AffirmDisplayTypeLogo,AffirmDisplayTypeText,AffirmDisplayTypeSymbolouAffirmDisplayTypeSymbolHollowaffirmColor:AffirmColorTypeBlue,AffirmColorTypeBlack, ouAffirmColorTypeWhite.
C. Ajouter un modal éducatif :
En tapant sur AffirmAsLowAsButton ouvre un modal éducatif basé sur les éléments suivants :
- Lorsque
alaEnabledest défini surtrueet que le montant est supérieur ou égal à 50, le client voit un modal de produit avec des informations de tarification - Lorsque
alaEnabledest défini surtrueet que le montant est inférieur à 50, le client voit un modal de site sans les informations de tarification. - Lorsque
alaEnabledest défini surfalse, le client voit un modal de site sans les informations de tarification.
Pour afficher une fenêtre modale ailleurs dans l'application, initialisez et affichez une instance de la VC modale comme suit :
Appuyez sur le bouton Promotionnel pour ouvrir automatiquement un modal dans un AffirmPrequalModalViewController avec plus de renseignements, y compris (si vous l'avez configuré) un bouton qui invite l'utilisateur à se préqualifier pour le financement Affirm.
AffirmPromoModalViewController *viewController = [[AffirmPromoModalViewController alloc] initWithPromoId:@"promo_id" amount:amount delegate:delegate];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:viewController];
[self.presentingViewController presentViewController:nav animated:YES completion:nil];- le prix du produit ou du panier en NSDecather (une valeur inférieure à
amountouvre un site modal sans information sur les prix) promoId: Affirm fournit cette ID promotionnelle
D. Suivi de commande confirmée :
L'événement trackOrderConfirmed s'est déclenché lorsqu'un client effectue l'achat. Le SDK fournit la classe AffirmOrderTrackerViewController pour le suivre, qui nécessite AffirmOrder et un tableau contenant AffirmProduct.
[AffirmOrderTrackerViewController trackOrder:order products:@[product0, product1]];Cette fonctionnalité s’améliore une fois que le point de terminaison est prêt pour l’application et disparaît après 5 secondes.
5. Gérer les rappels
L'objet AffirmCheckoutDelegate qui reçoit des messages à différentes étapes du processus de paiement. Il renverra checkout_token de ce délégué.
func checkout(_ checkoutViewController: AffirmCheckoutViewController, completedWithToken checkoutToken: String)- (void)checkout:(AffirmCheckoutViewController *)checkoutViewController completedWithToken:(NSString *)checkoutTokenPour plus de rappels, consultez la référence du code.
Checkout TokenUne fois que la caisse a été confirmée avec succès par l'utilisateur, l'objet
AffirmCheckoutDelegatereçoit uncheckout_token. Ce jeton doit être transféré sur votre serveur, qui doit être utilisé pour autoriser des frais sur le compte de l'utilisateur.
6. Créer une charge
Lorsqu'un client réussit à passer à la caisse, c'est enregistré comme une nouvelle tentative d'achat. Cela doit être géré côté serveur pour être rempli via notre API Charges.
Quelle est la prochaine étape?
Mis à jour 20 days ago
USA
Canada