Skip to content

Payments

TIP

If you're looking for a guide on how to create your own Payment Driver, or for a more in-depth look at how they work, head over to the extending section.

Overview

Lunar takes a driver based approach with Payments, meaning you are free to use either add ons to support the provider you wish to use, or you can create your own to meet your exact needs.

Configuration

All configuration for payments is located in config/lunar/payments.php. Here you can specify different types of payments and the driver each one should use.

php
<?php

return [
    'default' => env('PAYMENTS_TYPE', 'offline'),

    'types' => [
        'cash-in-hand' => [
            'driver' => 'offline',
            'released' => 'payment-offline',
        ],
        'card' => [
            'driver' => 'stripe',
            'released' => 'payment-received',
        ],
    ],
];

Usage

To use a payment driver, you need to pass the type of payment you wish to use, this will then return an instance of the driver.

php
$driver = \Lunar\Facades\Payments::driver('card');

We can then set the cart.

php
$driver->cart(\Lunar\Models\Cart $cart);

Set any additional data that the driver may need.

php
$driver->withData([
    'payment_token' => $token,
]);

Finally, we can authorize the payment.

php
$driver->authorize();