PaylineSDK

The Payline's Mobile SDK allows a merchant's mobile application to use Payline services to realize an online payment or manage the wallet.


License
GPL-2.0+
Install
pod try PaylineSDK

Documentation

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.