Sie erstellen eine E-Commerce-Webanwendung und müssen mehrere Zahlungsmethoden (Visa, MasterCard ... usw.) unterstützen, damit Ihre Kunden ihre Bestellungen problemlos bezahlen können. Anstatt dies zu implementieren, beschließen Sie, sich auf einen vertrauenswürdigen Drittanbieter zu verlassen, um diese Dienste für Sie bereitzustellen.
Ein bekanntes Unternehmen aus Belgien, das Zahlungsdienstleistungen anbietet, ist Ogone. Sie bieten über 40 internationale und lokale Zahlungsmethoden. Sie übernehmen die Zahlungstransaktionen zwischen Ihren Kunden, Ihrem Online -Shop und den Anbietern von Zahlungsmethoden (z. B. Visum).
Natürlich müssen Sie für jede von Ogone verwaltete Transaktion eine kleine Summe bezahlen, aber das kauft Ihren integrierten Betrugsschutz, die Sicherheit, Tools zur Verwaltung Ihrer Zahlungen ... und vieles mehr. Die Kosten für die Umsetzung all dies selbst sind weitaus größer.
Sie melden sich also für ein Ogone -Konto an und beschließen, ihr System in Ihre Webanwendung zu integrieren.
Wie können wir das erkennen? Lassen Sie uns herausfinden ...
Gehen Sie zuerst auf die Ogone -Website und melden Sie sich für ein kostenloses Testkonto an. In der oberen rechten Ecke der Site finden Sie "eine Schaltfläche" Mit "Erstellen Sie Ihr kostenloses Testkonto".
Abbildung 1 - Testkonto

Klicken Sie darauf und füllen Sie das resultierende Formular aus. Stellen Sie sicher, dass die Daten, die Sie in diesem Formular eingeben, korrekt sind. Nach der Einreichung Ihrer Anfrage für ein neues Testkonto wird ein Mitarbeiter von Ogone Ihre Details überprüfen und abhängig vom Ergebnis genehmigt oder ablehnt Ihre Anfrage ab. Dieser Vorgang kann einige Stunden dauern. Ziemlich nervig, aber es gibt keinen Weg.
Sobald Ihr Konto genehmigt wurde, erhalten Sie eine E-Mail, die Ihr Passwort enthält. Sie sind jetzt bereit, sich bei der Ogone Merchant Administration anzumelden.
Bevor Sie Ihr Testkonto verwenden können, müssen Sie die folgenden Einstellungen konfigurieren:
So konfigurieren Sie Ihre Abonnementoptionen auf das Optionskonto, das im Menü auf der linken Seite des Bildschirms angezeigt wird.
Abbildung 2 - Menü der Händlerverwaltung

Auf der Kontoseite werden Sie mit einigen Optionen angezeigt. Wählen Sie die Option "Ihr Abonnement" aus. Jetzt müssen Sie einen Abonnementtyp auswählen. Wählen Sie "Abenteuer" und klicken Sie auf die Schaltfläche "Bestätigen Sie und gehen Sie zu Ihren Optionen".
Hier können Sie Ihrem Abonnement eine Reihe von Optionen hinzufügen, z. B. Betrugserkennung, Image -Hosting, Rechnungs -Look ... usw. Für diese Demo benötigen wir keine zusätzlichen Optionen. Klicken Sie einfach auf Bestätigen, um Ihre Einstellungen zu speichern.
Nachdem Sie Ihren Abonnementtyp konfiguriert haben, können Sie fortfahren, indem Sie die Zahlungsmethoden hinzufügen, die Sie Ihren Kunden anbieten möchten. Klicken Sie im Menü Händlerverwaltung auf die Option Zahlungsmethoden (Abbildung 2). Nachdem Sie der Liste "Ausgewählte Zahlungsmethoden" Visum hinzugefügt haben, müssen Sie diese Zahlungsmethode bearbeiten und auf aktiviert einstellen.
Abbildung 3 - Visumzahlungsmethode aktivieren

Klicken Sie einfach auf die in Abbildung 3 gezeigte Bearbeitungsoption, markieren Sie die Zahlungsmethode als aktiviert (Aktivierung: Ja) und klicken Sie auf Senden. Sie können die Kartennummer 4111 1111 1111 1111 verwenden, um Visumzahlungen zu testen. Geben Sie einfach alles für das Ablaufdatum und den 3 -stelligen Sicherheitscode ein.
Last but not least müssen Sie einige technische Einstellungen konfigurieren, die bestimmen, wie die Online -Zahlungen behandelt werden. Fahren Sie fort, indem Sie auf die im Menü angezeigten technischen Informationen klicken (Abbildung 2).
Die resultierende Seite ist in die folgenden Registerkarten unterteilt:
Klicken Sie einfach auf diese Links, um Screenshots zu sehen, wie ich mein Ogone -Testkonto konfiguriert habe. Ich habe die SHA-1-in- und SHA-1-Out-Signatur auf "Microsoftaspnet4" eingestellt. Wir werden später darauf zurückkommen.
Sie haben jetzt Ihr Ogone -Testkonto erstellt und konfiguriert. Sie sind bereit, Ihre erste Online -Zahlung zu leisten.
Ich habe ein einfaches ASP.NET -Webanwendungsprojekt erstellt, mit dem Sie demonstrieren, wie Sie Ogone -Zahlungen in Ihre eigene ASP.NET -fähige Website integrieren können.
Abbildung 4 - Die Lösung

Diese Webanwendung enthält nur eine Handvoll Seiten:
Bemerkung : Wie Sie sehen können, enthält das Projekt auch einige Codedateien. Wir werden diese in den folgenden Abschnitten besprechen. Diese Dateien enthalten den erforderlichen Code, um den Zahlungsvorgang mit Ogone zu verarbeiten. Fühlen Sie sich frei, das Design zu verbessern. Ich habe nur das minimale Code aufgenommen, um die Dinge zum Laufen zu bringen.
Klicken Sie nicht auf die unten angezeigte Schaltfläche zur Startzahlung, sondern nur ein Screenshot. So sieht die Seite von Standard.aspx aus:
Abbildung 5 - Die Seite Standard.aspx

Eine Referenz (oder eine Bestell -ID) wird generiert, um die bezahlte Bestellung eindeutig zu identifizieren. Ogone verfolgt diese Referenzen. Sie können die gleiche Referenz nicht zweimal verarbeiten. Deshalb habe ich mich für dieses Beispiel für dieses Beispiel für dieses Beispiel entschieden. Ich musste die GUID auf 30 Zeichen verkürzen, da Ogone nicht mehr als diese Grenze zulässt.
Neben dieser Referenz müssen Sie natürlich auch den Betrag angeben, der gezahlt werden muss. Der Beispielcode sendet auch entlang der E-Mail-Adresse des betreffenden Kunden. Auf diese Weise kann Ogone dem Kunden eine E-Mail senden, dass seine Zahlung erfolgreich bearbeitet wurde.
Lassen Sie uns den Code sehen, der hinter dem Klickereignis der Schaltfläche versteckt ist:
Auflistung 1 - Anfrage Ogone -Zahlung anfordern
// Persist order to database
// ...
OgoneRequest ogoneRequest = new OgoneRequest ( ) ;
ogoneRequest . RequestPayment ( this . _reference , amount , customerEmail ) ;
// Clear shopping cart
// ...Sie können eine Zahlung starten, indem Sie eine neue Instanz der Ogonerequest -Klasse erstellen und die Methode für RequestPayment (...) aufrufen. Diese Methode erfordert 3 Parameter, nämlich die Auftragsreferenz, den gezahlten Betrag und die E-Mail-Adresse des Kunden.
Listing 2 - Ogonerequest -Konstruktor
public OgoneRequest ( )
{
OgoneUrl = ConfigurationManager . AppSettings [ "Ogone_Url" ] ;
Psid = ConfigurationManager . AppSettings [ "Ogone_PSID" ] ;
ShaKey = ConfigurationManager . AppSettings [ "Ogone_SHA1_IN" ] ;
Currency = ConfigurationManager . AppSettings [ "Ogone_Currency" ] ;
Language = ConfigurationManager . AppSettings [ "Ogone_Language" ] ;
AcceptUrl = ConfigurationManager . AppSettings [ "Ogone_AcceptUrl" ] ;
ExceptionUrl = ConfigurationManager . AppSettings [ "Ogone_ExceptionUrl" ] ;
CancellationUrl = ConfigurationManager . AppSettings [ "Ogone_CancellationUrl" ] ;
}Der Konstruktor der Ogonerequest -Klasse initialisiert einige Eigenschaften, indem einige Werte aus der Konfigurationsdatei der Anwendung (web.config) gelesen werden. Sie müssen die URL angeben, um den Zahlungsvorgang, Ihr Ogone PSID (Benutzername), den SHA1-in-Schlüssel, den Sie in der Händlerverwaltung, den Umleitungs-URLs zu starten, zu starten.
Auflistung 3 - Anfragezahl (...) Methode
public void RequestPayment ( string reference , double amount , string email )
{
// Multiply by one hundred and round to zero decimals
amount = Math . Round ( amount * 100 , 0 ) ;
RemotePost post = new RemotePost { Url = this . OgoneUrl } ;
post . Add ( "pspid" , this . Psid ) ;
post . Add ( "orderid" , reference ) ;
post . Add ( "amount" , amount . ToString ( ) ) ;
post . Add ( "currency" , this . Currency ) ;
post . Add ( "language" , this . Language ) ;
post . Add ( "email" , email ) ;
// Hash
post . Add ( "SHASign" , Ogone . GenerateHash (
reference + amount + this . Currency +
this . Psid + this . ShaKey ) ) ;
// Redirection URLs
post . Add ( "accepturl" , this . AcceptUrl ) ;
post . Add ( "exceptionurl" , this . ExceptionUrl ) ;
post . Add ( "cancelurl" , this . CancellationUrl ) ;
post . Post ( ) ;
}Die RequestPayment (...) -Methode initiiert einen neuen Zahlungsprozess, indem ein HTTP -Beitrag mithilfe der RemotePost -Klasse erstellt wird. Alle notwendigen Informationen sind in der Post wie Ihrem PSID enthalten, der Betrag, der gezahlt werden muss, die Sprache, das SHA1 -Zeichen ... usw.
Sie müssen den SHA1-Hash mit der SHA1-in-Signatur, die Sie in der Händlerverwaltung konfiguriert haben, berechnen. Ogone gibt an, dass Sie auch die Referenz, den Betrag, die Währung und Ihr PSID in diesen Hash einbeziehen müssen. Wir werden später SHA1 -Hashes berechnen.
Bemerkung : Der HTTP -Beitrag sendet mit einigen Umleitungs -URLs, die Ogone bei der Zahlung der Zahlung verwendet, storniert ... usw. Wenn Sie diese nicht bereitstellen, werden die in der Händlerverwaltung konfigurierten Standard -URLs verwendet (Transaktions -Feedback -Registerkarte unter technischen Informationen).
Abbildung 6 - Zahlungsbestätigung

Nach dem Start des Zahlungsprozesses werden Sie zu einer neuen Seite umgeleitet, wie in der obigen Abbildung angezeigt wird. Sie können die Aufgabe dieser Seite ändern, indem Sie zusätzliche Parameter im HTTP-Post angeben. Schauen Sie sich den Quellcode an, der diesen Artikel begleitet, und die offizielle Ogone -Dokumentation, um weitere Informationen zu diesem Thema zu erhalten.
Wenn der Benutzer auf die Schaltfläche Abbrechen klickt, wird der Zahlungsvorgang beendet und er wird auf die Seite PaymentCancelled.aspx umgeleitet. Diese Seite zeigt nur eine Nachricht an, dass der Benutzer den Zahlungsvorgang storniert hat.
Wir haben unser Ogone -Konto jedoch so konfiguriert, dass alle relevanten Informationen zum Zahlungsvorgang in der Abfragezeichenfolge enthalten sind. Zum Beispiel:
http: // localhost: 3767/paymentCancelled.aspx? OrderID = 246CF6F0-8BAD-4EDB-806C-EED3FB & CURRENCY = EUR & BOTOM = 19.99 & PM = CreditCard & Acceptance = & Status = 1 & Cardno = & ed = & cn = & trxDate = 04%2F08%2F10 & payID = 6806803 & ncerror = & Brand = ... usw.
Sie können Informationen wie die ursprüngliche Auftragsreferenz, den Betrag, die Zahlungsmethode (zB Visa), den Zahlungserfolgsstatus usw. extrahieren. Sie können diese Informationen protokollieren oder verwerfen, wenn Sie möchten. Es liegt an dir. Ogone enthält auch einen SHA1-Hash, der mit der Hilfe der in der Handelsverwaltung konfigurierten SHA1-Out-Signatur komponiert ist. Mit diesem Hash können Sie die Identität der Person, die die Anfrage und die Gültigkeit der in der Abfragezeichenfolge vorhandenen Daten gestellt hat, überprüfen.
Wenn der Zahlungsvorgang erfolgreich abgeschlossen ist, leitet Ogone den Benutzer auf die Seite PaymentAccepted.aspx um. Die Abfragezeichenfolge enthält auch dieselben Daten. Während des Ladungsereignisses der Seite wird der Status der Zahlung und die Gültigkeit des SHA -Hashs überprüft. Wenn beide korrekt sind, wird die Zahlung akzeptiert.
Listing 4 - paymentAccepted.aspx Seite Ereignishandler laden
OgonePaymentStatus status = OgoneResponse . Status ;
// Invalid Sha key returned from Ogone?
bool paymentSucceeded = OgoneResponse . IsShaSignValid && Ogone . IsPaymentStatusValid ( status ) ;Bemerkung : Ogone enthält einen Parameter namens Status (Ganzzahl) in der Abfragezeichenfolge. Dieser Status informiert Sie über den Status der Zahlung. Der Beispielcode für diesen Artikel hat einige dieser Werte in eine Aufzählung bezeichnet, die als OgonePaymentStatus bezeichnet wird. In der offiziellen Ogone -Dokumentation finden Sie eine Liste aller möglichen Werte. Die Methode IsspaymentStatusValid (...) überprüft, ob der eingehende Statusparameter einer der Werte ist, die uns informieren, dass die Zahlung geleistet wurde.
Der OgonerePonse -Klassentyp ist nur ein kleiner Wrapper, der sich mit den Parametern der Abfrage -Zeichenfolge befasst, die Ogone enthält, wenn er den Benutzer wieder zu Ihrer Website umleitet.
Auflistung 5 zeigt einen kleinen Auszug aus dieser Klasse. Die Eigenschaft isShaSignValid liest die SHA1-Out-Signatur aus der Konfigurationsdatei der Anwendung (web.config) und berechnet das SHA-Zeichen neu. Dazu müssen Sie andere Daten wie den Betrag, Auftragsreferenz, Währung usw. einbeziehen. (Wenden Sie sich an die offizielle Ogone -Dokumentation, um weitere Informationen zu erhalten.)
Wenn das berechnete SHA -Vorzeichen dem in der Abfragezeichenfolge enthaltenen entspricht, dann haben wir eine Anfrage, die aus Ogone stammt, und die Daten in den Parametern der Abfragezeichenfolge sind gültig.
Listing 5 - OgonerePonse -Klasse
public static class OgoneResponse
{
public static string OrderId { get { return HttpContext . Current . Request [ "orderid" ] ; } }
public static string Amount { get { return HttpContext . Current . Request [ "amount" ] ; } }
public static string ShaSign { get { return HttpContext . Current . Request [ "shasign" ] ; } }
public static bool IsShaSignValid
{
get
{
string key = OrderId + Currency + Amount + PaymentMethod + AcceptanceCode +
( int ) Status + CardNumber + PaymentId + NcError + Brand +
ConfigurationManager . AppSettings [ "Ogone_SHA1_OUT" ] ;
return ShaSign == Ogone . GenerateHash ( key ) ;
}
}
} Auflistung 6 zeigt eine mögliche Möglichkeit, wie Sie einen SHA1 -Hash für eine Zeichenfolge berechnen können. Die Zeichenfolge wird in ein Byte -Array umgewandelt und dann mit einem SHA1CryptoServiceProvider codiert. Der resultierende Hash wird dann in ein hexadezimales Format umgewandelt.
Listing 6 - Berechnung von SHA1 -Hashes
public static string GenerateHash ( string input )
{
byte [ ] bytes = new ASCIIEncoding ( ) . GetBytes ( input ) ;
SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider ( ) ;
byte [ ] hash = sha . ComputeHash ( bytes ) ;
StringBuilder result = new StringBuilder ( ) ;
for ( int i = 0 ; i < 20 ; i ++ )
{
string temp = hash [ i ] . ToString ( "X2" ) ;
if ( temp . Length == 1 )
{
temp = "0" + temp ;
}
result . Append ( temp ) ;
}
return result . ToString ( ) ;
}Und damit endet der Artikel ...
Ich hoffe, Sie haben dieses Tutorial über die Integration der Ogone-Zahlungsdienste in Ihre E-Commerce-Webanwendung genossen. Um das, was wir aus der Sicht eines Entwicklers abgedeckt haben, zusammenzufassen: