LatePoint Addon Payments Flutterwave: Integration und Implementierung
Die Integration eines Zahlungsdienstleisters in ein Buchungssystem ist entscheidend für den Erfolg jedes Unternehmens, das digitale Zahlungen akzeptiert. In diesem Artikel erfahren Sie, wie Sie das Zahlungsabwicklungssystem Flutterwave in LatePoint integrieren können. Wir werden die notwendigen Schritte durchgehen, um eine nahtlose Buchungserfahrung für Ihre Kunden zu ermöglichen, indem wir den Flutterwave-Zahlungsprozessor in verschiedenen Abschnitten des LatePoint-Systems registrieren.
Entwicklung
Installation des Addons
Um das Addon zu integrieren, müssen Sie zuerst das Plugin “latepoint-addon-starter” von GitHub herunterladen. Nach dem Entpacken benennen Sie den Ordner in “latepoint-payments-flutterwave” um und ersetzen Sie alle Vorkommen von “-addon-starter” durch “-payments-flutterwave”. In der Hauptdatei, die jetzt “latepoint-payments-flutterwave.php” heißt, müssen alle Variablen und Strings von “addon-starter” in “payments-flutterwave” umbenannt werden.
Es ist wichtig, die Haupt-Addon-Objektvariable $LATEPOINT_ADDON_ADDON_STARTER
am Ende der Haupt-Addon-Plugin-Datei in $LATEPOINT_ADDON_PAYMENTS_FLUTTERWAVE
zu ändern. Dieser Schritt gewährleistet, dass Ihr Addon korrekt registriert wird und alle spezifischen Funktionen von Flutterwave reibungslos funktionieren.
Implementierung der Zahlungen
Dieser Leitfaden zeigt, wie man eine sogenannte “inline callback” Zahlungsart für Flutterwave implementiert. Wenn ein Kunde versucht, für seine Buchung zu zahlen, öffnet sich ein Zahlungsmodal von Flutterwave. Bei Erfolg oder Fehler wird eine JavaScript-Funktion aufgerufen, um die Antwort zu verarbeiten.
Um die Flutterwave-Zahlungsmodul zu nutzen, müssen Sie sowohl die öffentlichen als auch die geheimen API-Keys generieren, die in den Flutterwave-Einstellungen unter dem Reiter API zu finden sind. Diese Schlüssel müssen in den LatePoint-Einstellungen erfasst werden.
Registrierung von Flutterwave als Zahlungsmethode
Wir müssen Flutterwave als neue Zahlungsmethode registrieren und Felder zur Erfassung der API-Keys auf der Zahlungsseite in LatePoint hinzufügen. Hierzu verwenden wir den folgenden PHP-Code:
“`php
class LatePointPaymentsFlutterwave {
public $version = ‘1.0.0’;
public $db_version = ‘1.0.0’;
public $addon_name = ‘latepoint-payments-flutterwave’;
public $processor_code = ‘flutterwave’;
public function init_hooks() {
add_filter('latepoint_payment_processors', [$this, 'register_payment_processor'], 10, 2);
add_filter('latepoint_all_payment_methods', [$this, 'register_payment_methods']);
add_filter('latepoint_enabled_payment_methods', [$this, 'register_enabled_payment_methods']);
}
}
“`
Aparturen der Verarbeiteten Zahlungsmethoden
Um die Unterstützung von Zahlungsmethoden zu definieren, schreiben wir die Methode get_supported_payment_methods
:
php
public function get_supported_payment_methods() {
return [
'inline_checkout' => [
'name' => __('Inline Checkout', 'latepoint-payments-flutterwave'),
'label' => __('Inline Checkout', 'latepoint-payments-flutterwave'),
'image_url' => LATEPOINT_IMAGES_URL . 'payment_cards.png',
'code' => 'inline_checkout',
'time_type' => 'now'
]
];
}
Hierbei wird die Zahlungsart “Inline Checkout” registriert. Das Attribut time_type
auf ‘now’ gesetzt, bedeutet, dass die Zahlung zum Zeitpunkt der Buchung erfolgen muss.
Erfassung von API-Keys
Um die API-Keys und andere Einstellungen von dem Geschäftsinhaber zu sammeln, erstellen wir ein Formular. Die Felder umfassen den öffentlichen Key, den geheimen Key, den Ländercode, den Währungscode und ein Logo.
Wir verwenden den latepoint_payment_processor_settings
Action-Hook, um das Einstellungen-Formular hinzuzufügen:
php
public function add_settings_fields($processor_code) {
if($processor_code != $this->processor_code) return false;
?>
<h3><?php _e('API Keys', 'latepoint-payments-flutterwave'); ?></h3>
<?php echo OsFormHelper::text_field('settings[flutterwave_publishable_key]', __('Public Key', 'latepoint-payments-flutterwave'), OsSettingsHelper::get_settings_value('flutterwave_publishable_key')); ?>
<?php echo OsFormHelper::password_field('settings[flutterwave_secret_key]', __('Secret Key', 'latepoint-payments-flutterwave'), OsSettingsHelper::get_settings_value('flutterwave_secret_key')); ?>
<h3><?php _e('Other Settings', 'latepoint-payments-flutterwave'); ?></h3>
<?php echo OsFormHelper::select_field('settings[flutterwave_country_code]', __('Country', 'latepoint-payments-flutterwave'), OsPaymentsFlutterwaveHelper::load_countries_list(), OsSettingsHelper::get_settings_value('flutterwave_country_code', 'NG')); ?>
<?php echo OsFormHelper::select_field('settings[flutterwave_currency_iso_code]', __('Currency Code', 'latepoint-payments-flutterwave'), OsPaymentsFlutterwaveHelper::load_currencies_list(), OsSettingsHelper::get_settings_value('flutterwave_currency_iso_code', 'NGN')); ?>
<?php echo OsFormHelper::media_uploader_field('settings[flutterwave_logo_image_id]', 0, __('Logo for Payment Modal', 'latepoint-payments-flutterwave'), __('Remove Logo', 'latepoint-payments-flutterwave'), OsSettingsHelper::get_settings_value('flutterwave_logo_image_id')); ?>
<?php
}
Verschlüsselung der sensiblen Daten
Um sicherzustellen, dass sensible Daten wie der geheime Key verschlüsselt in der Datenbank gespeichert werden, können wir den latepoint_encrypted_settings
Hook verwenden:
php
public function add_encrypted_settings($encrypted_settings) {
$encrypted_settings[] = 'flutterwave_secret_key';
return $encrypted_settings;
}
Anpassen der Benutzeroberfläche
Sobald die Einstellungen erfasst sind, werden diese Informationen an die Javascript-Frontend-Umgebung übergeben, damit das Buchungsformular sie zur Initialisierung des Flutterwave-Zahlungsmoduls verwenden kann. Hierzu fügen wir neue Variablen zum latepoint_helper
-Objekt hinzu:
php
public function localized_vars_for_front($localized_vars) {
if (OsPaymentsHelper::is_payment_processor_enabled($this->processor_code)) {
$localized_vars['is_flutterwave_active'] = true;
$localized_vars['flutterwave_key'] = OsSettingsHelper::get_settings_value('flutterwave_publishable_key', '');
$localized_vars['flutterwave_payment_options_route'] = OsRouterHelper::build_route_name('payments_flutterwave', 'get_payment_options');
} else {
$localized_vars['is_flutterwave_active'] = false;
}
return $localized_vars;
}
Einbindung von Scripts und Styles
Um die notwendigen JavaScript- und CSS-Dateien für das Frontend zu integrieren, verwenden wir den latepoint_wp_enqueue_scripts
Action-Hook:
php
public function load_front_scripts_and_styles() {
wp_enqueue_style('latepoint-payments-flutterwave-front', $this->public_stylesheets() . 'latepoint-payments-flutterwave-front.css', false, $this->version);
wp_enqueue_script('flutterwave-checkout', 'https://checkout.flutterwave.com/v3.js', false, null);
wp_enqueue_script('latepoint-payments-flutterwave-front', $this->public_javascripts() . 'latepoint-payments-flutterwave-front.js', array('jquery', 'flutterwave-checkout', 'latepoint-main-front'), $this->version);
}
Implementierung der Zahlungsverarbeitung
Um die Buchung bei der Zahlungsabwicklung zu verarbeiten, nutzen wir den latepoint_process_payment_for_booking
Filter. Im Controller überprüfen wir, ob die Anfrage von Flutterwave erfolgreich ist:
php
public function process_payment($result, $booking, $customer) {
if (OsPaymentsHelper::is_payment_processor_enabled($this->processor_code)) {
switch ($booking->payment_method) {
case 'inline_checkout':
if ($booking->payment_token) {
$remote = wp_remote_get("https://api.flutterwave.com/v3/transactions/".$booking->payment_token."/verify", [
'timeout' => 10,
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '. self::get_secret_key()
]
]);
// Verarbeite die Antwort
}
break;
}
}
return $result;
}
Verwendung des Controllers
Wir erstellen einen Controller, um die Zahlungsoptionen für den Inline-Checkout von Flutterwave zu generieren. Indem wir die Methode get_payment_options
implementieren, sorgen wir dafür, dass die notwendigen Informationen an den Frontend-Client übertragen werden, um den Zahlungsprozess eingehend zu steuern.
php
public function get_payment_options() {
OsStepsHelper::set_booking_object($this->params['booking']);
OsStepsHelper::set_restrictions($this->params['restrictions']);
$customer = OsAuthHelper::get_logged_in_customer();
$amount = OsStepsHelper::$booking_object->specs_calculate_price_to_charge();
try {
if ($amount > 0) {
// Erstelle Zahlungsabsicht und sende Optionen zurück
}
} catch (Exception $e) {
error_log($e->getMessage());
$this->send_json(array('status' => LATEPOINT_STATUS_ERROR, 'message' => $e->getMessage()));
}
}
Schlussfolgerung
Die Integration von Flutterwave in LatePoint als Zahlungsdienstleister vereinfacht die Zahlungsabwicklung erheblich, verbessert die Benutzererfahrung und sorgt dafür, dass alle notwendigen Zahlungen reibungslos ablaufen.
Diese Schritt-für-Schritt-Anleitung hat gezeigt, wie man eine neue Zahlungsart für Inline-Checkout erstellt, API-Keys erfasst, die Benutzeroberfläche anpasst und die Zahlungsabwicklung implementiert. Mit den beschriebenen Methoden können Unternehmen sicherstellen, dass sie von einer nahtlosen und sicheren Zahlungsabwicklung profitieren, die den Bedürfnissen ihrer Kunden gerecht wird.
Bewertungen
Es gibt noch keine Bewertungen.