Introduction
Welcome to the Intershop Commerce Management PAYONE Service Connector. The Service Connector adds PAYONE payment methods to your Intershop Commerce Management (ICM) installation.
This document provides important product information, including version information and dependencies. It also outlines the basic setup and configuration steps.
This delivery and the accompanying documentation are valid for the following combinations of software versions:
Intershop | PAYONE Service Connector |
---|
7.10.31.x+ (Tomcat 9) | |
The next table provides information about the cartridges included in the package. Not all of these cartridges are required.
Cartridge | Description | Required |
---|
ac_payment_payone | Includes all base functionality and business logic which is used. | |
as_responsive_payone | Enables the PAYONE payment connector for the following application types: - intershop.B2CResponsive
- intershop.SMBResponsive
The cartridge is optional, can be downloaded separately from Intershop Product Calendar and may be included if the project uses the responsive starter store. Unzip the file to your multi-project folder next to your responsive source files. It could be skipped if the custom project does not support these application types or PAYONE is not required in these application types. | |
app_sf_responsive_payone | Includes some additional functionality which is relevant for the responsive storefront reference application only, e.g., the integration of the hosted payment pages of the credit card. The cartridge is optional, can be downloaded separately from Intershop Product Calendar and may be included in case the project is based on the responsive storefront reference application. Unzip the file to your multi-project folder next to your responsive source files. The referenced cartridge app_sf_responsive may be renamed in the project and has to be referenced in the build.gradle file with the customized naming again. | |
The PAYONE Service Connector 6.x is based on the Payment API 3.4.
The source for as_responsive_payone and app_sf_responsive_payone is available here
<YOUR_REPOSITORY>/releases/com.intershop.public.source/s_payment_payone/<CONNECTOR_VERSION>/zips/s_payment_payone-zip-src-<CONNECTOR_VERSION>.zip
Preconditions
- The PAYONE Service Connector requires an installed Intershop Commerce Management system. See version numbers above.
- Using the PAYONE Service Connector requires a dedicated payment provider contract with vendor PAYONE.
Make sure to contact PAYONE to negotiate and sign your payment provider contract.
Supported Application Types
The PAYONE Service Connector can be used for the following application types:
Application Type | Application Type ID | Description |
---|
B2C WebShop | intershop.B2CWebShop | Business to Consumer Channel |
SMB WebShop | intershop.SMBWebShop | Business to Business Channel |
Progressive Web App | intershop.REST | Progressive Web App endpoint for B2C/B2B channel Supported payment methods: - Credit Card
- PayPal
- paydirekt
- Invoice
- PostFinance E-Finance
- PostFinance Card
- SOFORT Banking
- giropay
- eps
- iDEAL
|
Feature Overview
This section summarizes important features delivered with the PAYONE Service Connector.
Payment Methods
The PAYONE Service Connector adds the following payment methods to your Intershop Commerce Management system:
Release | Payment Method Type | Details |
---|
5.1 | PayPal | PayPal |
Online Payment | SOFORT Überweisung |
5.2 | Credit Card | Credit Card payment with:- Visa
- Mastercard
- American Express
- Carte Bleue
- Diners Club
- Discover
- JCB
- Maestro International
This payment method uses Payone iFrames to enable compliance with PCI-DSS. It supports 3DS version 1.0 and 2.0. |
Account Based Payment | Cash in Advance |
Direct Debit |
Invoice |
Online Payment | iDEAL |
PostFinance E-Finance |
eps |
5.3 | Online Payment | PostFinance Card |
5.4 | Online Payment | giropay |
5.4 | Account Based Payment | paydirekt |
Intershop's customers can safely use Intershop Commerce Management in PCI certified environments without impacting their certification status. Furthermore, Intershop Commerce Management provides features and configurability needed to implement all the requirements of the PCI Compliance program.
Payment Management Options
The following table lists all options that are available for payment transactions.
Operation | Description |
---|
Capture | Request for settling the payment. This action is only available if the corresponding payment method's Capture Mode is set to manual. |
Cancel | Request for abandoning a payment settlement. This action is only available if the corresponding payment method's Capture Mode is set to manual. |
Refund | Option to return (parts of) the capture amount. |
There are certain limitations regarding the implemented capabilities, see Restricted Capabilities.
Setup
Precondition
The package is available via Intershop's Public Repository (Artifactory). The following preconditions are required:
- A set up and configured CI environment
See Cookbook - Setup CI Infrastructure for details.
See Concept - Continuous Delivery Tools (valid to 7.10) for basic information about continuous integration. - A running installation of ICM 7.10.31 or later that matches the system requirements
- Knowledge of how to add the delivered artifacts to the continuous integration environment
- Knowledge of how to deploy to a test or production environment
Setting Up the Assembly
To add the PAYONE Service Connector into your Intershop Commerce Management system, you may either incorporate the cartridge into an already existing assembly or create a new assembly inheriting from an ICM-based assembly. For details about the latter, see Recipe: Create a New Assembly Inheriting From an Existing Assembly. For incorporating the cartridge into an already existing assembly, perform the following steps:
Add the following in the build.gradle file of the assembly:
...
cartridges {
def storefrontCartridges = [
'app_sf_responsive',
'app_sf_responsive_cm',
'app_sf_responsive_b2c',
'app_sf_responsive_smb',
'as_responsive',
'app_sf_responsive_b2b',
'app_sf_responsive_costcenter',
'as_responsive_b2b',
// this are the two cartridges, which we delivered in source code and you have to add these files to your responsive source project
'as_responsive_payone',
'app_sf_responsive_payone'
]
include(*(storefrontCartridges.collect { project(":$it") }), in:[development, test, production])
...
def payonePaymentProvider = [
'ac_payment_payone',
]
include (*(payonePaymentProvider.collect {"com.intershop.services.payment_payone:$it"}), in: [development, test, production])
order = listFromAssembly(baseAssembly) + payonePaymentProvider
}
...
assemblyBuild {
database {
inherit(<yourAssembly>)
initCartridges = []
}
}
...
configurations.all {
exclude group: 'com.sun.xml.bind', module: 'jaxb-impl'
}
Adapt the app_sf_responsive_payone/build.gradle file in the following way:
apply plugin: 'static-cartridge'
intershop
{
displayName = 'Adapter - Payment PAYONE - Business Extensions'
}
dependencies
{
// compile project(':ac_payment_payone') --> will be replaced by
compile group: 'com.intershop.services.payment_payone', name: 'ac_payment_payone'
compile group: 'com.intershop.platform', name: 'businessobject'
...
compile group: 'com.intershop.business', name: 'bc_payment'
// compile group: 'com.intershop.responsive', name: 'app_sf_responsive' --> will be replaced by
compile project(':app_sf_responsive')
...
}
Adjust the file as_responsive_payone/build.gradle in a similar way:
...
dependencies {
// compile project(':ac_payment_payone') --> will be replaced by
compile group: 'com.intershop.services.payment_payone', name: 'ac_payment_payone'
compile project(':app_sf_responsive_payone')
}
...
to consume the desired version (e.g. 6.1.1).
Example:
com.intershop.services.payment_payone:ac_payment_payone = 6.1.1
For details about managing assembly artifacts, see:
Defining File-Based Configuration
Before deploying the new assembly to a test or production environment, you may have to adjust some file-based configurations required by the PAYONE Service Connector.
The PAYONE Service Connector requires the following settings:
Property | Description | Value |
---|
intershop.payment.Payone_Cash_In_Advance.currencies | Defines which currencies are configurable for PAYONE Cash in Advance. Default: EUR. | comma-separated list, e.g., EUR |
intershop.payment.Payone_CreditCard.currencies | Defines which currencies are configurable for PAYONE Credit Card. Default: all. | comma-separated list, e.g., EUR, USD |
intershop.payment.Payone_DirectDebit.currencies | Defines which currencies are configurable for PAYONE Direct Debit. Default: EUR. | comma-separated list, e.g., EUR |
intershop.payment.Payone_Eps.currencies | Defines which currencies are configurable for PAYONE eps. Default: EUR. | comma-separated list, e.g., EUR |
intershop.payment.Payone_IDeal.currencies | Defines which currencies are configurable for PAYONE iDEAL. Default: EUR. | comma-separated list, e.g., EUR |
intershop.payment.Payone_Invoice.currencies | Defines which currencies are configurable for PAYONE Invoice. Default: EUR. | comma-separated list, e.g., EUR |
intershop.payment.Payone_PayPal.currencies | Defines which currencies are configurable for PAYONE PayPal. Default: all. | comma-separated list, e.g., EUR, USD |
intershop.payment.Payone_PostFinance_EFinance.currencies | Defines which currencies are configurable for PAYONE PostFinance E-Finance. Default: CHF. | comma-separated list, e.g., CHF |
intershop.payment.Payone_PostFinance_Card.currencies | Defines which currencies are configurable for PAYONE PostFinance Card. Default: EUR & CHF. | comma-separated list, e.g., EUR, CHF |
intershop.payment.Payone_Sofort.currencies | Defines which currencies are configurable for PAYONE SOFORT Überweisung. Default: EUR. | comma-separated list, e.g., EUR |
intershop.payment.Payone_Giropay.currencies | Defines which currencies are configurable for PAYONE giropay. Default: EUR. | comma-separated list, e.g., EUR |
intershop.payment.Payone_Paydirekt.currencies | Defines which currencies are configurable for PAYONE paydirekt. Default: EUR. | comma-separated list, e.g., EUR |
This setting can be overridden within <IS_SHARE>/system/config/cartridges/ac_payment_payone.properties, see Recipe: Change Deployed File Content With Filters.
For details about adding new configuration files, see Recipe: Deploy Custom Files.
Deploying the Assembly
After creating and appropriately configuring the assembly, you must deploy it to the intended target environment.
For details about deploying an assembly see Recipe: Run the Deployment (Initial Installation / Upgrade / Downgrade).
Configuration
Adjusting Firewall Settings
Adjust your firewall settings to allow bidirectional HTTP and HTTPS traffic between Intershop Commerce Management and:
- api.pay1.de/post-gateway/
- secure.pay1.de/client-api/
Make sure that the ViewPayone pipeline is accessible from the available PAYONE IP addresses only.
Applying UI-Based Configuration
The PAYONE Service Connector requires some post-deployment configurations in Organization Management and Commerce Management.
Please consult the PAYONE documentation for information on how to set up your payment portal.
Configuring the PAYONE Shop Portal
Aside from the standard PAYONE shop portal configuration that is described in the PAYONE documentation, you should also configure the TransactionStatus URL.
Explanation | Image |
---|
PAYONE Merchant Interface (PMI): https://login.pay1.de/ 1. Enter username. 2. Enter password. 3. Click Login. | |
4. Click Configuration. 5. Click Payment Portals. 6. Select your portal and click Edit. | |
7. Click Extended. 8. Enter a valid Success URL. 9. Enter a valid Back URL. 10. Enter a valid TransactionStatus URL. (Set the TransactionStatus URL to point to the ViewPayone-Notify pipeline. Assuming there is no URL rewriting, it should look similar to this: 'https://<host>:<port>/INTERSHOP/web/WFS/<site>/<locale>/-/<currency>/ViewPayone-Notify'. ) 11. Click Save. | |
Enabling and Configuring a Payment Service
Check the Recipe - Enable a Payment Service in the Cookbook - Payment to get detailed instructions about enabling and configuring a payment service.
Payment-Method-Specific Settings:
Name | Description |
---|
Merchant-ID | Your merchant account's merchant ID as provided by PAYONE. |
Portal-ID | Your merchant account's portal ID as provided by PAYONE. |
Sub-Account-ID | Your merchant account's sub account ID as provided by PAYONE. |
Portal-Key | Your merchant account's portal key as provided by PAYONE (unencrypted). |
Environment | Switch between productive and test environment (Test is set as default). Select Live on the live system. Keep Test for the test environment. |
Base URL | PAYONE Gateway URL. |
Capture | This describes the capture mode (Manual, Auto). If Timed is used you must set a Capture Time in Hours. For all online payment methods (giropay, SOFORT Überweisung, iDeal, eps, Post-Finance EFinance and Post-Finance Card) capture must be set to Auto. |
Bank Account Check | If checked, the bank account check is enabled. Available for Direct Debit. |
Submit Order Details | If checked, product line items are transmitted to PAYONE. |
Use PAYONE Mandate Management | Enables the usage of PAYONE mandate management. Available for Direct Debit. |
Download mandate as PDF | Enables the download of PAYONE mandate as PDF. Available for Direct Debit. |
Ask For CVC | Ask for Card Security Code (CVC/CSC/CVV/CID). Available for Credit Card. |
You can see the required PAYONE values by going to the API-Parameter tab of your PAYONE shop portal.
File-Based Configuration
A part of the payment method configuration is not meant to be changed in the Commerce Management application and is available through server properties. These properties are read using the configuration framework and as such can be overridden for an application type. For more information on the configuration framework, check the Concept - Configuration (valid from 7.10.12) and Cookbook - Configuration.
Credit Card iFrame Styles
For the configuration of the styles the credit card payment method can be adjusted with the following properties:
Property | Values | Description |
---|
payment.payone.creditcard.<field>.size | Positive number | Determines the size of the input field. Default = 4 |
payment.payone.creditcard.<field>.maxlength | Positive number | Determines the length of the input field. Default = 4 |
payment.payone.creditcard.<field>.width | String | Determines the width of the iframe that holds the field. The unit of the width has to be specified the same way as it would be specified in a CSS style (e.g., 60px). |
payment.payone.creditcard.defaultStyle.height | String | Determines the height of the iframe that holds the field. The unit of the height has to be specified the same way as it would be specified in a CSS style, Default = 34px |
payment.payone.creditcard.defaultStyle.width | String | Determines the width of the iframe that holds the field. The unit of the width has to be specified the same way as it would be specified in a CSS style. Default = 250px |
payment.payone.creditcard.defaultStyle.input | String | Default CSS style to be used with text fields. |
payment.payone.creditcard.defaultStyle.select | String | Default CSS style to be used with select fields. |
1 - <field> identifies which PAYONE credit card field is affected by the property. Supported values are cardtypes, cardnumber, cardcvc2, cardexpiremonth, cardexpireyear, e.g., payment.payone.creditcard.cardcvc2.width.
Supported Countries
For each payment method a list of supported countries can be defined. A comma-separated list of ISO 3166 ALPHA 2 country codes (also see PAYONE API documentation) is valid. The value '*' can be used if there is no restriction.
Property | Default |
---|
intershop.payment.Payone_Sofort.countries | AT,DE,CH,NL |
intershop.payment.Payone_Eps.countries | AT |
intershop.payment.Payone_DirectDebit.countries | DE,AT |
intershop.payment.Payone_IDeal.countries | NL |
intershop.payment.Payone_PostFinance_EFinance.countries | CH |
intershop.payment.Payone_PostFinance_Card.countries | CH |
intershop.payment.Payone_Giropay.countries | DE |
intershop.payment.Payone_Paydirekt.countries | DE |
intershop.payment.Payone_PayPal.countries | * |
intershop.payment.Payone_Invoice.countries | * |
intershop.payment.Payone_Cash_In_Advance.countries | * |
intershop.payment.Payone_CreditCard.countries | * |
See Supported Countries and Currencies for further information about payment method specifics.
Localization
The PAYONE Service Connector provides English and German localization for payment-specific input field labels, error messages, etc.
You can find the existing localization files here: <IS.INSTANCE.SHARE>/system/cartridges/ac_payment_payone/release/localizations.
For details about localization, see:
Data Handling
The following table describes transmitted data by the PAYONE Service Connector from ICM to PAYONE during the payment process:
| Description | PAYONE Payment Methods |
---|
|
| Invoice | Cash in Advance | Credit Card | Direct Debit | EPS | GiroPay | Paypal | Sofort | Ideal | PostFinance E-Finance | PostFinance Card | Paydirekt |
---|
Amount | The amount for the transaction | | | | | | | | | | | | |
---|
Currency | Currency code e.g. EUR/USD | | | | | | | | | | | | |
---|
Customer details (e-mail, first name, last name) | Customer e-mail, customer first name, and last name | | | | | | | | | | | | |
---|
reference (order id) | Order reference generated by the merchant | | | | | | | | | | | | |
---|
Address details (street, zip, city, country) | Invoice and shipping address details provided by the user (optional and configurable in back office) | | | | | | | | | | | | |
---|
de[line item details] | Array of product attributes, e.g. product name, value, discount, gift card (optional and configurable in back office) | | | | | | | | | | | | |
---|
bankgrouptype | Issuer of Online-Bank-Transfer | | | | | | | | | | | | |
---|
bankcountry | Country of the bank | | | | | | | | | | | |
|
---|
Credit card details | Card number, CVC, expiry date Sensitive data is handled via PayGate iframes only and is never stored at the merchant. | | | | | | | | | | | | |
---|
language | Language indicator to specify the language that should be presented to the customer | | | | | | | | | | | | |
---|
Account holder name | Name of the account holder | | | | | | | | | | | | |
---|
IBAN | International Bank Account Number | | | | | | | | | | | | |
---|
BIC | Bank Identifier Code to be used for payment | | | | | | | | | | | | |
---|
Browser information | Browser details like javaEnabled, language, colorDepth, timezone, screenHeight, screenWidth, windowSize | | | | | | | | | | | | |
---|
Direct debit type | One time payment (single) Stored account (first/recurring) | | | | | | | | | | | | |
---|
Symbol | Description |
---|
| Transmitted |
| Not Transmitted |
| Optional |
Limitations
Gross Price and Taxation Calculation
The PAYONE payment service requires a gross-based price and tax calculation. That is, the price type and the price display must be set to gross, and a gross-based taxation service must be enabled.
Supported Countries and Currencies
Most of the payment methods included in this package are specific for certain countries or currencies.
Payment Method | Supported Countries | Supported Currencies |
---|
Direct Debit | DE, AT | EUR |
eps | AT | EUR |
iDEAL | NL | EUR |
PostFinance E-Finance | CH | CHF |
PostFinance Card | CH | EUR, CHF |
SOFORT Überweisung | DE, AT, CH, NL | EUR |
Invoice | * | EUR |
giropay | DE | EUR |
paydirekt | DE | EUR |
PayPal | * | * |
Credit card | * | * |
Cash in Advance | * | * |
Restricted Capabilities
- Cancel: No "cancel" capability for eps, iDEAL, PostFinance E-Finance, PostFinance Card and SOFORT Überweisung implemented.
Length of E-Mail Addresses
The length of e-mail addresses is limited to 50 characters on PAYONE side. Only 48 of these characters are usable because the at sign (@) is being replaced by escape characters.
Testing
The payment method Giropay cannot be tested using the PAYONE sandbox anymore. The feature in the sandbox has been deactivated by PAYONE by now.
The payment methods were tested using test data officially provided by PAYONE.
- In ICM, you could set a value for the minimum card validity in months for PAYONE Credit Card Payment Service. However, this currently has no effect.
Therefore, this configuration option has been removed for the time being to avoid confusion. - Fix: Configuration properties for supported countries are also read when the payment methods default is "all countries".
Version PAYONE/6.0.4
- Bug #72865: Sensitive banking data are not logged in log files anymore
- User Story #70259: Reduce usage of error logs
- Bug #63932: Possible NullPointerException fixed, which may occur when no invoice address is assigned while the eligible payment methods are evaluated
Version PAYONE/6.0.0
- User Story #64351: Upgrade PAYONE Connector to Tomcat-9-based ICM (≥7.10.31)
- User Story #61543: Enable PAYONE Credit Card for PWA storefront
- Bug #62433: Handling 'PAID' notifications for Cash In Advance