Skip to content

playmoweb/payline-ios-sdk

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PaylineSDK

CI Status Version License Platform

Description

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.

Exemple

Pour lancer le projet d'exemple, il vous suffit de cloner ce repo, puis d'executer la commande pod install dans le dossier Example

Installation

PaylineSDK est disponible via CocoaPods.

Pour l'installer:

  1. Dans votre Podfile, ajoutez la ligne suivante :
pod 'PaylineSDK'
  1. Executez la commande suivante à la racine de votre projet : pod install

Utilisation

Initialisation

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

Réaliser un paiement

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

Accéder au portefeuille

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

Implémentation des delegates

PaymentControllerDelegate

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 type WidgetState 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.

WalletControllerDelegate

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

Exemple d'utilisation

Initialisation

class ViewController: UIViewController {

lazy var paymentController: PaymentController = {
    return PaymentController(presentingViewController: self, delegate: self)
}()

lazy var walletController: WalletController = {
    return WalletController(presentingViewController: self, delegate: self)
}()

Effectuer un paiement

@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)
}

Affichage du Wallet

@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)
}

Implementation des delegates

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
    }

}

Documentation Payline

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.


Author

Payline, support@payline.com

License

PaylineSDK is available under the GPL license. See the LICENSE file for more info.

About

Payline Mobile SDK for iOS platforms

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 95.7%
  • Ruby 3.0%
  • Other 1.3%