Commit 8d156a80 authored by Daniel Kazior's avatar Daniel Kazior
Browse files

Merge branch 'develop' into 'master'

Release 2.5.0

See merge request !4
parents 4e81390f b3a5193e
......@@ -16,17 +16,14 @@ class WC_Gateway_Upg_Helper
switch($language) {
case \Upg\Library\Locale\Codes::LOCALE_EN:
case \Upg\Library\Locale\Codes::LOCALE_TU:
case \Upg\Library\Locale\Codes::LOCALE_NL:
case \Upg\Library\Locale\Codes::LOCALE_RU:
case \Upg\Library\Locale\Codes::LOCALE_PT:
case \Upg\Library\Locale\Codes::LOCALE_FI:
case \Upg\Library\Locale\Codes::LOCALE_DE:
case \Upg\Library\Locale\Codes::LOCALE_ES:
case \Upg\Library\Locale\Codes::LOCALE_FR:
case \Upg\Library\Locale\Codes::LOCALE_IT:
return $language;
default:
return $defaultLocale;
}
}
......
......@@ -62,11 +62,6 @@ class WC_Gateway_Upg_Mns_Process
self::mnsTransactionStatusMerchantPending($order);
$processed = true;
break;
case 'INPROGRESS':
self::mnsTransactionStatusInProgress($order);
$orderStatusProcess = true;
$processed = true;
break;
case 'DONE':
self::mnsTransactionStatusDone($order);
$orderStatusProcess = true;
......@@ -84,10 +79,6 @@ class WC_Gateway_Upg_Mns_Process
self::mnsOrderStatusPaid($order, $db);
$processed = true;
break;
case 'PAYPENDING':
self::mnsOrderStatusPayPending($order);
$processed = true;
break;
case 'PAYMENTFAILED':
self::mnsOrderStatusPaymentFailed($order);
$processed = true;
......@@ -96,10 +87,6 @@ class WC_Gateway_Upg_Mns_Process
self::mnsOrderStatusChargeBack($order);
$processed = true;
break;
case 'CLEARED':
self::mnsOrderStatusCleared($order);
$processed = true;
break;
case 'CPM_MANAGED':
case 'INDUNNING':
self::mnsOrderInDunning($order);
......@@ -198,11 +185,6 @@ class WC_Gateway_Upg_Mns_Process
self::updateStatus($order, self::$setting['payco_mns_paid']);
}
public static function mnsOrderStatusPayPending(WC_Order $order)
{
self::updateStatus($order, self::$setting['payco_mns_paid_pending_reserve']);
}
public static function mnsOrderStatusPaymentFailed(WC_Order $order)
{
self::updateStatus($order, self::$setting['payco_mns_payment_failed']);
......@@ -213,11 +195,6 @@ class WC_Gateway_Upg_Mns_Process
self::updateStatus($order, self::$setting['payco_mns_payment_charge_back']);
}
public static function mnsOrderStatusCleared(WC_Order $order)
{
self::updateStatus($order, self::$setting['payco_mns_payment_cleared']);
}
public static function mnsOrderInDunning(WC_Order $order)
{
self::updateStatus($order, self::$setting['payco_mns_in_dunning']);
......
......@@ -105,11 +105,7 @@ $payco_admin_settings_form = array(
\Upg\Library\Locale\Codes::LOCALE_FR => __('French', 'upg'),
\Upg\Library\Locale\Codes::LOCALE_ES => __('Spanish', 'upg'),
\Upg\Library\Locale\Codes::LOCALE_NL => __('Dutch', 'upg'),
\Upg\Library\Locale\Codes::LOCALE_IT => __('Italian', 'upg'),
\Upg\Library\Locale\Codes::LOCALE_FI => __('Finnish', 'upg'),
\Upg\Library\Locale\Codes::LOCALE_PT => __('Portuguese', 'upg'),
\Upg\Library\Locale\Codes::LOCALE_RU => __('Russian', 'upg'),
\Upg\Library\Locale\Codes::LOCALE_TU => __('Turkish', 'upg'),
\Upg\Library\Locale\Codes::LOCALE_IT => __('Italian', 'upg')
)
),
'merchant_id' => array(
......@@ -196,15 +192,6 @@ $payco_admin_settings_form = array(
'desc_tip' => true,
'options' => $status
),
'payco_mns_paid_pending_reserve' => array(
'title' => __('MNS PAYPENDING', 'upg'),
'type' => 'select',
'default' => 'crefo_none',
'class' => 'wc-enhanced-select',
'description' => __('For MNS paid pending reserve messages what to set the order status to', 'upg'),
'desc_tip' => true,
'options' => $status
),
'payco_mns_payment_failed' => array(
'title' => __('MNS PAYMENTFAILED', 'upg'),
'type' => 'select',
......@@ -223,15 +210,6 @@ $payco_admin_settings_form = array(
'desc_tip' => true,
'options' => $status
),
'payco_mns_payment_cleared' => array(
'title' => __('MNS CLEARED', 'upg'),
'type' => 'select',
'default' => 'crefo_none',
'class' => 'wc-enhanced-select',
'description' => __('For MNS payment failed messages what to set the order status to', 'upg'),
'desc_tip' => true,
'options' => $status
),
'payco_mns_in_dunning' => array(
'title' => __('MNS INDUNNING', 'upg'),
'type' => 'select',
......@@ -295,15 +273,6 @@ $payco_admin_settings_form = array(
'desc_tip' => true,
'options' => $status
),
'payco_mns_transaction_in_progress' => array(
'title' => __('MNS INPROGRESS', 'upg'),
'type' => 'select',
'default' => 'crefo_none',
'class' => 'wc-enhanced-select',
'description' => __('For MNS Acknowledge Pending messages', 'upg'),
'desc_tip' => true,
'options' => $status
),
'mns_transaction_done' => array(
'title' => __('MNS DONE', 'upg'),
'type' => 'select',
......
......@@ -2,7 +2,7 @@
/**
* Plugin Name: CrefoPay für WooCommerce
* Description: Die Komplettlösung für Ihre Zahlungsabwicklung.
* Version: 2.4.3
* Version: 2.5.0
* Author: CrefoPayment GmbH & Co. KG
* Text Domain: upg
*/
......
# Grundlagen einer Zahlung mit CrefoPay
In diesem Abschnitt wollen wir die grundlegenden Abläufe und Eigenheiten einer Zahlung mit CrefoPay kennen lernen.
## Inhalt
- [Grundlagen einer Zahlung mit CrefoPay](#grundlagen-einer-zahlung-mit-crefopay)
- [Inhalt](#inhalt)
- [Einleitung](#einleitung)
- [Transkation](#transkation)
- [Erstellung](#erstellung)
- [Transaction in a nutshell](#transaction-in-a-nutshell)
- [Capture (Buchung)](#capture-buchung)
- [Auswirkungen auf das Forderungsmanagement](#auswirkungen-auf-das-forderungsmanagement)
- [Auto Capture (automatische Buchung)](#auto-capture-automatische-buchung)
- [Direct Capture (direkter Zahlungseinzug)](#direct-capture-direkter-zahlungseinzug)
- [Refund (Rechnungskorrektur)](#refund-rechnungskorrektur)
- [Finish (Offene Forderungen ausgleichen)](#finish-offene-forderungen-ausgleichen)
- [Cancel (Storno)](#cancel-storno)
- [Resümee](#res%c3%bcmee)
- [Verwandt](#verwandt)
## Einleitung
Bevor wir mit unseren eigentlichen Ausführungen beginnen wollen wir uns zunächst mit einigen Begriffen aus dem eCommerce vertraut machen, die bei verschiedenen Dienstleistern am Markt, teilweise in einer leicht variierenden Bedeutung verwendet werden. Die folgende Tabelle erläutert jeweils kurz, wie wir die jeweilige Vokabel im Unversum der Creditreform und CrefoPay verstehen wollen.
| **Vokabel** | **Synonym** | **Erläuterung** |
|----------|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Händler | Merchant | Als Händler bezeichnen wir in dieser Einführung immer den Betreiber des WooCommerce Shops, sowie alle zum Unternehmen gehörenden Stakeholder. |
| Kunde | Customer | Als Kunden bezeichnen wir den- bzw. diejenigen Personen, die im Online-Shop etwas kaufen wollen. |
| Kassenvorgang | Checkout | Als Checkout bezeichnen wir den Kaufvorgang eines Endkunden im Online-Shop. Der Checkout beginnt, wenn der Kunde seinen Warenkorb befüllt hat und zur Kasse geht. |
| Reservierung | Reserve | Mit Hilfe der Reservierung wird die Zahlung einer Transaktion bei CrefoPay durch den Kunden autorisiert und bei Bedarf von CrefoPay überprüft. |
| Buchung | Capture | Unter einem Capture bzw. einer Buchung bei CrefoPay verstehen wir die Anzeige einer offenen Forderung. Dabei darf der geforderte Betrag niemals größer werden, als der ursprünglich im Checkout reservierte Betrag. |
## Transkation
Die Transaktion ist das zentrale Objekt für eine Bezahlung mit CrefoPay. Eine Transaktion im CrefoPay System kann man sich vorstellen wie die Hülle bzw. den Rahmen für einen Zahlungsvorgang mit all seinen Bestandteilen. Diese Bestandteile sind zum Teil Attribute, wie die eindeutige Referenz, oder aber weitere Komponenten, wie offene Forderungen, die selbst weitere Attribute und Komponenten besitzen:
| **Komponente** | **ID** | **Erläuterung** |
|--------------|-----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Händler | `merchantID` | Das Attribut Händler definiert anhand der Merchant ID die eindeutige Zuordnung zu der individuellen Händlerkonfiguration in CrefoPay. In Der Händlerkonfiguration sind grundlegende Funktionen, wie z.B. die Aktivierung von Pay by Link, enthalten. |
| Shop | `storeID` | Das Attribut Store ID definiert anhand der Store ID die eindeutige Zuordnung zu der individuellen Shopkonfiguration in CrefoPay. In der Shopkonfiguration sind insbesondere die individuellen Zahlungsarten, die Betrugsprävention und die Risikoprüfungen enthalten. Da ein Händler auch mehrere Onlineshops über einen Händleraccount verwalten kann, ist die Beziehung Händer zu Shop eine 1:n Beziehung. |
| Transaktion | `orderID` | Das Attribut Transaktion bzw. die Order ID ist der eindeutige Bezeichner der Transaktion selbst. Mit der Kombination von `merchantID`, `storeID` und `orderID` lässt sich jede Transaktion im CrefoPay System _eindeutig_ adressieren. |
| User ID | `userID` | Das Attribut User ID definiert den Kunden, der sich aktuell im Checkout befindet. |
| Risikoklasse | `userRiskClass` | Das Attribut Risikoklasse steuert, welche individuellen Zahlungsarten einem Kunden im Checkout angeboten werden. |
| Betrag | `amount` | Das Attribut (Gesamt-) Betrag der Transaktion zeigt an, wie viel Geld der Kunde bei seinem Checkout zur Zahlung autorisiert hat. |
| Capture | `captureID` | Mithilfe des Capture wird bei einer CrefoPay Transaktion aus einer Reservierung eine offene Forderung. Die Forderung selbst ist ein eigenes Teilobjekt der Transaktion, das einem eigenen Prozessablauf folgt. |
### Erstellung
Jede CrefoPay Transaktion wird technisch immer mit dem [createTransaction](https://docs.crefopay.de/api/#createtransaction) Aufruf erstellt. Die Erstellung einer CrefoPay Transaktion löst die sogenannte _1st Level Risikoprüfung_ aus. Diesr Prüfung legt alle zu diesem Zeitpunkt bekannten Parameter zugrunde. Das sind insbesondere:
- Abweichungen in Rechnung- und Lieferadresse
- User ID für Häufigkeitsprüfung
- Amount für Limit-Prüfungen
Anhand dieser Parameter wird bereits bei Erstellung der Transaktion entschieden, ob schon anhand der statischen Prüfung ein Risiko identifiziert werden kann. Ist dies der Fall, so wird die Risikoklasse der Transaktion intern auf hoch gesetzt und es werden ab diesem Zeitpunkt keine weiteren Prüfungen mehr durchgeführt, sondern nur noch sichere Zahlungsarten angeboten.
**Hinweis:**
```Das CrefoPay System ist im Standard so konfiguriert, dass zuerst immer alle (Zusatz-) Kosten freien Prüfungen durchgeführt werden, bevor die kostenpflichtige Bonitätsprüfung ausgeführt wird. Wann immer ein Risiko identifiziert wurde weden keine weiteren Prüfungen durchgeführt, sondern ausschließlich Zahlungsarten angeboten. So werde die Kosten für den Händler, ohne Sicherheitsverlust minimiert.```
_Bemerkung:_ Diese Konfiguration kann in einzelnen Fällen abweichen, sofern dies individuell bei der Einrichtung von CrefoPay beauftragt wurde.
Die Risikoklasse ist also ein ganz besonderer Parameter bei der Erstellung einer Transaktion. Sie steuert wie eben beschrieben die angebotenen Zahlungsarten. Die Risikoklasse kann aber nicht nur durch die CrefoPay Betrugsprävention intern angepasst werden, sondern kann direkt bei der Transaktionserstellung definiert werden:
| `userRiskClass` | **#** | **Effekt** |
|-----------------|---|--------------------------------------------------------------------------------------------------------------------------------|
| niedrig | 0 | alle Zahlungsarten werden angeboten, CrefoPay wird für diesen Zahlungsvorgang **keine** Risikoprüfung durchführen |
| mittel | 1 | es werden alle Prüfungen von CrefoPay so lange durchgeführt, bis ein Risiko identifiziert oder die Zahlung abgeschlossen wurde |
| hoch | 2 | nur sichere Zahlungsarten werden angeboten, CrefoPay wird für diesen Zahlungsvorgang keine weiteren Risikoprüfung durchführen |
So lassen sich beispielsweise Kundengruppen mit VIP Kunden (Risikoklasse 0), die immer mit allen Zahlungsarten bezahlen dürfen, oder auch Risikokunden (Risikoklasse 2) abbilden. Mit der Implementierung des CrefoPay Plugins für WooCommerce lässt sich die Risikoklasse jedoch nur global definieren. Der emfohlene Standardwert ist daher *mittel*, der deshalb in den Einstellungen auch *Standard* heißt.
### Reservierung
Die Transaktion wird technisch mit dem [reserve](https://docs.crefopay.de/api/#reserve) Aufruf reserviert. Zu diesem Zeitpunkt sind weitere, für die Risikobewertung relevante Parameter bekannt, nämlich insbesondere:
- Gewählte Zahlungsart
- Zahlungsmittel Informationen (z.B. Bankkonto)
**Hinweis:**
```Die Reservierung beinhaltet üblicherweise die (i.d.R. kostenpflichtige) Bonitätsabfrage des Kunden. Diese ist aber insbesondere im B2C Bereich nur dann ohne explizites Einverständnis des Kunden rechtens, wenn seitens des Händlers ein sog. *berechtigtes Interesse* besteht. Dieses entsteht genau dann, wenn eine der unsicheren Zahlungsarten Rechnung oder Lastschrift gewählt wurde und wenn der Kunde durch drücken des Kaufen Buttons seinen Kaufwunsch eindeutig bestätigt hat. Den Kaufwunsch haben wir durch die nachgelagerte Bezahlung immer implizit erfüllt und die Bonitätsprüfugn wird bei CrefoPay grundsätzlich nur für die beiden unsicheren Zahlungsarten Rechnung oder Lastschrift durchgeführt.```
### Transaction in a nutshell
Durch Erstellung und Reservierung einer Transaktion im CrefoPay System schaffen wir ein digitales Objekt, mit dem wir die durch CrefoPay geprüfte und somit gesicherte Autorisierung von Zahlungen durch einen Endkunden im Onlineshop ermöglichen.
Das bedeutet aber implizit, dass zum Zeitpunkt der Reservierung bzw. auch nach erfolgreichem Abschluss der Reservierung, noch keine Zahlung durch den Endkunden erfolgt sein muss. Jede Zahlung mit CrefoPay, mit Ausnahme der Vorkasse, ist aber nach der erfolgreichen Reservierung durch CrefoPay soweit gesichert, dass im zugehörigen Bestellprozess des Onlineshops der Warenversand erfolgen kann.
## Capture (Buchung)
Die Buchung repräsentiert im CrefoPay System eine tasächliche Forderung. Somit ist die Buchung in gewisser Weise nichts weiter als die Repräsentation einer erstellten Kundenrechnung. Da das Matching, also die automatisierte Zahlungszuordnung von Buchungsposten auf dem Händlerkonto, unter andrem den Paramter `captureID` für die Zuordnung nutzten kann, empfehlen wir immer die Capture ID gleich der Rechnungsnummer zu setzen.
Überweist ein Kunde dann bei einem Rechnungskauf seinen offenen Betrag auf das Händlerkonto und ist im Verwendungszweck die Rechnungsnummer angegeben, so kann die Zahlung vollautomatisch von den CrefoPay Algorithmen zu der offenen Forderung bzw. dem offenen Capture zugeordnet werden.
Da die Lieferung einer einzigen Onlinebestellung auch manchmal in mehreren Teillieferungen und mit mehreren Teilrechnungen verarbeitet werden muss, können auf eine CrefoPay Transaktion beliebig viele Captures ausgeführt werden, solange der Gesamtforderungsbetrag nicht den Betrag der ursprünglichen Reservierung übersteigt.
### Auswirkungen auf das Forderungsmanagement
Da der Capture bei CrefoPay eine Forderung repräsentiert, werden durch den Capture verschiedene nachgelagerte Prozesse angestoßen. Insbesondere beim Rechnungskauf definiert das Datum des Captures, das Fälligkeitsdatum der Forderung. Dabei werden zur Berechnung zwei Parameter der händlerindividuellen Konfiguration in CrefoPay herangezogen:
1. Standard Zahlungsziel
2. Standard Karenzzeit
Aus dem Datum des Captures + Zahlungsziel + Karenzzeit ergibt sich dann das Fälligkeitsdatum. Ist das Fälligkeitsdatum einer offenen Forderung erreicht, ohne das eine Zahlung registriert bzw. zugeordnet werden konnte, so wird der Vorgang automatisch an das Mahnwesen übergeben.
### Auto Capture (automatische Buchung)
Eine besondere Form des Captures ist der *Auto Capture*. Diese Funktion lässt sich in allen CrefoPay Plugins über eine Option in den Einstellungen global steuern. Ist der Auto-Capture aktiv, so wird jede Reservierung automatisch vom CrefoPay Sytstem auch gebucht und somit der Reservierungsbetrag direkt in eine offene Forderung überführt.
*Hinweis:* Ausgehend von der Tatsache, dass der Capture - und somit natürlich auch der Auto Capture - das Zahlungsziel direkt beeinflusst, ist diese Funktion nur mit äußerster Vorsicht zu verwenden. Außerdem stehen einige Backend Funktionen zur Bestellverwaltung bei aktiviertem Auto Capture nicht zur Verfügung.
### Direct Capture (direkter Zahlungseinzug)
Anders als beim Auto Capture bezeichnet der Direct Capture einen Mechanismus, den CrefoPay bei speziellen Zahlungsarten anwendet und der im direkten Zusammenhang mit der Gültigkeit der Reservierung steht. So wird eine bei CrefoPay erfolgreich reservierte Zahlung niemals automatisch *verfallen*. Beispielsweise könnten im CrefoPay System auch heute noch Zahlungen gebucht werden, die bereits 2015 reserviert wurden.
Bei Dienstleistern wie z.B. PayPal ist eine derartige Transaktionsgültigkeit nicht gegeben. Schlimmer noch, die Gültigkeit einer Reservierung bei PayPal kann von Händleraccount zu Händleraccount ganz unterschiedlich sein. Um zu vermeiden, dass eine PayPal Bestellung abläuft und somit das Geld, einer eigentlich sicheren Zahlung, dauerhaft verloren geht, führt CrefoPay gegenüber PayPal schon bei Reservierung einen (internen) Capture aus und holt somit das Geld direkt bei Bestellabschluss des Kunden auf Händlerkonto. So kann der reservierte Betrag bei PayPal nicht mehr verfallen und die Zahlung bleibt sicher.
Der Bestellablauf seitens CrefoPay ändert sich dadurch aber nicht! Egal ob mit aktiviertem Direct Capture oder ohne, müssen alle CrefoPay Transaktionen gebucht werden. Das macht auch Sinn, denn eines der primären Konzepte der CrefoPay Lösung ist der homogene und Zahlungsarten unabhängige Ablauf aller Bestell- und Bezahlprozesse.
## Refund (Rechnungskorrektur)
Neben der Buchung, zur Inanspruchnahme reservierter Beträge als Forderung, existiert natürlich auch das passende Gegenstück des Refund, um Rechnungskorrekturen, wie Erstattungen oder Forderungsreduzierungen, auszuführen. Hierfür existiert bei CrefoPay die Refund Funktion, welche auf einen Capture ausgeführt werden kann.
Dabei gilt, dass ein Refund immer auf einen Capture ausgeführt werden muss. Das verhindert zwar rechnungsübergreifende Korrekturen, schafft jedoch ein höheres Maß an Datenintegrität und Sicherheit.
### Finish (Offene Forderungen ausgleichen)
Die Finish wird im CrefoPay häufig auch als Abschließen einer Transaktion bezeichnet. Dies kann jedoch den falschen Eindruck fördern, dass eine Bestellung nach der Reservierung manuell abgeschlossen werden muss, um weiterbearbeitet zu werden. **ACHTUNG:** Das stimmt nicht!
Mit dem Finish, also dem Abschließen einer Transaktion, ist im CrefoPay System der *Verzicht* auf alle ausstehenden Forderungen gemeint.
Die Finish Funktion ist insbesondere bei denjenigen Zahlungsarten wichtig, die eine internen *DirectCapture* verwenden. So kann beispielsweise für eine Kreditkartenzahlung nach dem Final-Auth Prinzip, durch den Finish Aufruf die Differenz zwischen der Summe aller gebuchten Beträge und dem Reservierungsbetrag automatisch ausgeglichen und somit überzahlte Beträge automatisch Rückerstattet werden.
## Cancel (Storno)
Die Cancel Funktion in CrefoPay ist eine besondere Art der Korrektur. Der Cancel ist nur dann erlaubtm wenn für eine Transaktion noch keine Forderung gestellt wurde, es also noch keinen Capture für diese Transaktion gab. Der Cancel repräsentiert also eine vollständige Stornierung der zuvor reservierten Transaktion.
## Resümee
Mit den hier beschriebenen Funktionen und Mechanismen lassen sich vom Checkout (Erstellung/Reservierung) bis zur Bestellverwaltung (Capture/Refund/Cancel/Finish) alle denkbaren Szenarien der Bestellverwaltung und der zugehörigen Zahlungsflüsse steuern, mit Ausnahme des sogenannten Over Capture. Ein Over Capture würde bedeuten, dass man Captures - also Forerungen - erlaubt, deren Gesamtbetrag den vom Kunden autorisierten und reservierten Betrag übersteigt.
Die folgende Abbildung stellt noch einmal grafisch die Zusammenhänge zwischen Transaktion, Captures und Refunds dar:
## Verwandt
- [Handbuch für den WooCommerce Administrator](Handbuch-für-den-WooCommerce-Administrator)
- [Handbuch für den WooCommerce Anwender](Handbuch-für-den-WooCommerce-Anwender)
# Handbuch für den WooCommerce Administrator
Dieses Handbuch richtet sich an den Administrator und beschreibt die Installation und Grundeinrichtung des CrefoPay WooCommerce Plugins.
## Inhalt
- [Handbuch für den WooCommerce Administrator](#handbuch-f%c3%bcr-den-woocommerce-administrator)
- [Inhalt](#inhalt)
- [Installation](#installation)
- [Grundkonfiguration](#grundkonfiguration)
- [Bezeichnung](#bezeichnung)
- [Protokollierung](#protokollierung)
- [Authentifizierung](#authentifizierung)
- [Business-2-Business](#business-2-business)
- [Benachrichtigungsservice](#benachrichtigungsservice)
- [Design Optimierung](#design-optimierung)
- [Verwandt](#verwandt)
## Installation
1. Klonen oder Herunterladen des Repositories
2. Verpacken des Ordners `upg` in ein zip-Archiv
3. Hochladen des zip-Archiv mithilfe des Wordpress Plugin Mangers
4. Aktivierung des Plugins `CrefoPay für WooCommerce`
## Grundkonfiguration
Die Grundkonfiguration des CrefoPay Plugins erfolgt über die WooCommerce Einstellungen für Bezahlgateways; `WooCommerce » Einstellungen » Zahlungen`.
Mit einem Klick auf `Verwalten`für die (Bezahl-) Methode `CrefoPay` öffnet sich die Plugin Grundkonfiguration.
### Bezeichnung
| Einstellung | Option | Beschreibung |
|-------------------------|----------|-------------------------------------------------------------------------------------|
| Aktivieren/Deaktivieren | An | Aus | Aktiviert/Deaktiviert die Zahlungsart CrefoPay |
| Bezeichnung | Text | Dieser Text wird im Checkout als Titel der Zahlungsart sichtbar |
| Beschreibung | Text | Dieser Text dient der Beschreibung und ist im Checkout üblicherweise nicht sichtbar |
### Protokollierung
| Einstellung | Option | Beschreibung |
|---------------------|----------|--------------------------------------------------------|
| Protokoll Dateiname | Text | Legt den Dateinamen für das Plugin eigene Logging fest |
| Protokoll Stufe | Dropdown | Legt das Loglevel für das Plugin eigene Logging fest |
### Authentifizierung
| Einstellung | Option | Beschreibung |
|-----------------------------------|---------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Modus | Sandbox | Live | Schaltet zwischen Testbetrieb (Sandbox) und Livebetrieb um |
| Automatische Buchungen aktivieren | An | Aus | Mit dieser Funktion wird die automatische Buchung aktiviert |
| Risikoklasse | Niedrig | Standard | Hoch | Niedrig: Alle Zahlungen werden zugelassen, es erfolgt keine Prüfung durch CrefoPay. Standard: Alle Zahlungen werden geprüft, bei Risiko wird Auswahl eingegrenzt. Hoch: Es werden nur sichere Zahlungsarten erlaubt, es erfolgt keine Prüfung durch CrefoPay. |
| Standard Sprache | Dropdown | Legt die Standardsprache der CrefoPay Bezahlseite (Hosted Page) fest |
| Händler ID | Zahl | Die CrefoPay Händler ID für den Testbetrieb unterscheidet sich i.d.R. von der für den Livebetrieb |
| Passwort | Text | Das CrefoPay Händler Passwort für den Testbetrieb unterscheidet sich i.d.R. von dem für den Livebetrieb |
| Shop ID | Text | Die CrefoPay Shop ID für den Testbetrieb ist i.d.R. gleich der für den Livebetrieb |
### Business-2-Business
| Einstellung | Option | Beschreibung |
|-------------------------|----------|----------------------------------------------|
| Aktivieren/Deaktivieren | An | Aus | Aktiviert/Deaktiviert die B2B Funktionalität |
### Benachrichtigungsservice
| Status | Beschreibung | Empfehlung |
|------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| Auftrag angelegt | Legt fest in welchen Status eine Bestellung nach erfolgreicher Reservierung wechseln soll. | `In Wartestellung` |
| Fehler bei Auftragserfassung | Legt fest in welchen Status eine Bestellung mit abgebrochener oder fehlerhafter Zahlung wechseln soll. | `Fehlgeschlagen` |
| MNS PAID | Wird für jede automatisch zugeordnete Zahlung ausgelöst. | `No status change` |
| MNS PAYMENTFAILED | Wird für geplatzte Lastschriften oder nicht einlösbare Kreditkartenzahlungen ausgelöst. | `Fehlgeschlagen` |
| MNS CHARGEBACK | Wird für vom Endkunden angewiesene Rückbuchungen ausgelöst. | `Rückbuchung` |
| MNS INDUNNING | Wird nach erfolgreichem Versand der 1. Mahnung durch CrefoPay ausgelöst. | `In Mahnung` |
| MNS ACKNOWLEDGEPENDING | Wird nach jeder erfolgreichen Reservierung ausgelöst. | `No status change` |
| MNS FRAUDPENDING | Wird bei aktivierter Risiko-Queue für betrugsverdächtige Zahlungen ausgelöst. | `Betrugsverdacht` |
| MNS FRAUDCANCELLED | Wird bei Ablehnung einer betrugsverdächtigen Zahlung ausgelöst. | `Betrugsfall` |
| MNS CIAPENDING | Wird bei einer erfolgreich reservierten Vorkasse Zahlung ausgelöst. | `Warte auf Vorkassenzahlung` |
| MNS CANCELLED / EXPIERD | Wird bei Stornierung (CANCEL) oder nicht Abschluss (EXPIRED) einer Zahlung ausgelöst. | `Storniert/Abgebrochen` |
| MNS MERCHANTPENDING | Wird als Bestätigung jeder erfolgreichen Zahlung ausgelöst (bei Vorkasse erst nach Geldeingang) und zeigt damit an, dass die zugehörige Bestellung versendet werden kann. | `In Bearbeitung` |
| MNS DONE | Zeigt an, dass alle offenen Forderungen eines Zahlungsvorgangs ausgeglichen wurden. | `Zahlung abgeschlossen und verrechnet` |
## Design Optimierung
*coming soon...*
## Verwandt
[Handbuch für den WooCommerce Anwender](Handbuch-für-den-WooCommerce-Anwender)
# Handbuch für den WooCommerce Anwender
Dieses Handbuch richtet sich an den Anwender der Backend Funktionalität des WooCommerce Plugins und beschreibt die grundlegenden Funktionen für die Bestellverwaltung mit CrefoPay.
## Inhalt
- [Handbuch für den WooCommerce Anwender](#handbuch-f%c3%bcr-den-woocommerce-anwender)
- [Inhalt](#inhalt)
- [Checkout](#checkout)
- [Sichere und unsichere Zahlungsarten](#sichere-und-unsichere-zahlungsarten)
- [Direct und Redirect Zahlungsarten](#direct-und-redirect-zahlungsarten)
- [Expired Transaktionen](#expired-transaktionen)
- [Checkout in a nutshell](#checkout-in-a-nutshell)
- [Bestellverwaltung (Forderungsmanagement)](#bestellverwaltung-forderungsmanagement)
- [Zahlungsstatus](#zahlungsstatus)
- [Rechnungslegung](#rechnungslegung)
- [Rechnungskorrektur](#rechnungskorrektur)
- [Gutschrift](#gutschrift)
- [Forderungsausgleich](#forderungsausgleich)
- [Storno](#storno)
## Checkout
Im CrefoPay Checkout ist die zenterale Frage zur Steuerung der Zahlugnsartenauswahl, welche Zahlungsarten bei CrefoPay überhaupt als sicher definiert sind und welche nicht. Die Antwort lautet: Das definieren Sie als Händler einfach selbst!
### Sichere und unsichere Zahlungsarten
Um zu sehen, welche Zahlungsarten in Ihrer individuellen Shop Konfiguration als sicher und welche als sicher eingestuft werden, öffnen wir zunächst den zugehören Händler Service Bereich. Unter `Einstellungen » Shop Details » Bezahlmethoden` finden wir dann die Ansicht aller Zahlungsarten inklusive der Markierung als sichere Zahlungsart:
![paymentMethods](uploads/6d40d1b27500b5ad00618733e8a5a68d/paymentMethods.png)
### Direct und Redirect Zahlungsarten
Neben der Frage nach sicheren und nicht sicheren Zahlungsarten unterscheiden wir im CrefoPay Ablauf zwischen Direct und Redirect Zahlungsarten. Eine Direct Zahlungsart ist dadurch gekennzeichnet, dass nach dem bstätigen der Zahlung bereits alle Informationen und Berechtigungen vorhanden sind, um die Zahlung abzuschließen. Das klassische Beispiel ist der Rechnungskauf.
Als klassische Redirect Zahlungsart gelten PayPal, Sofortüberweisung und die sichere Kreditkarte mit der 2-Faktor-Authentifizierung. Die Redirect Zahlungsarten sind dadurch gekennzeichnet, dass zur Vervollständigung der Zahlung eine Umleitung zu einem Drittanbieter erfolgen muss; beispielsweise die Umleitung zu PayPal zur Eingabe von Benutzerkennung und Passwort des Kunden.
| # | Zahlungsart | Typ |
|---|----------------|------------|
| 1 | Rechnung | `direct` |
| 2 | Lastschrift | `direct` |
| 3 | Vorkasse | `direct` |
| 4 | Nachnahme | `direct` |
| 5 | Kreditkarte | `direct` |
| 6 | Kreditkarte 3D | `redirect` |
| 7 | PayPal | `redirect` |
| 8 | Sofort. | `redirect` |
In der tabellarischen Übersicht sehen wir noch einmal sehr schön, dass die von CrefoPay direkt bewirtschafteten, also Bankkonto basierten Zahlungsarten alle mit einem direkten Checkout abgeschlossen werden können. Das ist immer ein Vorteil in Hinblick auf die Conversion Rate, da der Kunde weniger Absprungmöglichkeiten hat und außerdem die Bewegungen des Kunden transparent nachverfolgbar sind.
Bei Zahlungen mit einem Redirect, wird der Endkunde aus technischer Sicht nämlich zwingend den Onlineshop verlassen. Was der Kunde dann beispielsweise auf der Seite von PayPal tut, können weder der Onlineshop noch CrefoPay wissen. Somit gibt es nach der Umleitung des Kunden genau 3 mögliche Optionen:
1. Der Kunde wird vom Drittanbieter zu CrefoPay zurück geleitet und der Drittanbieter meldet einen Erfolg der Zahlung
2. Der Kunde wird vom Drittanbieter zu CrefoPay zurück geleitet und der Drittanbieter meldet keinen Erfolg der Zahlung
3. Der Kunde wird vom Drittanbieter nicht zu CrefoPay zurück geleitet (schließt zum Beispiel einfach seinen Browser auf der PayPal Seite)
Die ersten beiden Optionen sind valide Fälle und führen Entweder (1) zu einem erfolgreichen Abschluss der Bestellung oder (2) der Kunde wird im Onlineshop erneut aufgefordert seine nicht beendete Zahlung abzuschließen.
### Expired Transaktionen
Im dritten Fall wird die Transaktion nach Ablauf ihrer Gültigkeit automatisch ablaufen; in den meisten Fällen ist dies nach 4 Stunden, dieser Zeitraum kann aber individuell angepasst worden sein. Sprechen Sie hierzu bei Bedarf zunächst mit Ihrem Administrator.
Ein solcher Ablauf einer Transaktion löst seitens CrefoPay die `EXPIRED` Benachrichtigung für diese Transaktion aus. Ein Expired entspricht in gewisser Weise einer Stornierung des Zahlungsvorgangs von CrefoPay Seite aus. Eine andere Möglichkeit, wie der EXPIRED Status für eine Transaktion entstehen kann ist, dass der Kunde bereits auf der Zahlungsseite gewesen ist, dort aber seine präferierte Zahlungsart nicht vorgefunden hat und somit die Bestellung bzw. die Zahlung nie abgeschlossen wurde.
### Checkout in a nutshell
Das folgende Use-Case Diagramm fasst den WooCommerce Checkout mit CrefoPay noch einmal zusammen:
![checkout_in_a_nutshell](uploads/a7b65eddcad139692e40fb5f414ed851/checkout_in_a_nutshell.png)
Abschließend zu diesem Kapitel zeigt die folgende Tabelle auch noch einmal die im Checkout ausgelösten Benachrichtigungen je Zahlungsart:
| # | Zahlungsart | Zahlungsbestätigung | Status nach Bestätigung |
|---|----------------|----------------------|-------------------------|
| 1 | Rechnung | `ACKNOWLEDGEPENDING` | `MERCHANTPENDING` |
| 2 | Lastschrift | `ACKNOWLEDGEPENDING` | `MERCHANTPENDING` |
| 3 | Vorkasse | `ACKNOWLEDGEPENDING` | `CIAPENDING` |
| 4 | Nachnahme | `ACKNOWLEDGEPENDING` | `MERCHANTPENDING` |
| 5 | Kreditkarte | `ACKNOWLEDGEPENDING` | `MERCHANTPENDING` |
| 6 | Kreditkarte 3D | `ACKNOWLEDGEPENDING` | `MERCHANTPENDING` |
| 7 | PayPal | `ACKNOWLEDGEPENDING` | `MERCHANTPENDING` |
| 8 | Sofort. | `ACKNOWLEDGEPENDING` | `MERCHANTPENDING` |
Wir sehen also, dass mit Ausnahme der Vorkasse alle Transaktionen in den Status `MerchantPending` übergehen. Die Ausnahme der Vorkasse, die zunächst immer in den Status `CIAPending` wechselt, erfolgt ein automatischer Wechsel auf den Status `MerchantPending`, sobald eine Zahlung für diese Transaktion registriert werden konnte.
Der Status `AcknowledgePending` zeigt also an, dass die Transaktion bei CrefoPay korrekt angelegt und bei entsprechend eingestellter Risikoklasse auch geprüft wurde. und somit im nächsten Prozesschritt die Bestellverwaltung beginnen kann.
Der Status `CIAPending` weist uns darauf hin, dass es sich um eine bisher unbezahlte Vorkasse Zahlung handelt.
Der Status `MerchantPending` zeigt an, dass die zugehörige Bestellung nun weiter bearbeitet und versendet werden kann.
## Bestellverwaltung (Forderungsmanagement)
**Hinweis:** _Die folgenden Abläufe funktionieren nur dann wie beschrieben, wenn die Plugin Funktion Auto Capture deaktiviert (empfohlen) ist._
Wir haben im Abschnitt Checkout bereits gesehen, dass alle Transaktionen im Status `MerchantPending` für die weitere Bestellverwaltung freigegeben werden können.
![default_ordermgm_flow](uploads/b16dadb222219fd62a742ef5f435e7fe/default_ordermgm_flow.png)
### Zahlungsstatus
Ganz oben rechts in den Bestelldetails einer Bestellung mit CrefoPay Zahlung, finden wir immer den aktuellen Zahlungsstatus der Transaktion.
![payment_details](uploads/17ae6417c29cd8ecc99862d5a0eef24b/payment_details.png)
### Rechnungslegung
Besondere Relevanz in den CrefoPay Abläufen hat die Rechnunslegung, da hierbei üblicherweise alle Parameter bekannt werden, die für ein automatisiertes Forderungsmanagement benötigt werden. Das sind insbesondere:
- Rechnungsnummer
- Rechnnugsdatum
- Rechnungsbetrag
Um diese Information bei CrefoPay bekannt zu machen, muss die Transaktion gebucht (Capture) werden. Hierfür bringt das WooCommerce einen eigenen Capture Bereich mit, der nach der Installation in den WooCommerce Bestelldetails für CrefoPay Zahlungen hinzugefügt wird.
![capture_box](uploads/e83433e7b8ccae8893891cfa6975a8f3/capture_box.png)
Sobald also der endgültige Rechnungsbetrag bekannt ist, kann über diese Box einfach der Rechnungsbetrag eingegeben werden und über den Button Buchung der erforderliche Capture ausgelöst werden. Sofern alles geklappt hat, vermeldet WooCommerce den Erfolg wie üblich mit einer Erfolgsmeldung:
![capture_success](uploads/e08527f9577c99299fbde6e81a5b1ca1/capture_success.png)
Andernfalls mit einer entsprechenden Fehlermeldung:
![capture_failure](uploads/3fa81c5fcc3acc6830d42ffa91b0c6e5/capture_failure.png)
### Rechnungskorrektur
Rechnungskorrekturen werden bei CrefoPay mittels Refund durchgeführt. Auch diese Funktion kann direkt aus dem WooCommerce Backend bedient werden, wenn die Funktion [Auto Capture](Grundlagen-einer-Zahlung-mit-CrefoPay#auto-capture-automatische-buchung) im Plugin deaktiviert ist.
#### Gutschrift
Wie wir inzwischen schon gesehen haben, ist für eine Gutschrift oder eine Reduzierung einer Forderung, immer die Referenz auf die ursprüngliche Forderung notwendig. Dabei ist zur Ausführung einer Gutschrift egal, ob der Kunde beim Rechnungskauf den geforderten Betrag bereits überwiesen hat oder nicht. Das CrefoPay System entscheidet je nach Bedarf, ob eine Erstattung erfolgen muss oder ob das reduzieren einer noch offenen Forderung ausreichend ist. Die Erstattung erfolgt dabei, unabhängig von der genutzten Zahlweise, immer zurück an den Absender.
Im WooCommerce Plugin kann zum Auslösen einer Rechnungskorrektur einfach der gewünschte Capture, als Repräsentation der offenen Forderung, aus einer Liste ausgewählt werden und der gewünschte Korrekturbetrag kann wieder frei eingegeben werden. Außerdem hält das Plugin ein Feld für einen Beschreiungstext bereit:
![Refund_box](uploads/933c77c33cfaca3b0606cb76d78d393c/Refund_box.png)
Sofern alles geklappt hat, vermeldet WooCommerce den Erfolg wie üblich mit einer Erfolgsmeldung:
![Refund_success](uploads/094e2f31e6c5f1bf947a1e4b5031b5a1/Refund_success.png)
Andernfalls mit einer entsprechenden Fehlermeldung:
![Refund_failure](uploads/61534c311674deeee10821c9a4ebc86c/Refund_failure.png)
#### Forderungsausgleich
Wie wir wissen wird für einige Zahlungsarten bei CrefoPay ein [Direct Capture](Grundlagen-einer-Zahlung-mit-CrefoPay#direct-capture-direkter-zahlungseinzug) ausgeführt. Um für diese Zahlungsarten möglicherweise überzahlte Beträge leicht auszugleichen, stellt das Plugin einen eigene Funktion für den Forderungsausgleich bereit.
![API_Box](uploads/70cbe8329e0e4bc614604d75412877b5/API_Box.png)
Die Funktion für den Forderungsausgleich verbirgt sich hier hinter dem gleichnamigen Button `Abschließen`. Die abschließen Funktion führt die [Finish](https://docs.crefopay.de/api/#finish) Funktion der CrefoPay API aus. Das bedeutet:
- alle nicht gebuchten aber bereits bezahlten Forderungen werden erstattet
- alle bereits gebuchten und bezahlten Forderungen bleiben erhalten
- alle bereits gebuchten und nicht bezahlten Forderungen werden verworfen
**Achtung:** Besonders der letzte Punkt ist besonders wichtig zu beachten. Er impliziert, dass ausstehende Forderungen des Rechnungskaufs verworfen werden, wenn noch keine eingehende Zahlung zugeordnet werden konnte. Das bedeutet implizit aber auch, dass nachträglich eingezahlte Beträge des Kunden weder automatisch erstattet werden, noch die automatische Zahlungsüberwachung möglich sind.
Nutzen Sie also diese Funktion daher stets sorgsam und mit Bedacht!
#### Storno
Eine Storno oder auch Sotrnierung erfolgt im CrefoPay System mit der [Cancel](https://docs.crefopay.de/api/#cancel) Funktion und auch diese wird von dem Plugin bereitgestellt. Der Cancel kann immer dann ausgeführt werden, wenn zuvor noch keine Buchungen gemacht wurden. Im Sinne der Stornierung wird einfach der komplette Zahlungsvorgang rückabgewickelt. Sofern bereits Geld geflossen ist, wird dieses erstattet.
Wird der Storno Befehl in einem nicht erlaubten Status der Bestellung aufgrufen, so quittiert CrefoPay das mit einem Fehler:
![Cancel_failure](uploads/fcd7fdccac21ac8a53f4fe1c2de79862/Cancel_failure.png)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment