Contenu
Sommaire | ||
---|---|---|
|
Plus d'informations
Affichage enfants | ||
---|---|---|
|
Initialisation
Pour l'initialisation du SDK au sein de l'application, il faut tout d'abord instancier
unun `PaymentController()` et
unun `WalletController()`
ainsi que leurs delegates associéset ensuite les associer à leur listener qui seront décrits par la suite. Habituellement, cela est fait dans le `onCreate()` de l'activité :
Bloc de code | ||||||
---|---|---|---|---|---|---|
| ||||||
lazyprivate var paymentController: PaymentController = { return PaymentController(presentingViewController: UIViewController, delegate: PaymentControllerDelegate) }(paymentController.registerListener(listener, context) lazyprivate var walletController: WalletController = { return WalletController(presentingViewController: UIViewController, delegate: WalletControllerDelegate) }(walletController.registerListener(listener, context) |
La méthode d'initialisation du paiement requiert deux paramètres : un
`PaymentControllerDelegate` et un `UIViewController`"PaymentControllerListener" et le "Context".
La méthode d'initialisation du portefeuille requiert deux paramètres : un
`WalletControllerDelegate` et un `UIViewController`"WalletControllerListener" et le "Context".
Cependant, il faut aussi dissocier le listener lorsque l'activité est détruite. Habituellement, cela est fait dans le `onDestroy()` de celle-ci :
Bloc de code | ||||||
---|---|---|---|---|---|---|
| ||||||
paymentController.unregisterListener()
walletController.unregisterListener() |
Pour que votre
`UIViewController`activité agisse comme un
delegatelistener, vous devez
implementerimplémenter les
protocolinterfaces `PaymentControllerListener`
PaymentControllerDelegate`et/ou `WalletControllerListener`
WalletControllerDelegate`:
Bloc de code | ||||||
---|---|---|---|---|---|---|
| ||||||
class MainActivity ViewController: UIViewControllerAppCompatActivity(), PaymentControllerDelegatePaymentControllerListener, WalletControllerDelegate{}WalletControllerListener |
Configuration
Réaliser un paiementLa méthode `showPaymentForm` est utilisée pour afficher la page des moyens de paiement.
Bloc de code | ||||||
---|---|---|---|---|---|---|
| ||||||
@IBActionprivate func clickedPay(_ sender: Any?) { let urlval paymentController = URL(string: ...PaymentController() paymentController.showPaymentForm(environment: url) } |
La récupération du paramètre 'url' se fera selon vos choix d'implementation.
Pour plus d'informations, veuillez vous référer à la documentation Payline en cliquant ici
Accéder au portefeuille
uri) |
La méthode `showManageWallet` est
La méthode `showManageWallet` estutilisée pour afficher la page de gestion du portefeuille.
Bloc de code | ||||||
---|---|---|---|---|---|---|
| ||||||
@IBActionprivate funcval clickedManageWallet(_ sender: Any?) { let url = URL(string: ...) { walletController = WalletController() walletController.manageWebWallet(environment: url) } |
uri) |
Ces deux méthodes requièrent l'uri de la page vers laquelle nous devons être redirigés. La récupération du paramètre `uri` se fera selon vos choix d'implementation.
Pour plus d'informations, veuillez vous référer à la documentation Payline en cliquant
iciPaymentController
Une fois que la page des moyens de paiement a été affichée, plusieurs méthodes sont accessibles :
Bloc de code | ||||||
---|---|---|---|---|---|---|
| ||||||
publicfun func updateWebPaymentData(_ webPaymentDatadata: StringJSONObject) |
`updateWebPaymentData` permet de mettre à jour les informations de session de paiement après l'initialisation du widget et avant la finalisation du paiement.
Bloc de code | ||||||
---|---|---|---|---|---|---|
| ||||||
publicfun func getIsSandbox() |
`getIsSandbox` permet de savoir si l'environnement est une production ou une homologation.
Bloc de code | ||||||
---|---|---|---|---|---|---|
| ||||||
publicfun func endToken(additionalDatahandledByMerchant: Encodable?Boolean, isHandledByMerchantadditionalData: BoolJSONObject?) |
`endToken` permet de mettre fin à la vie du jeton de session web.
Bloc de code | ||||||
---|---|---|---|---|---|---|
| ||||||
publicfun func getLanguagegetLanguageCode() |
`
getLanguagegetLanguageCode` permet de connaitre la clé du language du widget.
Bloc de code | ||||||
---|---|---|---|---|---|---|
| ||||||
public funcfun getContextInfo(key: ContextInfoKey) |
`getContextInfo` permet de connaitre l'information dont la clé est passée en paramètre.
Les différentes clés disponibles pour cette fonction sont les suivantes :
Bloc de code | ||||
---|---|---|---|---|
| ||||
public enum ContextInfoKey: String {
case paylineAmountSmallestUnit = "PaylineAmountSmallestUnit"
case paylineCurrencyDigits = "PaylineCurrencyDigits"
case paylineCurrencyCode = "PaylineCurrencyCode"
case paylineBuyerFirstName = "PaylineBuyerFirstName"
case paylineBuyerLastName = "PaylineBuyerLastName"
case paylineBuyerShippingAddressStreet2 = "PaylineBuyerShippingAddress.street2"
case paylineBuyerShippingAddressCountry = "PaylineBuyerShippingAddress.country"
case paylineBuyerShippingAddressName = "PaylineBuyerShippingAddress.name"
case paylineBuyerShippingAddressStreet1 = "PaylineBuyerShippingAddress.street1"
case paylineBuyerShippingAddressCityName = "PaylineBuyerShippingAddress.cityName"
case paylineBuyerShippingAddressZipCode = "PaylineBuyerShippingAddress.zipCode"
case paylineBuyerMobilePhone = "PaylineBuyerMobilePhone"
case paylineBuyerShippingAddressPhone = "PaylineBuyerShippingAddress.phone"
case paylineBuyerIp = "PaylineBuyerIp"
case paylineFormattedAmount = "PaylineFormattedAmount"
case paylineOrderDate = "PaylineOrderDate"
case paylineOrderRef = "PaylineOrderRef"
case paylineOrderDeliveryMode = "PaylineOrderDeliveryMode"
case paylineOrderDeliveryTime = "PaylineOrderDeliveryTime"
case paylineOrderDetails = "PaylineOrderDetails"
} |
PaymentControllerDelegate
Le `PaymentControllerDelegate- AMOUNT_SMALLEST_UNIT("PaylineAmountSmallestUnit")
- CURRENCY_DIGITS("PaylineCurrencyDigits")
- CURRENCY_CODE("PaylineCurrencyCode")
- BUYER_FIRST_NAME("PaylineBuyerFirstName")
- BUYER_LAST_NAME("PaylineBuyerLastName")
- SHIPPING_ADDRESS_STREET2("PaylineBuyerShippingAddress.street2")
- SHIPPING_ADDRESS_COUNTRY("PaylineBuyerShippingAddress.country")
- SHIPPING_ADDRESS_NAME("PaylineBuyerShippingAddress.name")
- SHIPPING_ADDRESS_STREET1("PaylineBuyerShippingAddress.street1")
- SHIPPING_ADDRESS_CITYNAME("PaylineBuyerShippingAddress.cityName")
- SHIPPING_ADDRESS_ZIPCODE("PaylineBuyerShippingAddress.zipCode")
- BUYER_MOBILE_PHONE("PaylineBuyerMobilePhone")
- SHIPPING_ADDRESS_PHONE("PaylineBuyerShippingAddress.phone")
- BUYER_IP("PaylineBuyerIp")
- FORMATTED_AMOUNT("PaylineFormattedAmount")
- ORDER_DATE("PaylineOrderDate")
- ORDER_REF("PaylineOrderRef")
- ORDER_DELIVERY_MODE("PaylineOrderDeliveryMode")
- ORDER_DELIVERY_TIME("PaylineOrderDeliveryTime")
- ORDER_DETAILS("PaylineOrderDetails")
PaymentControllerListener
Le `PaymentControllerListener` est une interface qui définit la communication entre l'application et le
`PaymentController`PaymentController. Il va permettre d'avertir la classe qui l'implémente lorsque des données ou des actions sont reçues. Il contient différentes méthodes :
Bloc de code | ||||||
---|---|---|---|---|---|---|
| ||||||
funcfun paymentControllerDidShowPaymentForm(_ paymentController: PaymentControllerdidShowPaymentForm() |
`
paymentControllerDidShowPaymentForm(_:)didShowPaymentForm` est la méthode appelée lorsque la liste des moyens de paiement a été affichée.
Bloc de code | ||||||
---|---|---|---|---|---|---|
| ||||||
funcfun paymentControllerDidFinishPaymentForm(_ paymentController: PaymentController, withState didFinishPaymentForm(state: WidgetState) |
`
paymentControllerDidFinishPaymentForm(_:withState:)didFinishPaymentForm` est la méthode appelée lorsque le paiement a été terminé. Elle reçoit en paramètre un objet de type
`WidgetState`widgetState` qui correspond aux différents états
possiblepossibles lors de la fin du paiement. Cet objet peut prendre les valeurs suivantes :
firstline | 1 |
---|---|
linenumbers | true |
- PAYMENT_METHODS_LIST
- PAYMENT_CANCELED
- PAYMENT_SUCCESS
- PAYMENT_FAILURE
- PAYMENT_FAILURE_WITH_RETRY
- TOKEN_EXPIRED
- BROWSER_NOT_SUPPORTED
- PAYMENT_METHOD_NEEDS_MORE_INFOS
- PAYMENT_REDIRECT_NO_RESPONSE
- MANAGE_WEB_WALLET
- ACTIVE_WAITING
- PAYMENT_CANCELED_WITH_RETRY
- PAYMENT_ONHOLD_PARTNER
- PAYMENT_SUCCESS_FORCE_TICKET_DISPLAY
Bloc de code | ||||||
---|---|---|---|---|---|---|
| ||||||
funcfun paymentControllerdidGetIsSandbox(_ paymentControllerisSandbox: PaymentController, didGetIsSandbox: BoolBoolean) |
`
paymentController(_:didGetIsSandbox
:)` est la méthode appelée lorsque l'environnement a été reçu. `isSandbox` vaudra true si l'environnement est une production et false si c'est une homologation.
Bloc de code | ||||||
---|---|---|---|---|---|---|
| ||||||
funcfun paymentController(_ paymentController: PaymentController, didGetLanguagedidGetLanguageCode(language: String) |
`
paymentController(_:didGetLanguage:)didGetLanguageCode` est la méthode appelée lorsque la clé du language du widget est connue. `language` peut avoir des valeurs comme "fr", "en" ...
Bloc de code | ||||||
---|---|---|---|---|---|---|
| ||||||
funcfun paymentControllerdidGetContextInfo(_ paymentControllerkey: PaymentController, didGetContextInfo: ContextInfoResultContextInfoKey) |
`
paymentController(_:didGetContextInfo
:)` est la méthode appelée lorsque l'information du contexte est connue.
Le paramètre `
didGetContextInfo`key` est de type `ContextInfoResult`. Il s'agit d'une
énumérationclasse qui va être utilisée pour traiter le résultat obtenu par la webView. Trois types de données pourront être reçus :
Bloc de code | ||||
---|---|---|---|---|
| ||||
public enum ContextInfoResult {
case int(ContextInfoKey, Int)
case string(ContextInfoKey, String)
case objectArray(ContextInfoKey, [[String: Any]])
} |
WalletControllerDelegate
Le `WalletControllerDelegate"Int", "String" ou "ObjectArray".
WalletControllerListener
Le `WalletControllerListener` est une interface qui définit la communication entre l'application et le WalletController. Il va permettre d'avertir la classe qui l'implémente lorsque des données ou des actions sont reçues. Il contient une méthode :
Bloc de code | ||||||
---|---|---|---|---|---|---|
| ||||||
funcfun walletControllerDidShowWebWallet(_ walletController: WalletControllerdidShowManageWebWallet() |
`
walletControllerDidShowWebWallet(_:)didShowManageWebWallet` est la méthode appelée lorsque
lela page de gestion du portefeuille a été affiché.