krve / epay
Epay PHP Libary
Installs: 1 287
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=5.6.3
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- ext-soap: *
Requires (Dev)
- phpunit/phpunit: ~4.0
- vlucas/phpdotenv: ^2.4
This package is auto-updated.
Last update: 2025-01-23 06:20:11 UTC
README
Epay PHP Libary
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
Current Todo
- Better test coverage
- Better Epay API Coverage
- Rewrite base API Class
Documentation
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)
Epay/Customer
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();
Epay/Charge
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, ]);
Epay/Plan
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();
Epay/Subscription
You can create a subscription to a plan by doing the following:
$subscription = Subscription::create([ 'customer' => $customer_id, 'plan' => $plan_id, 'email' => 'test@email.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();
Testing
Copy the .env.example to .env and fill out the values.
Then run phpunit
Contributing
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)