Our Magento2-Plugin comes with regular updates and full integration support, offering a versatile out-of-the-box solution to accept online payments easily:
Keep an eye on our Release Notes to stay informed about updates and new features (i.e. payment methods, features, integration modes) we have added to this plugin!
Check out our documentation to learn how to link your store with our platform to profit from all these features!
Current Release: v3.11.0
An active PAYONE - Account is required. If you do not have one yet, please contact us.
You have 2 ways to install our plugin:
composer require payone-gmbh/magento-2
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:clean
To send the transaction status to the correct address, the log in to the PAYONE Merchant Interface (PMI).
Under Configuration → Payment Portals → YOUR_PORTAL → Advanced → TransactionStatus URL
Under General, set the Additional Response data for both Live and Test modes to "on".
Some payment methods require special adjustments. The next points are only relevant to you if you use the specific payment method:
These two payment methods require their own payment portal. Please enter under PAYONE → Payment → Secured Invoice (new) or Secured Installment → Use Global Settings to "No" and set a separate portal ID.
Please enter the following URL under Integrator-URL in the item "Integration settings" in Seller Central: https://gpc-sys.pay1.de/gpc/amazon/1.0/notify - the "Seller URL" may remain empty. This URL ensures that the shop receives all notifications from Amazon.
To activate the payment method, please use the "get configuration" button. This retrieves your client ID and Seller ID from our Platform. You should then see the values in the corresponding fields.
Please note that you can only make live payments after the payment method is allowed for live payments in Seller Central
Field | Description |
---|---|
Amazon Client ID |
Displays the current Client ID |
Amazon Seller ID |
Displays the current Seller ID |
Get configuration |
Click this button to retrieve the current configuration from PAYONE. This payment method won't work before the configuration has been saved! |
Amazon Button Type |
|
Amazon Button Type |
|
Amazon Mode |
|
Amazon Mode |
|
In some cases there can be an interference between our plugin and the Amazon plugin provided in the Magento Core. So if you encounter "strange behavior" like disapperaing amazon buttons, you could try the following command in the magento root:
|
Under CreditCard-Type, select which credit cards you want to offer.
Determines whether the credit card verification number is queried. This is only possible if the acquirer allows it.
Field | Description |
---|---|
Request BIC |
Toggles whether the BIC is queried in the checkout. Use this configuration for better compatibility with bank accounts from outside DACH |
Validate Bank Code |
Turns on a bank account check using "bankaccountcheck" prompt. This setting is part of our optional Risk Management Module
|
List of supported SEPA countries |
Multiple selection of the countries from which the payment type debit memo is supported. The PAYONE platform currently only supports direct debits for German bank accounts. |
Mandates enabled |
Select Yes / No. Should the SEPA mandate manager be used? A check of the bank details is obligatory. A check against the POS lock list is not possible. |
Mandates download enabled |
Select Yes / No. If Yes is selected, a link is offered after the order has been placed, via which the end customer can download the SEPA Mandate as a PDF file. |
Field | Description | |
---|---|---|
Enabled |
Yes/ No |
|
Title |
Name of the payment method, which appears in the checkout |
|
Apple Pay Merchant Id |
This value can be taken from the Apple Developer Portal as "Identifier" of your Merchant ID: |
|
Certificate file |
Please upload your Merchant Identification Certificate from the Apple Developer Portal in .pem format. You can convert the merchant_id.cer file to .pem with this console command: Certificate file
|
|
Private key file |
Please upload the private key file used to create the Apple Pay CSR here. |
|
Private key password |
Here you can set the password for using the private key |
|
Allowed card types |
Select here the card types that are allowed for Apple Pay. Please only select the card types here that are also part of your PAYONE contract. |
In addition to the configuration in Magento, it is also necessary to set up the corresponding certificates to operate Apple Pay as a payment method. You can find instructions for this here: Special Remarks - Apple Pay
Additionally, Apple requires validation of the store domain for Apple Pay. To do this, follow the instructions in the Apple Developer Portal:
Click on PAYONE → Orders
Here you will find a PAYONE-specific order overview similar to the Magento order overview. In addition to the standard information, you can view the payment status on the PAYONE platform, the exact type of payment (e.g. credit card brands) and, if applicable, the dunning status. A click on View opens the detailed view of the corresponding order.
Preauthorized transactions have to be captured in order to trigger the actual cash flow. The PAYONE Plugin handles this step during creation of the invoice for a given order. Under PAYONE → Orders → Order view → Invoices you can trigger the capture with the invoice creation.
By selecting "Capture Online" in the dropdown list shown above, the debt will be collected on the PAYONE platform. If you do not want to capture the money but still want to create an invoice and receivable, please select "Capture Offline" instead.
Partial captures are also possible by simply adjusting the billable quantity of the items.
Refund
Already captured funds can be returned by creating a credit memo for an existing invoice.
Open the invoice details of the invoice to be credited. Click on Credit Memo in the upper right corner.
Enter here the amount to be refunded:
By selecting the "Refund" Button here, Money is sent back to the customer's payment method. "Refund Offline" will create the credit memo, but won't trigger any cash flow.
Partial refunds are possible using the same method as with partial captures. You can also adjust the sum of the refund to account for fees during the refund, but keep in mind that some payment methods rely on cart items to match with the initial order.
Here you will find separate setting options that allow you to customize our plugin more precisely to your needs.
Click on PAYONE → General → Send invoicing information activate the transmission of item data to create an invoice on the PAYONE platform.
The text can be freely selected and appears as dynamic text on the invoice or credit note. Various Magento variables can be used as placeholders.
Click on PAYONE → General → Status Mapping the different transaction statuses of the PAYONE platform can be mapped to Magento order statuses. If a new transaction status is received, the corresponding "Magento status" is set in the order overview in the Magento backend. This can be entered separately for each payment type.
Click on PAYONE → General → Payment Creditcard → Input configuration → Custom styling hosted-Iframe
Feld | Beschreibung |
---|---|
Active |
Yes/No |
Digit-count |
Length of the field in characters (HTML attribute size) |
Width |
CSS - Spezifiziert width |
CSS |
Specification of CSS properties for field |
Height |
CSS - Indication of height |
iFrame |
|
iFrame |
|
Language |
Select the language in which the error message is to be output. |
Standard-style |
|
Style |
|
Type |
|
Max-digits |
Maximum length of input (HTML attribute maxlength) |
At this point you can see how the appearance looks according to the previous setting of the credit card payment method in Checkout.
Simple Protect is the easy and flexible way of using all the data you have, right in the moment when your shop is proccessing the checkout. You can i.e. gain information from:
Here is an example of some complex decisions that can be performed using our simple protect framework:
Simple Protect is currently under beta stage. If you want to use this functionality you have to download the PAYONE Integration from the Simple Protect branch:
https://github.com/PAYONE-GmbH/magento-2/tree/simple-protectAfter that, please follow the intructions for installing the Simple Protect Template here:
https://github.com/PAYONE-GmbH/magento-2-simple-protectA complete example implementation you will find at:
Please be aware that all functions described in the legacy part of this documentation won't be available anymore when using simple protect. For the time being, we also don't offer a migration mechanism.
Be aware that you have to be compliant as described in the specifications of the GDPR
First of all you have to initialize a database object:
/**
* Database connection resource
*
* @var \Magento\Framework\App\ResourceConnection
*/
protected $databaseResource;
__construct it
/**
* Constructor
*
* @param \Magento\Framework\App\ResourceConnection $resource
*/
public function __construct(
\Magento\Framework\App\ResourceConnection $resource
)
{
$this->databaseResource = $resource;
}
and then you can ask the database for information like these
/**
* Get count of customers orders
*
* @param CustomerInterface $oCustomer
* @return int
*/
protected function getCustomersOrderCount(CustomerInterface $oCustomer)
{
$db = $this->databaseResource->getConnection();
$oSelect = $db->select()
->from($this->databaseResource->getTableName('sales_order'), ['COUNT(entity_id)'])
->where("customer_id = :customerId");
$iCount = $db->fetchOne($oSelect, ['customerId' => $oCustomer->getId()]);
if ($iCount === null) {
return 0;
}
return $iCount;
}
to be able for executing the protect check you have to init and construct the PAYONE protectFunnel
/**
* PAYONE Protect model providing access to consumerscore and addresscheck requests
*
* @var \Payone\Core\Model\SimpleProtect\ProtectFunnel
*/
protected $protectFunnel;
public function __construct(
\Payone\Core\Model\SimpleProtect\ProtectFunnel $protectFunnel
)
{
$this->protectFunnel = $protectFunnel;
}
here is a simple method to execute the addresscheck with the billing address
/**
* Example for addresscheck usage
*
* @param Quote $oQuote
* @return AddresscheckResponse|bool
*/
protected function executeAddresscheck(Quote $oQuote)
{
$oAddress = $oQuote->getBillingAddress();
$sAddresscheckType = AddressCheckType::BASIC;
return $this->protectFunnel->executeAddresscheck($oAddress, $this->getOperationMode(), $sAddresscheckType);
}
if you want to perform the addresscheck on the shipping address you have to change the $oAddress - Variable this way
/**
* getting the shipping address
*/
$oAddress = $oQuote->getShippingAddress();
maybe you want to use another way / type for the addresscheck there are many more options
/**
* Examples of all the types for addresscheck usage
*/
$sAddresscheckType = AddressCheckType::NONE;
$sAddresscheckType = AddressCheckType::BASIC;
$sAddresscheckType = AddressCheckType::PERSON;
$sAddresscheckType = AddressCheckType::BONIVERSUM_BASIC;
$sAddresscheckType = AddressCheckType::BONIVERSUM_BASIC;
here is a simple method to perform the consumerscore - request as in the addresscheck described you can also switch the address which you want to check
/**
* getting the shipping address
*/
$oAddress = $oQuote->getShippingAddress();
all options for the consumerscore are described here
/**
* Examples of all the options for consumerscore usage
*/
$sConsumerscoreType = CreditratingCheckType::INFOSCORE_HARD;
$sConsumerscoreType = CreditratingCheckType::INFOSCORE_ALL;
$sConsumerscoreType = CreditratingCheckType::INFOSCORE_ALL_BONI;
$sConsumerscoreType = CreditratingCheckType::BONIVERSUM_VERITA;
an example
/**
* Example for consumerscore usage
*
* @param Quote $oQuote
* @return ConsumerscoreResponse|bool
*/
protected function executeConsumerscore(Quote $oQuote)
{
$oAddress = $oQuote->getBillingAddress();
$sConsumerscoreType = CreditratingCheckType::INFOSCORE_ALL;
return $this->protectFunnel->executeConsumerscore($oAddress, $this->getOperationMode(), $sConsumerscoreType, $sAddresscheckType);
}
you can use the result from above like this
/**
* Check the result of executing the consumerscore
* @return bool
*/
$oResponse = $this->executeConsumerscore($oQuote);
if ($oResponse instanceof ConsumerscoreResponse && ($oResponse->getStatus() != 'VALID' || $oResponse->getScore() != 'G')) {
return true;
}
In the above example the call $oResponse->getScore() will give you the value score as described here
if you need to have other decisions regarding a store view, you can ask for it with the existing magento objects like
/**
* Change AddressCheckType for the stores
* @default AddressCheckType::NONE
*/
$sAddresscheckType = AddressCheckType::NONE;
if ($oQuote->getStore()->getName() == 'new Brands') {
$sAddresscheckType = AddressCheckType::PERSON;
} else if ($oQuote->getStore()->getCode() == 'old_Brands') {
$sAddresscheckType = AddressCheckType::BASIC;
}
Click on PAYONE → Protect
The class app/code/Payone/SimpleProtect/Model/SimpleProtect/SimpleProtect.php is the central point to implement the decisions. The following methods reperesent the points where the actions are taking place.
|
Implementing this method gives you the following possibilities:
|
Implementing this method gives you the following possibilities:
|
Implementing this method gives you the following possibilities:
|
Implementing this method gives you the following possibilities:
|
Click on PAYONE → Protect
Field | Beschreibung |
---|---|
Enabled |
Activating the address check |
Mode |
Choice between Test / Live. This determines whether the PAYONE platform is addressed in Test or Live mode. |
Check Billing Address |
Configuration with which check the invoice address is to be checked. |
Check Shipping Address |
Configuration with which check the delivery address is to be checked. |
Check Billing Address for virtual orders |
Select yes/no whether the billing address should be checked for virtual orders. |
Confirm address correction |
Selection yes/no whether an address correction must be confirmed by the buyer. |
Person Status Mapping |
Assignment of individual person status returns to a traffic light value. Works only with the address check "Person", which returns personal information
|
Message to display for invalid data |
Error message to be displayed at status "INVALID" |
Response ERROR handling |
What should be executed after an error in the extension or the PAYONE platform? |
Minimum Order Total |
Minimum amount to execute an address check. |
Maximum Order Total |
Maximum amount to execute an address check. |
lifetime |
Number of days in which no new address validation is performed. |
Field | Description |
---|---|
Enabled |
Activation of the credit rating check |
Mode |
Choice between Test / Live. This determines whether the PAYONE platform is addressed in Test or Live mode. |
Integration Event |
Selection of "Before/After" payment selection. |
Creditrating-Checktype |
|
Default values for unknown scores |
Selection of a traffic light color for the return status "Unknown" |
only affects Boniversum verita score! |
|
Response ERROR handling |
What to do if an error occurs in the integration or on the PAYONE platform? |
Insufficient score error message |
Message displayed to the customer when an insufficient point value is reached. |
Minimum Order Total |
Minimum amount to carry out a credit check. |
Maximum Order Total |
Maximum amount to carry out a credit check. |
lifetime |
Number of days in which no new credit check is performed. |
Click on PAYONE → Misc
After the installation, the currently valid IP addresses are specified there. Only change if necessary. You only need to add these addresses if your system landscape works with load balancers or proxy systems, for example. Please consult your admin or hosting service provider.
Click on PAYONE → Misc
At this point you can define which status is forwarded to which URL and how long the timeout is in seconds until the redirection attempt is terminated.
Click on PAYONE → Misc
Here you can define a SKU that shall be used to identify discount items. This can be left blank unless you are experiencing issues with shopping cart items
Here you can define a SKU that shall be used to identify shipping items. This can be left blank unless you are experiencing issues with shopping cart items.
Here you can define a SKU that shall be used to identify shipping items. This can be left blank unless you are experiencing issues with shopping cart items.
Here you can define a SKU that shall be used to identify vouchers. This can be left blank unless you are experiencing issues with shopping cart items.
Click on PAYONE → Export Configuration
Clicking Export configuration will download a file.
You can now open this file with an XML editor and view or save it. This export is very important for every support request to the PAYONE team in order to avoid possible configuration problems. This file can also be used to determine whether any further extensions have been installed that could cause compatibility problems.
Click on PAYONE → Logs
In the Logs section you can find all the information about the processed payments and communication with the PAYONE platform.
In this overview you will find all requests from the Magento shop to the PAYONE platform as well as the answers of the PAYONE platform to these requests. Only the requests that were transmitted to the PAYONE platform via Client API are not listed in this overview. This applies to credit card information that is transferred directly from the buyer's browser to the PAYONE platform using Ajax technology so that your shop does not come into contact with sensitive credit card information. By clicking on View, you can display an API request in detail.
In the left column you can see the request that the Magento shop has sent to the PAYONE platform. On the right you will find the answer. A detailed explanation of the respective parameters can be found in the technical documentation of the PAYONE platform in the PAYONE Merchant Interface (PMI) under Downloads → Documentation.
Click on PAYONE → Transactionsstatus
The Transactions submenu item displays Magento received transaction status notifications for each order and transaction. These notifications are sent from the PAYONE platform to your shop. If there are any errors, you can find out here whether the transaction status was received correctly and what the current status is for a transaction. By clicking on View, you can display details on a transaction status.
On the details page, you will see all the transaction status information transmitted through the PAYONE platform to your shop. Thus, you can always track which data your Magento shop has received and processed.
A detailed explanation of the respective parameters can be found in the technical documentation of the PAYONE platform in the PAYONE Merchant Interface (PMI) under Downloads → Documentation.