Wie verarbeite ich PayPal-Zahlungen in einer ionischen App für Woocommerce?

Lesezeit: 4 Minuten

Ich arbeite an einer ionischen 2-App, die im Grunde ein Einkaufswagen mit Woocommerce als Backend ist. Mit der REST-API lief alles ziemlich reibungslos: Ich kann Produkte durchsuchen und Bestellungen für den Kunden in der App erstellen.

Aber jetzt hänge ich bei der Zahlungsabwicklung fest. Die App verwendet nur PayPal, und es gibt eine PayPal-Plugin Ich möchte verwenden. Ich habe es nicht getestet, aber es scheint ziemlich einfach zu sein: Sie übergeben die Kaufdetails (Preis, Währung, Beschreibung …) und rendern dann die PayPal-Benutzeroberfläche.

Ich kann all diese Informationen der PayPal-Benutzeroberfläche zur Verfügung stellen, aber es stellt sich die offensichtliche Frage: Wie integriere ich sie in die zugehörige Woocommerce-Bestellung? Wie schaffe ich es, dass Woocommerce eine erfolgreiche Zahlung als solche registriert?

Die Woocommerce-Installation aktiviert PayPal bereits. Sie können PayPal auf der Website problemlos verwenden.

Jetzt bin ich mir ziemlich sicher, dass es etwas mit PayPals IPN zu tun hat. Wenn ich eine wilde Vermutung annehme, sollte ich vielleicht irgendwie die Bestell-ID an das PayPal-Plugin weitergeben, damit das IPN dann dieselbe Bestell-ID an Woocommerce weitergibt? Wahrscheinlich so etwas, aber ich kann keine richtige Dokumentation darüber finden.

Wenn Sie nach „ionic 2 woocommerce paypal“ suchen, werden Sie viele Leute sehen, die den Quellcode für so ziemlich dasselbe verkaufen. Ich könnte einen kaufen und studieren, aber ich würde lieber eine Dokumentation über diese spezielle Aktion finden.

  • Anstatt ein Plugin zu verwenden, warum nur einen gewöhnlichen HTML-Button bezahlen?

    – Jonathan Brizio

    28. März 2017 um 22:51 Uhr

  • @JonathanBrizio Trotzdem wüsste ich nicht, welche Informationen an diese Schaltfläche weitergegeben werden sollen.

    – Saturn

    29. März 2017 um 0:07 Uhr

  • Können Sie eine einfache Version Ihrer Implementierung auf Git Repo bereitstellen? Dann können wir damit spielen, nein?

    – Sampath

    4. April 2017 um 5:02 Uhr

  • @Sampath, es ist nur eine Schaltfläche, die genau denselben Code wie die Dokumentseite aufruft: (ionicframework.com/docs/native/paypal) – es funktioniert einwandfrei – Sie können davon ausgehen, dass Woos Bestellung bereits erstellt wurde (sagen wir, es ist Nummer 50) – Ich weiß nur nicht, wie ich PayPal anweisen soll, Woo mitzuteilen, dass diese Zahlung mit Bestellung 50 verbunden ist.

    – Saturn

    4. April 2017 um 5:30 Uhr


  • Klar. Ich werde damit spielen und euch das Ergebnis mitteilen.

    – Sampath

    4. April 2017 um 5:49 Uhr

Du bist fast am Ziel. Wenn Sie das Plugin nicht kaufen möchten, können Sie dies manuell tun. Setzen Sie zum Beispiel die notify_url Parameter zu Ihrer Website, mit dhpp_respond (oder was auch immer Sie wollen).

Geben Sie hier die Bildbeschreibung ein

In deiner functions.phpgeben Sie diesen Code ein:

if(isset($_GET['pp_respond'])){
    file_put_contents(__DIR__."/my_notificationssss.txt", $_SERVER['REQUEST_URI']. "\r\n". print_r($_POST,true) . "\r\n ------------- \r\n" , FILE_APPEND);
}

Dann machen Sie einen Testkauf, und entlang der functions.php Datei gibt es eine neue Datei mit dem Namen my-notificationssss.txtund sehen Sie sich diese Datei an und finden Sie Ihre gewünschten Parameter heraus, die Sie in Zukunft verwenden möchten.

Eine mögliche Lösung wäre, die Bestellinformationen zur Benutzersitzung hinzuzufügen, bevor der Benutzer an Paypal gesendet wird.

Nachdem der Benutzer über Paypal bezahlt hat, leiten Sie ihn zu einer “Erfolgs”-URL weiter (in der PayPal-Anforderung angegeben). Wenn der Benutzer zu dieser Erfolgs-URL geht, können Sie die Bestellung in WooCommerce mithilfe der Sitzungsinformationen aktualisieren.

Benutzer-Avatar
Luis Estevez

Nach einem Blick in den Woo-Commerce-Quellcode scheint es, als würde es dem Abschnitt “Rechnungsnummer” von PayPal eine eigene Bestell-ID hinzufügen.

Wenn Sie also das Woo-Commerce-PayPal-Plugin auf Ihrer Website haben (es sollte IPN aktiviert sein), können Sie das PayPal-Cordova-Plugin in ionic 2 verwenden, indem Sie die Woo-Commerce-Bestell-ID an die Rechnungsnummer übergeben. Wie im folgenden Beispiel:

BEARBEITEN: Obwohl Woo Commerce die Rechnungsnummer hinzufügt, glaube ich jetzt, dass die wichtigsten übergebenen Parameter die sind custom Parameter

pay() {
    let payment = new PayPalPayment(this.data.price, this.data.currency, this.data.description, 'sale');
    payment.custom = JSON.stringify({ order_id: this.data.WOOCOMMERCE_ORDERID, order_key: this.data.WOOCOMMERCE_ORDERKEY });
    this.payPal.renderSinglePaymentUI(payment).then((response) => {
        console.log(response);
        // Successfully paid

        // Example sandbox response
        //
        // {
        //   "client": {
        //     "environment": "sandbox",
        //     "product_name": "PayPal ANDROID SDK",
        //     "paypal_sdk_version": "2.16.0",
        //     "platform": "iOS"
        //   },
        //   "response_type": "payment",
        //   "response": {
        //     "id": "PAY-1AB23456CD789012EF34GHIJ",
        //     "state": "approved",
        //     "create_time": "2016-10-03T13:33:33Z",
        //     "intent": "sale"
        //   }
        // }
    }, () => {
        // Error or render dialog closed without being successful
    });
}

1385210cookie-checkWie verarbeite ich PayPal-Zahlungen in einer ionischen App für Woocommerce?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy