Wenn Sie einen Vorschlag zur Architectural Design der Lösung erwarten,
Zuerst müssen Sie eine Schnittstelle mit allen Methoden zu schaffen, die mit allen Gateways sind Pflicht
interface PaymentGateway {
public function processPayment();
public function authorize();
}
dann erstellen Sie konkrete Klassen für jede Zahlung Gateway
public class GoogleCheckoutGateway extends PaymentGateway {
public function processPayment() {
//Code to process google checkout payment
}
}
//Same like other payment gateways like paypal
public class PaypalCheckoutGateway extends PaymentGateway {
public function processPayment() {
//Code to process paypal payment
}
}
dann eine Business-Logik-Methode erstellen Zahlung zu verarbeiten, indem sie mit verschiedenen Gateways
public class PaymentProcessor {
public function processPayment(string gateway) {
//Create the respective object depending upon gateway
$gateway = getGateway(type);
$response = $gateway->processPayment();
}
}
Dieser Entwurf, den Sie später addtional Gateways für die absehbare Zukunft
Können Sie diese nicht einfach selbst implementieren? Auf diese Weise können Sie viel mehr "Schwerfälligkeit" vermeiden :) Alle oben genannten Anbieter haben Beispielcode für PHP mit ihren SDK-Downloads. – Ing
Sie würden einen Controller für jedes Zahlungs-Gateway haben, dann verwenden Sie den Controller, auf dem Zahlungs-Gateway der Benutzer wählt. –