This is a work in progress.
Via Composer
$ composer require iodigital/peachpayment
This package uses auto discovery but can be added to your config/app.php
providers
by adding \IoDigital\PeachPayment\PeachPaymentServiceProvider::class,
You can publish the assets with the following:
php artisan vendor:publish --tag=peachpayment-config
php artisan vendor:publish --tag=peachpayment-migrations
The configuration file provides you with the ability of adding your production and test Peach Payment credentials. The package does a check against your app environment.
The variables that can be used are:
PEACH_PAYMENTS_USER_ID
PEACH_PAYMENTS_PASSWORD
PEACH_PAYMENTS_AUTHORIZATION_HEADER
PEACH_PAYMENTS_ENTITY_ID_ONCE_OFF
PEACH_PAYMENTS_ENTITY_ID_RECURRING
PEACH_PAYMENTS_TEST_MODE
PEACH_PAYMENTS_NOTIFICATION_URL
PEACH_PAYMENTS_WEBHOOK_SECRET_KEY
This table can be used in conjunction with Server to Server functionality.
This table can be used to store the results of transactions.
This table can be used to store the event data received from webhooks.
This package provides the ability of using Server to Server and COPYandPay. Fairly simple to get either one going:
$client = (new PeachPayment())->initServerToServer();
// or
$client = (new PeachPayment())->initCopyAndPay();
As explained further below, you can also override your Peach Payment credentials on the fly:
$client = (new PeachPayment())->initServerToServer($settings);
Where $settings
is a fluent class.
Methods available to Server to Server:
registerCard(CardBuilder $card);
registerCardDuringPayment(CardBuilder $card);
repeatedPayment(PaymentCard $card, $owner, int $amount, string $type = PaymentScheme::REPEATED_PAYMENT);
oneClickPayment(PaymentCard $card, int $amount);
paymentStatus(string $paymentId);
deleteCard(string $registrationId);
// Available options for $type in repeatedPayment()
PaymentScheme::INITIAL_PAYMENT;
PaymentScheme::REPEATED_PAYMENT;
Methods available to COPYandPAY:
prepareCheckout(int $amount);
getCheckoutRegistrationResult($checkoutId);
registerCard();
registerCardDuringPayment(int $amount);
repeatedPayment(PaymentCard $card, $owner, int $amount, string $type = PaymentScheme::REPEATED_PAYMENT);
paymentStatus(string $checkoutId);
To determine the result of a transaction with Peach Payment, you can use the Response class:
$response = new \IoDigital\PeachPayment\Api\Response();
$response->isSuccessfulResponse($resultCode); // true|false
$response->isValidationError($resultCode); // true|false
Saving the response is also available:
$response->save($result, $paymentCard);
The following change needs to be made in your app/Http/Middleware/VerifyCsrfToken.php
file:
protected $except = [
config('peachpayment.webhook_url')
];
This class allows you to inject or modify your Peach Payment credentials on a per usage basis. By default, it uses the variables given in the config file and you only have to override the variables needed.
Usage is fairly straightforward:
$settings = new Setting();
$settings->setUser('lorem')
->setPassword('ipsum')
->setEntityIdOnceOff('dolor');
$pay = (PeachPayment())->initServerToServer($settings);
This should provide flexibility in certain edge cases.
Please see the changelog for more information on what has changed recently.
$ composer test
Please see contributing.md for details and a todolist.
If you discover any security related issues, please email author email instead of using the issue tracker.
- [author name][link-author]
- [All Contributors][link-contributors]
license. Please see the license file for more information.