morningtrain / wp-nets-easy
Nets Easy SDK for WordPress
Requires
- morningtrain/php-loader: ^0.3
- morningtrain/wp-database: ^0.3
- morningtrain/wp-route: ^0.6
README
A Morningtrain package to simple handle NETS Easy payments.
Table of Contents
Introduction
Getting Started
To get started install the package as described below in Installation.
To use the tool have a look at Usage
Installation
Install with composer
composer require morningtrain/wp-nets-easy
Dependencies
Usage
Initializing package
Initialize \Morningtrain\WpNetsEasy\NetsEasy
with NETS Easy test or live secret key.
\Morningtrain\WpNetsEasy\NetsEasy::init('live-secret-key-abcdefghijklmnopqrstuvwxyz123456789');
Running migrations
This needs to be done before using the package, or after updating the package.
You can run all new migrations like so:
Using wp cli
:
wp dbmigrate
Using php
:
<?php \Morningtrain\WP\Database\Database::migrate(); ?>
Create payment
use Morningtrain\WpNetsEasy\Classes\Payment\Payment; use Morningtrain\WpNetsEasy\Classes\Payment\Customer; use Morningtrain\WpNetsEasy\Classes\Payment\Address; use Morningtrain\WpNetsEasy\Classes\Payment\Item; // Create payment and set payment information and urls $payment = Payment::create() ->setReference($orderId) ->setCustomer( Customer::create() ->setReference($customer->id) ->setEmail($customer->email) ->setPhone($customer->phone) ->setName($customer->firstName, $customer->lastName) ->setCompanyName($customer->companyName) ->setShippingAddress( Address::create() ->setAddressLine1($customer->address1) ->setAddressLine2($customer->address2) ->setPostalCode($customer->zipCode) ->setCity($customer->city()) ) ) ->setTermsUrl(get_post_permalink($termsPageId)) ->setReturnUrl(Route::route('payment-success', ['token' => $order->token])) ->setCancelUrl(Route::route('payment-cancel', ['token' => $order->token])); // Add items to payments foreach($order->items as $item) { $payment->addItem( Item::create($item->sku) ->setName($item->name) ->setQuantity($item->quantity) ->setUnitPriceInclusiveTax($item->price) ); } // Persist payment in NETS Easy $response = $payment->createRequest(); if(wp_remote_retrieve_response_code($response) !== 201) { // Error handling when something was wrong with the payment wp_redirect($checkoutUrl); exit(); } // Save payment reference to order $order->setPaymentId($payment->getPaymentId()); // Redirect to payment page wp_redirect($payment->getPaymentPageUrl()); exit();
Auto charge payment
If your product allows you to auto charge payment. You can tell Nets Easy to charge the payment automatically before you persist the payment.
$payment->autoCharge()
Handle existing payment
When a payment requrest has been created, the payment reference will be saved to the database.
Get payment
Payment is a model implementet with Eloquent. To get payments you can use all methods from Eloquent (see documentation).
You can use the custom method Payment::getByPaymentId($paymentId);
$payment = Payment::getByPaymentId($order->payment_id);
Terminate payment
To terminate payment, the customer must not have finished checkout. You can use it on the cancel callback to avoid double payments later.
$payment->terminate()
Check if payment is reserved
$payment->isReserved()
Check if payment is charged
$payment->isCharged()
Charge payment
$payment->charge()
NOTE: Partly charges is not implementet yet
Refund payment
NOTE: Refund and partly refund is not implementet yet
Create subscription
NOTE: Subscriptions is not implementet yet
Handle existing subscription
NOTE: Subscriptions is not implementet yet
Handle webhoks
The implementation handle webhooks and sets the payment status automatically.
If you need to do something on a specific webhook, you can do that throug actions and filters.
List of implemented webhooks
Actions
Filters
Credits
License
The MIT License (MIT). Please see License File for more information.