PayPal-Link in Bestellbestätigung mit einbinden!

Thema wurde von uncutmovie.de, 20. März 2015 erstellt.

  1. uncutmovie.de

    uncutmovie.de Erfahrener Benutzer

    Registriert seit:
    11. März 2014
    Beiträge:
    313
    Danke erhalten:
    19
    Danke vergeben:
    14
    So, ich habe den Fehler gefunden und nun wird mir auch der Link angezeigt. Wenn ich aber auf den Link klicke öffnet sich eine Seite und ich bekomme dann folgende Meldung: "This transaction cannot be processed. The amount to be charged is zero."

    Was mache ich denn nun schon wieder falsch? :(
     

    Anhänge:

  2. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Vermutlich nichts.... :)

    Ich habe das mit v2.1 getestet, muss dann wohl doch mal auch die 2.2 untersuchen....

    Anscheinend gibt es da Unterschiede in der Ermittlung des Bestellwerts.
     
  3. uncutmovie.de

    uncutmovie.de Erfahrener Benutzer

    Registriert seit:
    11. März 2014
    Beiträge:
    313
    Danke erhalten:
    19
    Danke vergeben:
    14
    Na dann bin ich ja erleichtert. :)

    Das wäre super, wenn du dir das anschauen könntest.
     
  4. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    So, habe das gerade mit einem neuen 2.2.0-Shop getestet...

    Hat einwandfrei funktioniert....

    paypal.jpg
     
  5. uncutmovie.de

    uncutmovie.de Erfahrener Benutzer

    Registriert seit:
    11. März 2014
    Beiträge:
    313
    Danke erhalten:
    19
    Danke vergeben:
    14
    Ich habe es auch nochmal gestest und ich hatte auch schon etwas im Kopf. Es wurde nun bestätigt.

    Wenn ich die Bestellung im Backend erstelle, also manuell, funktioniert es nicht. Es funktioniert nur, wenn ich die Bestellung im Frontebd tätige funktioniert es 1a. Könntest du noch mal nachschauen, warum es bei einer manuellen Bestellung nicht funktioniert?
     
  6. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Wo und wie erstellst Du eine Bestellung manuell?

    Das liegt vermutlich daran, dass die benötigte "order_id" aufgrund der Verhältnisse bei der Bestellung im Frontend ermittelt wird...
     
  7. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.698
    Danke erhalten:
    889
    Danke vergeben:
    288
    Das klappt wohl.
    Wenn es jetzt noch eine Lösung für abgebrochene PP-Zahlungen gäbe, wäre es perfekt.

    Derzeit bekommen die Kunden nach einer abgebrochenen Zahlung ja keine Bestellbestätigung und werden in den Checkout zurückgeleitet. Das führt dann zu mehrfachen Bestellungen.

    Besser wäre es, die Bestellbestätigung mit dem Link sofort zu versenden und die Kunden bei abgebrochener Zahlung auf die normale Checkout-success zurückzuleiten. Dort könnte der Link dann auch nochmal eingeblendet werden, so daß der Kunde die Möglichkeit hat, die Zahlung nochmals zu probieren.

    So hatte ich das in den letzten Jahren mit Reimanns PayPal-Gold-Modul, welches es nicht mehr gibt, was aber 100%ig funktionierte.
    Der Sinn darin, warum Bestellbestätigungen nicht versendet werden wenn die Zahlung nicht erfolgt, erschliesst sich mir nicht.
     
  8. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Ja, wie ich vermutet hatte wird die "orders_id" falsch ermittelt, wenn das aus dem Admin-Bereich aktiviert wird, so dass der Betrag "0" .... errechnet wird....

    Hier die geänderte Version des Overloads:

    PHP:
    class pt_paypal_paylink_SendOrderContentView extends pt_paypal_paylink_SendOrderContentView_parent
    {
      public function 
    __construct()
      {
        
    parent::__construct();

        
    $orders_id $GLOBALS['insert_id'];
        if (!
    $orders_id )
        {
          
    $orders_id $_GET['oID'];
        }
        if (
    $orders_id)
        {
          
    $orders_query_sql "
          SELECT
            ot.value as order_total
          FROM
            "
    .TABLE_ORDERS." o
              LEFT JOIN "
    .TABLE_ORDERS_TOTAL." ot USING (orders_id)
          WHERE
            o.orders_id='
    $orders_id' AND
            ot.class = 'ot_total'"
    ;
          
    $orders_query=xtc_db_query($orders_query_sql);
          
    $orders_data=xtc_db_fetch_array($orders_query);
          
    $amount=round((float)$orders_data['order_total'],2);
          
    $paypal = new GMPayPal();
          
    $paycode md5(uniqid());
          
    $paypal->setPaycode($orders_id$paycode$amount);
          
    $paylink HTTP_SERVER.DIR_WS_CATALOG."paypal_payment.php?paycode=".$paycode;
          
    $message='
            <p>Um diese Bestellung per PayPal zu bezahlen, folgen Sie bitte diesem Link: </p>
            <p><a href="%s">Bestellung per PayPal bezahlen</a></p>
          '
    ;
          
    $paylink=sprintf($message,$paylink);
          
    $this->set_content_data('PAYPAL_PAYLINK',$paylink);
        }
      }
    }
     
  9. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Ja, das wurde schon des öfteren diskutiert....

    Die Bestellung ist ja gültig, auch wenn die direkte Zahlung nicht erfolgreich war....

    Andererseits hatte Steffen ja kürzlich ein Modul veröffentlicht, um solche doppelten Bestellungen zu löschen....
     
  10. uncutmovie.de

    uncutmovie.de Erfahrener Benutzer

    Registriert seit:
    11. März 2014
    Beiträge:
    313
    Danke erhalten:
    19
    Danke vergeben:
    14
    Man kann im Backend unter Kunden eine neue Bestellung erzeugen bzw. unter Bestellungen bereits erstellte Bestellung bearbeiten. Wenn man diese eine der beiden Varianten benutzt und dann auf Bestellbestätigung neu erzeugen klickt, so funktioniert der PayPay-Link nicht mehr. Es wäre wirklich super, wenn es bei manuell-erstellten Bestellungen auch funktionieren würde. :D

    Das habe ich gerade getestet und das System erstellt wirklich eine Bestellung nach der Anderen, wenn man versucht nach einer abgebrochenen Bestellung diese neu zu bezahlen. Sehr komisch.

    Hey Avenger,
    du bist wirklich eine große Bereicherung für dieses Forum. Vielen lieben Dank.
     
  11. uncutmovie.de

    uncutmovie.de Erfahrener Benutzer

    Registriert seit:
    11. März 2014
    Beiträge:
    313
    Danke erhalten:
    19
    Danke vergeben:
    14
    Ich habe es soeben getestet und es klappt super. DANKE!!! :D
     
  12. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Für den Dank haben die Foren-Götter den "Danke"-Button erfunden... :)
     
  13. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.698
    Danke erhalten:
    889
    Danke vergeben:
    288
    hmm...

    Wenn man den Link mehrfach aufruft, wird auch bei nicht erfolgter Zahlung folgende Fehlermeldung ausgegeben:

    "Payment has already been made for this InvoiceID."
     
  14. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Das müsste dann auch bei den im Admin verschickten Pay-Links so geschehen.

    Denn ich nutze ja die bestehende Gambio-Infrastruktur dafür
     
  15. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.698
    Danke erhalten:
    889
    Danke vergeben:
    288
    Ich habe es nochmals probiert und kann das Problem nicht reproduzieren. Schon eigenartig.

    Kann man Variable auch in die checkout_success einbinden?
     
  16. uncutmovie.de

    uncutmovie.de Erfahrener Benutzer

    Registriert seit:
    11. März 2014
    Beiträge:
    313
    Danke erhalten:
    19
    Danke vergeben:
    14
    #56 uncutmovie.de, 26. März 2015
    Zuletzt bearbeitet: 26. März 2015
    Ich habe das mal soeben nachgeholt mit dem "DANKE"-Button. ;)

    Ich bräuchte dann doch nochmal deine Hilfe. Nach langem suchen im Forum habe ich nichts gefunden. Es passt jetzt auch nicht hier so wirklich rein, aber hat dennoch mit der Sache zu tun. :)

    Nun zum Problem.
    Ich habe festgestellt, wenn ich eine Bestellbestätigung maschinell im Frontend erzeugen lasse, stellt das System die Bestellbestätigung ordnungsgemäß dar. (siehe im Bild linke Bestellbestätigung) Wenn ich aber eine Bestellbestätigung manuell im Backend bearbeite oder erzeuge, dann haut das System das Leerzeichen zwischen der bearbeiteten Position und dem Betrag raus. (siehe im Bild rechte Bestellbestätigung)

    Es ist jetzt nicht gravierend, aber es sieht nicht schön aus. :(
     

    Anhänge:

  17. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Nein, da muss man erst ein analoges Overload für checkout_success erstellen...
     
  18. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Der Vollständigkeit halber nun auch noch dieses Overload...

    Die beiden "Overloads" befinden sich im Archiv im Anhang.

    Für "checkout_success" wir zusätzlich noch die Variable "PAYMENT_MODUL" erstellt (bei "send_order" ist die schon enthalten).

    Damit kann man z.B. verhindern, dass der Pay-Link angezeigt wird, wenn die Zahlart "paypalng" ist.

    PHP:
    {if $PAYMENT_MODUL<>'paypalng'}
    {/if}
    Wie immer gilt:

    • Anwendung auf das ausschließliche Risiko des Shopbetreibers.
    • Es gibt keinerlei Gewährleistung.
    • Erst in einem Testshop testen.
    • Cache leeren.
     

    Anhänge:

  19. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.698
    Danke erhalten:
    889
    Danke vergeben:
    288
    Funktioniert nicht...
    Der Link in der Email ist ungültig und in der Checkout-Success wird nichts ausser Header und Footer angezeigt.
     
  20. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Hallo, Christian,

    hast Du einen Testshop?

    FTP- und Admin-Zugang dazu?

    Besten Dank für Deine Spende. :)