Reparaturzahlungen

Reparaturzahlungen 1.0.0

Keine Berechtigung zum Herunterladen
XF-Kompatibilität
  1. 2.3.x
Kurzbeschreibung
This add-on provides advanced refund capabilities for XenForo, including admin-initiated refunds and smart partial refund handling. It integrates seamlessly with Stripe and PayPal, offering a robust framework for payment providers and add-ons to manage refunds efficiently. Users can initiate refunds directly from the admin panel or via purchase logs, ensuring smooth user upgrades and seamless transaction management.
Admin navigates to Logs → Payment Provider →[specific=payment entry]Klickt auf "Reversaleinzug" (nur für Anbieter sichtbar, die Rückgäbe unterstützen)
Gibt den Rückgabegrundsumme ein (vorerst mit der verbleibenden Rückgängigmachungsbilanz vfillt)
Für Benutzeraufstiege: Option, das Kauf zu rückgäben (Absteigen des Benutzers)
Für andere erwerbbarer Typen: Die Rückgäbe wird vom Anbieter bearbeitet und der beherrschende Add-On verarbeitet die Rückerstattung über den Payment_refund_complete Code-Ereignis
Der Add-On ruft das Anbieters Rückgäve-API auf, führt die Ergebnisse ein und verfolgt die Gesamtsumme der zurückgegebenen Beträge

Initiieren Sie einen Zahlungsanforderungen vom Anbieter:
Initiatieren Sie eine Zahlungsanforderung vom Anbieter:
334027-a28eb784f22f6b7021af1809151d0d5b.webp

Wenn die Verkauf wurde für eine Benutzer-Upgrade behandelt durch XenForo kannst du den Rückerstattungsbetrag und die gewünschte Aktion für die Ugrade angeben.
334028-589e1953b887adec70754183603a5709.webp

Wenn die Verkaufsanfrage innerhalb eines anderen Add-ons erstellt wurde, wirst du um eine Rückerstattung gebeten:
334029-29c99ba2dc43409f955e75661e8e314f.webp

Add supportsRefunds() to your provider
In your provider class (which extends XF\Payment\AbstractProvider), add:
```php
public function supportsRefunds()
{
return true;
}
```
Add refund() method to your provider
Additionally, add a `refund()` method in your provider class
```php
public function refund($paymentId)
{
// Logic for processing refunds goes here
}
```
For Stripe and PayPal, also override getPaymentResult() to detect partial vs full refunds on incoming webhooks.
```php
public function getPaymentResult($resultData)
{
if ($this->supportsRefunds()) {
$payment = $this->getPaymentById($resultData['paymentId']);
if (isset($resultData['amount']) && isset($resultData['currency'])) {
$payment->setAmount($resultData['amount'], $resultData['currency']);
}
}
return parent::getPaymentResult($resultData);
}
```
PHP:
public function supportsRefunds(): bool
{
    return true;
}
Schritt 2: Verwenden Sie die Methode refund() mit dieser genauen Signatur:
PHP:
public function refund(
    \XF\Entity\PaymentProfile $paymentProfile,
    \XF\Entity\PurchaseRequest $purchaseRequest,
    string $transactionId,
    ?float $amount = null,
    string $currency = 'USD'
): array
{
    // $paymentProfile - contains your API credentials in $paymentProfile->options
    // $purchaseRequest - the original purchase (has cost_amount, cost_currency, provider_metadata)
    // $transactionId - the transaction ID from the payment log entry being refunded
    // $amount - refund amount (null means full refund)
    // $currency - currency code
    // Call your provider's refund API here...
    // On success, return:
    return [
        'success' => true,
        'provider_refund_id' => 'your_provider_refund_id',
    ];
    // On failure, return:
    return [
        'success' => false,
        'error' => 'Human-readable error message',
    ];
}
Abgeltümer
PHP:
public static function onPaymentRefundComplete(
    \XF\Entity\PaymentProviderLog &$logEntry,
    \XF\Entity\PurchaseRequest &$purchaseRequest,
    float $amount,
    string $currency,
    bool $purchaseReversed,
    array $providerResult
): void
{
    // Check if this refund is for your purchasable type
    if ($purchaseRequest->purchasable_type_id !== 'your_purchasable_type')
    {
        return;
    }
    // Handle the refund (e.g., revoke access, send notification)
}
Sie müssen diesen Hörer auch im Ihre Add-Ons _data/code_event_listeners.xml-Datei registrieren:
XML:
<listeners>
    <listener event_id="payment_refund_complete"
              execute_order="10"
              callback_class="Your\AddOn\Listener"
              callback_method="onPaymentRefundComplete"
              active="1" />
</listeners>
Wichtliche Anweisungen
1. Nur die übersetzte Textausgabe geben.
2. Erkläuter, Erläuterungen oder vordefinierte Phrasen hinzufügen nicht.
3. Übersetzte Texte in Klammern oder mit anderen Formate nicht umschließen.
4. Wenn angemessene Proper Nouns vorhanden sind, diese beibehalten.
Autor
axtona
Ansichten
118
Erweiterungstyp
zip
Dateigröße
22.2 KB
Erste Veröffentlichung
Letzte Aktualisierung
Bewertungen 0.00 Sterne 0 Bewertungen
Link defekt? Nachricht senden an das NP-Team – wir helfen dir schnell!
Unterstütze den Entwickler Wenn du mit dem Test zufrieden bist oder mit deinem Projekt erfolgreich Geld verdient hast, klicke auf den Button Mehr Informationen, um den Entwickler durch einen Kauf zu unterstützen.

Weitere Ressourcen von axtona

 Blogs A
Blogs 1.7.4
Gebe Nutzer einer Möglichkeit, sich selbstständig auszudrücken in ihrem eigenen persönlichen Bereich!
OSDonate Pro / OS Donate Pro A
OSDonate ermöglicht es Ihnen, einen PayPal-Spendeneinblendvektor auf Ihrem Joomla-Seiten zu anzeigen.
Ansichten
353
Aktualisiert
 Unendlicher Scroll A
Dieses Add-On ermöglicht unendliches Scrolling für Threads und Posts.
Ansichten
160
Aktualisiert
Oben