Le SDK Payline est un kit de développement qui va permettre d'intéragir avec le service Payline afin d'effectuer un paiement ou de voir le porte-monnaie.
Pour lancer le projet d'exemple, il vous suffit de cloner ce repo, puis d'executer la commande pod install
dans le dossier Example
PaylineSDK est disponible via CocoaPods.
Pour l'installer:
- Dans votre Podfile, ajoutez la ligne suivante :
pod 'PaylineSDK'
- Executez la commande suivante à la racine de votre projet :
pod install
Pour l'initialisation du SDK, il faut tout d'abord instancier un PaymentController()
et un WalletController()
ainsi que leurs delegates associés :
lazy var paymentController: PaymentController = {
return PaymentController(presentingViewController: UIViewController, delegate: PaymentControllerDelegate)
}()
lazy var walletController: WalletController = {
return WalletController(presentingViewController: UIViewController, delegate: WalletControllerDelegate)
}()
La méthode d'initialisation du paiement requiert deux paramètres : un PaymentControllerDelegate
et un UIViewController
La méthode d'initialisation du porte-monnaie requiert deux paramètres : un WalletContrllerDelegate
et un UIViewController
Pour que votre UIViewController agisse comme un delegate, vous devez implementer les protocol PaymentControllerDelegate
et WalletControllerDelegate
:
class ViewController: UIViewController, PaymentControllerDelegate, WalletControllerDelegate
La méthode showPaymentForm
est utilisée pour afficher la page des moyens de paiement.
@IBAction func clickedPay(_ sender: Any?) {
let url = URL(string: ...)
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
La méthode showManageWallet
est utilisée pour afficher la page du porte-monnaie.
@IBAction func clickedManageWallet(_ sender: Any?) {
let url = URL(string: ...) {
walletController.manageWebWallet(environment: url)
}
Comme pour la réaisation d'un paiement, 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
Le PaymentControllerDelegate est une interface qui définit la communication entre l'application et le PaymentController.
Ce dernier nécessite l'implémentation de cinq methodes :
-
paymentControllerDidShowPaymentForm(_:)
: Méthode appelé lorsque la liste des moyens de paiement a été afichée. -
paymentControllerDidFinishPaymentForm(_:withState:)
: Méthode appelé lorsque le paiement est terminé. Cette méthode prends en paramètre un objet de typeWidgetState
qui est une énumération des différents valeurs possible pour la propriété state retourné par les fonctions callback du widget. -
paymentController(_:didGetIsSandbox:)
: Méthode appelé lorsque l'environnement de paiement est connu(environnement de test ou de production). -
paymentController(_:didGetLanguageCode:)
: Méthode appelé lorsque la langue du widget est connue. -
paymentController(_:didGetContextInfo:)
: Méthode appelé à la récupération d'une information sur le contexte de paiement.
Le WalletControllerDelegate est une interface qui définit la communication entre le WalletController et l'application.
Ce dernier nécessite l'implémentation d'une méthode :
walletControllerDidShowWebWallet(_:)
: Méthode appelé lorsque la page de gestion du portefeuille a été affichée
class ViewController: UIViewController {
lazy var paymentController: PaymentController = {
return PaymentController(presentingViewController: self, delegate: self)
}()
lazy var walletController: WalletController = {
return WalletController(presentingViewController: self, delegate: self)
}()
@IBAction func clickedPay(_ sender: Any?) {
let url = URL(string: ...)
//On appelle la méthode showPaymentForm avec l'url du tunnel de paiement récupéré en fonction de votre implémentation
paymentController.showPaymentForm(environment: url)
}
@IBAction func clickedManageWallet(_ sender: Any?) {
let url = URL(string: ...)
//On appelle la méthode manageWebWallet avec l'url du wallet récupéré en fonction de votre implémentation.
paymentController.manageWebWallet(environment: url)
}
extension ViewController: PaymentControllerDelegate {
func paymentControllerDidShowPaymentForm(_ paymentController: PaymentController) {
//Gérer l'action ici
}
func paymentControllerDidFinishPaymentForm(_ paymentController: PaymentController, withState state: WidgetState) {
//Gérer le WidgetState ici
}
func paymentController(_ paymentController: PaymentController, didGetIsSandbox: Bool) {
//Gérer l'action ici
}
func paymentController(_ paymentController: PaymentController, didGetLanguageCode: String) {
//Gérer l'action ici
}
func paymentController(_ paymentController: PaymentController, didGetContextInfo: ContextInfoResult) {
//Gérer l'action ici
}
}
extension ViewController: WalletControllerDelegate {
func walletControllerDidShowWebWallet(_ walletController: WalletController) {
//Gérer l'action ici
}
}
La documentation de Payline peut être trouvée ici. Elle offre une vue d'ensemble du système, des détails et des explications sur certains sujets.
Payline, support@payline.com
PaylineSDK is available under the GPL license. See the LICENSE file for more info.