laravel/cashier — pull request #96 by micheleangioni (2014-08-03 21:30:47+00:00)
Title: Added one time payments

Cashier only allows to manage subscriptions, but it can't handle one time payments yet. This is very limiting since a lot of sites only need to be able to sell something without requiring a subscription.

This pull request adds a oneTimePayment() method which simply returns a Gateway instance.
A performPayment() method has been added to the Gateway to handle the payments.

performPayment() first checks if the user is already a Stripe customer. If he is, it retrieves the customer instance, otherwise it creates a new Stripe customer. Eventually the charge is performed.

The following is an example of how the method can be called
```
$user->oneTimePayment()->performPayment(Input::get('stripeToken'),
array(
'amount' => Input::get('amount'),
'currency' => 'eur',
'description' => "This is a one time purchase"),
array(
'card' => Input::get('stripeToken'),
'email' => $user->email)
);
```

Two tests have also been added.

Please share your opinions! :)