Epay PHP Libary
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@example.com' ]);
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.
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)