This is a PHP libary for Epay. It mimics the Stripe PHP Libary to allow for a cleaner and easier to use API.
Install the package by doing: composer require krve/epay
Work in progress
- Better test coverage
- Better Epay API Coverage
- Rewrite base API Class
You will probably notice that in the documentation there is several references to $customer_id
. Customer ID references the subscriptionid you get back after having used the Epay Payment window. Don't worry about the mismatch in naming, it's simply called $customer_id
so it fits the class Epay/Customer.
To set the your Merchant ID, Epay Webservice password and default currency make use of Epay/Epay. This needs to be done BEFORE making any calls to the api
Epay::setMerchantNumber($merchant_number);
Epay::setPassword('secret');
Epay::useCurrency('EUR', 978)
You can both retrieve and delete a Customer using the API. See examples below.
$customer = Customer::retrieve($customer_id);
$customer = Customer::retrieve($customer_id);
$customer->delete();
You can also get the customers subscriptions.
$subscriptions = $customer->subscriptions();
See example below.
$charge = Charge::create([
'amount' => 1000,
'customer' => $customer_id,
'order' => uniqid(),
'description' => 'Charge description'
]);
You also have the ability to specify a custom currency.
$charge = Charge::create([
'amount' => 1000,
'customer' => $customer_id,
'order' => uniqid(),
'description' => 'Charge description',
'currency' => 840,
]);
For the moment you can only create a very basic plan using the API. If you want more options (You probably do) make use of Epays Plan manager.
$plan = Plan::create([
'amount' => 2000,
'interval' => 'yearly',
'name' => 'Test Plan',
]);
You can also use the Epay\Plan to fetch the plans subscriptions.
$subscriptions = $plan->subscriptions();
You can create a subscription to a plan by doing the following:
$subscription = Subscription::create([
'customer' => $customer_id,
'plan' => $plan_id,
'email' => '[email protected]'
]);
This signs up the user to the plan. You also have the ability to retrieve and cancel a subscription
$subscription = Subscription::retrieve($subscription_id);
$subscription->cancel();
And fetch all subscriptions
$subscriptions = Subscription::all();
When you have a subscription you also have the ability to fetch the subscriptions customer. This will return a Epay\Customer instance.
$customer = $subscription->customer();
And the plan. This will return a Epay\Plan instance.
$plan = $subscription->plan();
Copy the .env.example to .env and fill out the values.
Then run phpunit
If you see anything you think could be improved, feel free to fork and create a PR with your changes. Just remember to keep the same code style. (PSR-2)