Inhalte aufrufen

Profilbild
- - - - -

Eigene Bezahlseite in PaymentPlugin


  • Bitte melden Sie sich an, um eine Antwort zu verfassen.
4 Antworten zu diesem Thema

#1 Sascha Patschka

Sascha Patschka

    Member

  • Members
  • PunktPunkt
  • 20 Beiträge

Geschrieben: 06 July 2015 - 16:47

Hallo liebes Forum

 

Ich würde nochmals einen schubs in die richtige richtung von euch benötigen.

 

Ich dem Plugin welches ich gerade erstelle, soll die bezahlung anders funktionieren als z.b. beim OfflinePlugin oder dem PayPal Plugin.

 

Ich habe vom Betreiber ein HTML Script bekommen welches z.b. in einem iframe eingebettet werden soll.

<html>
  <head>
    <script async src="https://test.ctpe.net/frontend/widget/v4/widget.js;jsessionid={token}"></script>
  </head>
  <body>
    <form action="{url for redirecting the shopper after the payment}" id="{token}">VISA MASTER CHINAUNIONPAY SOFORTUEBERWEISUNG </form>
  </body>
</html>

Jetzt soll der Benutzer als Zahlungsart mein Plugin (PayUnity) auswählen und nach bestätigen der AGB zu dieser Seite (z.b. Pay.cshtml) kommen. Die frage ist nur wie ich diese Seite lade. Ich weis ja das ich im Provider bei

 public override void PostProcessPayment(PostProcessPaymentRequest postProcessPaymentRequest)

hier einen Redirect machen kann, nur wie? mit  _httpContext.Response.Redirect("Pay") klappts natürlich nicht, auch nicht mit der vollen URL.Ausserdem will ich ja schon das die Seite innerhalb des Shops gerendert wird. Ich weis nicht wie man das unter MVC nennt (kann sein PartialView). Bin unter MVC noch Anfänger.

 

Dann dachte ich das ich die View ja vorerst bekannt machen muss so wie hier bei der Configuration mit:

 public override void GetConfigurationRoute(out string actionName, out string controllerName, out RouteValueDictionary routeValues)
        {
            actionName = "Configure";
            controllerName = "PayUnity";
            routeValues = new RouteValueDictionary() { { "area", "SPS.PayUnityPlugin" } };
        }

Aber nur wo und wie?

 

Vieleicht könnt Ihr mir hier ja einen schubs in die richtige Richtung geben!

 

Grüße

Sascha



#2 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3804 Beiträge

Geschrieben: 06 July 2015 - 17:25

Um was für eine Art\Typ Payment Plugin handelt es sich? (Wird über den Override PaymentMethodBase.PaymentMethodType festgelegt.)
Muss auf eine externe Seite des Zahlungsanbieters weitergeleitet werden (PaymentMethodType.Redirection) oder erfolgt die Kommunikation
mit dem Payment Gateway im Hintergrund (z.B. PaymentMethodType.Standard).
 
Im Fall von PaymentMethodType.Redirection wird nix im Shop gerendert, sondern die URL wird mit allen erforderlichen Parametern
zusammengestellt und per _httpContext.Response.Redirect weitergeleitet (z.B. Sofortüberweisung).
 
Ansonsten kann im Checkout auf der Zahlungsauswahlseite über PaymentInfo.cshtml gerendert werden (s.z.B. PayPal Direct).
PaymentMethodBase.GetPaymentInfoRoute steuert das wie finden von PaymentInfo.cshtml.

  • Sascha Patschka gefällt das

Marcus Gesing

Smartstore AG


#3 Sascha Patschka

Sascha Patschka

    Member

  • Members
  • PunktPunkt
  • 20 Beiträge

Geschrieben: 06 July 2015 - 17:36

Hallo

 

Danke für die Antwort

Die möglichkeit wie im PayPal Direct habe ich gesehen. Den MethodType habe ich auf Standart festgelegt. Nur wenn ich es so mache wie in PayPal Direct würde die Zahlung bereits in diesem Schritt durchgeführt werden. Doch der Kunde soll zuerst die AGB bestätigen müssen und dann erst bezahlen.

 

Hintergrund: In den AGBs stehen ein paar dinge drinnen welche wichtig sind damit wir die Zahlungsmöglichkeit von PayUnity anbieten können/dürfen.

 

Deshalb dachte ich daran das nach dem klick auf "Kaufen" (auf der Seite mit den AGBs) erst die Seite anzeigen lasse.

 

Ist das denn so möglich??

 

Grüße

Sascha



#4 Marcus Gesing

Marcus Gesing

    SmartStore AG

  • Administrators
  • 3804 Beiträge

Geschrieben: 06 July 2015 - 18:00

Man kann es per Widget auf der "Ihre Bestellung ist angekommen" Seite rendern. Siehe Amazon Payment Plugin (Widgets > AmazonPayWidget),
wie man so etwas macht. WidgetZone wäre in dem Fall "checkout_completed_top" oder "checkout_completed_bottom".
 
Problem ist nur, dass dort Kunden möglicherweise keine Inteaktionen mehr für notwendig erachten, weil die Bestellung ja schon durch ist,
und somit keine Zahlung ausgelöst wird.

  • Sascha Patschka gefällt das

Marcus Gesing

Smartstore AG


#5 Sascha Patschka

Sascha Patschka

    Member

  • Members
  • PunktPunkt
  • 20 Beiträge

Geschrieben: 06 July 2015 - 18:03

Danke für die Antwort

 

Also vorgesehen ist es also so wie ich es mir dachte nicht.

Dann muss ich etwas umdenken.

 

Ich versuche es mal so zu implementieren wie im PayPal Direkt und muss dann auf dieser Seite evtl. die jeweiligen Hinweise anzeigen lassen.

 

Ich hoffe ich darf mich nochmals melden wenn ich probleme habe.

 

Grüße

Sascha