Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Est une librairie pour manipulation de client de payement

Utilisation Basique

  1. Création d'un transaction
// exemple de panier attendu

$panier = [
    [
        'name' => 'Produit 1',
        'price' => 1000,
        'quantity' => 1
    ],
    [
        'name' => 'Produit 2',
        'price' => 2000,
        'quantity' => 2
    ]
];

$transaction = new Transaction()
    ->setItems($panier)
    ->setMode('payment')
    ->setSuccessUrl('http://localhost/success')
    ->setCancelUrl('http://localhost/cancel')
    ->setDescription('Achat de produit')
    ->setDevise('FR');
  1. Possibilité de créer un client
$customer = new Customer()
$customer->setName('John Doe')
$customer->setEmail('john.doe@exemple.fr')
$customer->setPhone('0123456789')
$customer->setAddress('12 rue de la paix')
$customer->setCity('Paris')
$customer->setPostalCode('75000')
$customer->setCountry('France')
  1. Possibilité de créer une carte de crédit à l'utilisateur
$creditCard = new CreditCard(
    '1234567890123456', // numéro de carte
    '12/2022', // date d'expiration
    '123', // cvc
    'John Doe' // nom du titulaire
);
  1. Utilisation de la classe Payment
// Lancer un payment avec stripe
$payment = new PaymentFactory('stripe');
$payment->gateway()->pay($transaction);

// Créer un client
$payment = new PaymentFactory('stripe');
$payment->gateway()->createCustomer($customer);

// Créer une carte de crédit
$payment = new PaymentFactory('stripe');
$payment->gateway()->createCreditCard($creditCard);

Ajouter une nouvelle interface de paiement

  1. Créer une nouvelle classe qui implémente l'interface PaymentInterface

ex: avec paypal

class Paypal implements PaymentInterface
{
    public function pay(Transaction $transaction): string
    {
        // code pour payer avec paypal
    }

    public function cancelPayment(Transaction $transaction): string
    {
        // code pour anuller le payement en cours
    }

    public function createCustomer(Transaction $transaction): string
    {
        // code pour créer un client
    }

    public function createCreditCard(Transaction $transaction): string
    {
        // code pour créer une carte de crédit
    }
}
  1. Ajouter la nouvelle classe dans le fichier PaymentFactory.php
public function gateway(): StripePayment
{
    return match ($this->gateway) {
        'stripe' => new StripePayment(),
        'paypal' => new PaypalPayment(), 
        default => throw new \InvalidArgumentException('Unknown gateway'),
    };
}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors