feat(payments): Anbieter-Gerüst core/payments mit PayPal Orders v2
- ProviderInterface/AbstractProvider: Vorgang mit Uhrzeit+Session (payment_transactions), Mail und Warenkorb erst nach Zahlung, idempotentes markPaid, Betragsabgleich, shop_event + PG payment_log - Secrets verschluesselt (libsodium) in MySQL, Schluessel ausserhalb Docroot - Cashdesk: ?payment_return/?payment_cancel, Pending-Riegel, zahlung_erst_spaeter() - Backend Zahlart-Editor: Einstellungen speichern (war ohne Empfaenger), Secret-Felder - payment_webhook.php (Standalone), cli.php (init-key, secret, reconcile, status) - PayPal-v2-Blaupause vom Juli entfernt
This commit is contained in:
@@ -35,11 +35,36 @@
|
||||
<input style="position:relative;left:185px;width: 200px;" type="submit" name="submit" id="submit" value="Zahlungsart speichern" />
|
||||
</form>
|
||||
</div>
|
||||
{if $config_data}
|
||||
{if $config_data || $provider_secrets}
|
||||
<div title="Einstellungen" id="einstellungen">
|
||||
<form class="edit" method="POST">
|
||||
<input type="hidden" name="modul" value="admin_country_editor" />
|
||||
<input type="hidden" id="id" name="id" value="{$form_data->configuration_group_id}" />
|
||||
<input type="hidden" name="payment_config_save" value="1" />
|
||||
<input type="hidden" name="id" value="{$form_data->id}" />
|
||||
{if $provider_secrets}
|
||||
<div class="edit_title">Zugangsdaten {$provider_label|escape} (verschlüsselt gespeichert)</div>
|
||||
{if !$provider_key_ok}
|
||||
<div class="edit_element_1_1" style="color:#b00;">
|
||||
Schlüsseldatei fehlt: {$provider_key_path|escape}<br>
|
||||
Anlegen per SSH: <code>/opt/plesk/php/8.2/bin/php core/payments/cli.php init-key</code>
|
||||
</div>
|
||||
<div class="edit_endline"></div>
|
||||
{/if}
|
||||
{foreach from=$provider_secrets item=sec}
|
||||
<div class="edit_element_2_5">
|
||||
<label>{$sec.label|escape}</label>
|
||||
<input name="secret_field[{$sec.name}]" value="" type="password" autocomplete="new-password" placeholder="{if $sec.since}hinterlegt, leer lassen = unverändert{else}noch nicht hinterlegt{/if}" {if !$provider_key_ok}disabled{/if} />
|
||||
</div>
|
||||
<div class="edit_element_3_5">
|
||||
<br>{if $sec.since}hinterlegt seit {$sec.since|escape}{else}<span style="color:#b00;">fehlt</span>{/if}
|
||||
</div>
|
||||
<div class="edit_endline"></div>
|
||||
{/foreach}
|
||||
<div class="edit_element_1_1">
|
||||
<br>Webhook-URL für das PayPal-Dashboard: <code>{$provider_webhook_url|escape}</code>
|
||||
</div>
|
||||
<div class="edit_endline"></div>
|
||||
<div class="edit_title">Einstellungen</div>
|
||||
{/if}
|
||||
{foreach from=$config_data item=form_element}
|
||||
{if $form_element->text == 'multi'}
|
||||
<div class="edit_element_1_1" style="height:200px;">
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
<!-- content_cash_desk/payment_result.tpl : Rueckmeldung der Zahlungsanbieter (core/payments) -->
|
||||
<div class="full_box">
|
||||
<div class="title_wrapper">
|
||||
<div class="title"><h2>{if $provider_label}{$provider_label|escape}{else}Zahlung{/if}</h2></div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="box_content">
|
||||
<div class="box_padder cashdesk_payment_info">
|
||||
{if $call == 'payment_open'}
|
||||
<p>Vielen Dank für Ihre Bestellung.<br /><br />
|
||||
Sie werden zur Bezahlung weitergeleitet. Falls das nicht automatisch geschieht,
|
||||
klicken Sie bitte auf den folgenden Button.</p>
|
||||
<meta http-equiv="refresh" content="0;url={$payment_link|escape}">
|
||||
<a href="{$payment_link|escape}" class="button" style="width:220px;">Weiter zur Bezahlung</a>
|
||||
<br /><br />
|
||||
|
||||
{elseif $call == 'payment_cancelled'}
|
||||
<p>Sie haben die Bezahlung abgebrochen.<br /><br />
|
||||
Ihr Warenkorb ist unverändert – Sie können die Bestellung jederzeit
|
||||
mit einer anderen Zahlart abschließen.</p>
|
||||
<a href="/Kasse/" class="button" style="width:220px;">Zurück zur Kasse</a>
|
||||
<br /><br />
|
||||
|
||||
{elseif $call == 'payment_pending'}
|
||||
<p>{$message}</p>
|
||||
{if $order_number}<p>Ihre Bestellnummer: <strong>{$order_number|escape}</strong></p>{/if}
|
||||
|
||||
{else}
|
||||
<p>{$message}</p>
|
||||
{if $order_number}<p>Bestellnummer: <strong>{$order_number|escape}</strong></p>{/if}
|
||||
<a href="/Kasse/" class="button" style="width:220px;">Zurück zur Kasse</a>
|
||||
<br /><br />
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,30 +0,0 @@
|
||||
<!-- content_cash_desk/paypalrest.tpl (PayPal Orders v2) -->
|
||||
<div class="full_box">
|
||||
<div class="title_wrapper">
|
||||
<div class="title"><h2>PayPal</h2></div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="box_content">
|
||||
<div class="box_padder cashdesk_paypal_info">
|
||||
{if $call == 'payment_open'}
|
||||
{if $paypal_link}
|
||||
<p>Vielen Dank für Ihre Bestellung.<br /><br />
|
||||
Sie werden zu PayPal weitergeleitet. Falls das nicht automatisch
|
||||
geschieht, klicken Sie bitte auf den folgenden Button.</p>
|
||||
|
||||
<meta http-equiv="refresh" content="0;url={$paypal_link}">
|
||||
|
||||
<a href="{$paypal_link}" class="button" style="width:220px;">Weiter zu PayPal</a>
|
||||
<br /><br />
|
||||
{else}
|
||||
<p>Mit PayPal ist ein Fehler aufgetreten.</p>
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
{if $call == 'payment_error'}
|
||||
<p>{$message}</p>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user