PayPal-Zahlungen auch ueber die Mailadresse zuordnen
Bisher verglich die Zuordnung ausschliesslich Namen: der Parser las die Adresse des Zahlers gar nicht aus, und die Suche kannte nur paypal_name und display_name. Eine Zahlung von genau der Adresse, die beim Mitglied hinterlegt ist, blieb deshalb liegen. Die Adresse wird jetzt ausgelesen (neue Spalte paypal_payments.payer_email), in der Warteschlange angezeigt und zuerst geprueft - sie ist im Mandanten eindeutig und aendert sich nicht, wenn jemand bei PayPal anders heisst. Der heikle Teil ist das Aussortieren: In einer weitergeleiteten Mail stehen mehrere Adressen. Die falsche zu nehmen wuerde fremdes Geld dem Mitglied hinter dieser Adresse gutschreiben - typischerweise dem Kassenwart. Deshalb fallen paypal.*-Adressen und die eigene Eingangsadresse raus (geprueft gegen die tatsaechliche Empfaengeradresse, Plus-Adressierung ignoriert), und es zaehlt nur eine Adresse in unmittelbarer Naehe des Zahlernamens. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -90,6 +90,7 @@ function paypal_payment_matches_query(array $payment, string $query): bool
|
||||
|
||||
$text = imports_normalize_match_text(
|
||||
(string)$payment['payer_name'] . ' '
|
||||
. (string)($payment['payer_email'] ?? '') . ' '
|
||||
. (string)($payment['note'] ?? '') . ' '
|
||||
. (string)($payment['transaction_code'] ?? '')
|
||||
);
|
||||
@@ -206,6 +207,9 @@ include "nav.php";
|
||||
<td><?php echo saas_html((string)($z['paid_at'] ?? $z['created_at'])); ?></td>
|
||||
<td>
|
||||
<strong><?php echo saas_html($z['payer_name']); ?></strong>
|
||||
<?php if (trim((string)($z['payer_email'] ?? '')) !== ''): ?>
|
||||
<br><small><?php echo saas_html((string)$z['payer_email']); ?></small>
|
||||
<?php endif; ?>
|
||||
<?php if (($z['note'] ?? '') !== null && trim((string)$z['note']) !== ''): ?>
|
||||
<br><small><?php echo saas_html((string)$z['note']); ?></small>
|
||||
<?php endif; ?>
|
||||
|
||||
Reference in New Issue
Block a user