Heim  >  Artikel  >  PHP-Framework  >  So implementieren Sie die Alipay-Zahlungsschnittstelle mit Laravel

So implementieren Sie die Alipay-Zahlungsschnittstelle mit Laravel

PHPz
PHPzOriginal
2023-11-04 16:13:471253Durchsuche

So implementieren Sie die Alipay-Zahlungsschnittstelle mit Laravel

So implementieren Sie mit Laravel die Alipay-Zahlungsschnittstelle

Mit der Entwicklung des E-Commerce ist die Vielfalt der Zahlungsmethoden zu einem wichtigen Auswahlkriterium geworden. Als Chinas größte Drittanbieter-Zahlungsplattform spielt Alipay eine wichtige Rolle im E-Commerce-Bereich. Bei der Entwicklung von E-Commerce-Websites müssen wir häufig die Alipay-Zahlungsschnittstelle integrieren, um Benutzern bequeme Zahlungsmethoden bereitzustellen. In diesem Artikel wird die Verwendung des Laravel-Frameworks zur Implementierung der Alipay-Zahlungsschnittstelle vorgestellt und spezifische Codebeispiele gegeben.

Zuerst müssen wir das Laravel-Omnipay-Erweiterungspaket im Laravel-Projekt installieren. Die Erweiterung bietet Unterstützung für mehrere Zahlungsgateways, einschließlich Alipay. Verwenden Sie den folgenden Befehl, um das Erweiterungspaket zu installieren:

composer require omnipay/omnipay

Nach Abschluss der Installation müssen wir Alipay-bezogene Informationen in der Datei config/services.php des Projekts konfigurieren. Konkrete Beispiele sind wie folgt:

'alipay' => [
    'driver' => 'Alipay_AopPage',
    'options' => [
        'app_id' => env('ALIPAY_APP_ID'),
        'private_key' => env('ALIPAY_PRIVATE_KEY'),
        'public_key' => env('ALIPAY_PUBLIC_KEY'),
        'return_url' => env('ALIPAY_RETURN_URL'),
        'notify_url' => env('ALIPAY_NOTIFY_URL'),
    ],
],

In der obigen Konfiguration müssen wir Parameter wie app_id, private_key, public_key, return_url und notify_url festlegen. Unter diesen ist app_id die ID der Alipay-Anwendung, private_key und public_key sind der private Schlüssel bzw. der öffentliche Schlüssel der Anwendung. return_url ist die Rückrufadresse, nachdem die Zahlung des Benutzers erfolgreich war, und notify_url ist die asynchrone Benachrichtigungsadresse von Alipay.

Als nächstes müssen wir die Werte der oben genannten Parameter in der .env-Datei konfigurieren. Ein Beispiel ist wie folgt:

ALIPAY_APP_ID=xxxxxxxxxxxxxx
ALIPAY_PRIVATE_KEY=xxxxxxxxxxxxxx
ALIPAY_PUBLIC_KEY=xxxxxxxxxxxxxx
ALIPAY_RETURN_URL=https://example.com/alipay/return
ALIPAY_NOTIFY_URL=https://example.com/alipay/notify

In der obigen Konfiguration müssen wir es durch die echte Alipay-Anwendungs-ID, den privaten Schlüssel, den öffentlichen Schlüssel und die Rückruf-URL ersetzen.

Als nächstes können wir die Alipay-Zahlungsschnittstelle im Controller im Laravel-Projekt verwenden. Ein Beispiel ist wie folgt:

use OmnipayOmnipay;

class PaymentController extends Controller
{
    public function pay(Request $request)
    {
        $gateway = Omnipay::create('Alipay');

        $gateway->setAppId(config('services.alipay.options.app_id'));
        $gateway->setPrivateKey(config('services.alipay.options.private_key'));
        $gateway->setPublicKey(config('services.alipay.options.public_key'));
        $gateway->setReturnUrl(config('services.alipay.options.return_url'));
        $gateway->setNotifyUrl(config('services.alipay.options.notify_url'));

        $order = [
            'out_trade_no' => '2018123456789',
            'total_amount' => '0.01',
            'subject' => 'Test Order',
            'body' => 'This is a test order',
        ];

        $response = $gateway->purchase($order)->send();

        if ($response->isRedirect()) {
            $response->redirect();
        } else {
            dd($response->getMessage());
        }
    }

    public function notify(Request $request)
    {
        $gateway = Omnipay::create('Alipay');

        $gateway->setAppId(config('services.alipay.options.app_id'));
        $gateway->setPrivateKey(config('services.alipay.options.private_key'));
        $gateway->setPublicKey(config('services.alipay.options.public_key'));
        $gateway->setReturnUrl(config('services.alipay.options.return_url'));
        $gateway->setNotifyUrl(config('services.alipay.options.notify_url'));
        
        $response = $gateway->completePurchase()->send();

        if ($response->isPaid()) {
            // 更新订单状态
        }

        return $response->getAcknowledgeResponse();
    }

    public function return(Request $request)
    {
        $gateway = Omnipay::create('Alipay');

        $gateway->setAppId(config('services.alipay.options.app_id'));
        $gateway->setPrivateKey(config('services.alipay.options.private_key'));
        $gateway->setPublicKey(config('services.alipay.options.public_key'));
        $gateway->setReturnUrl(config('services.alipay.options.return_url'));
        $gateway->setNotifyUrl(config('services.alipay.options.notify_url'));
        
        $response = $gateway->completePurchase()->send();

        if ($response->isPaid()) {
            // 更新订单状态
            return redirect()->route('orders.show', $order);
        } else {
            return '支付失败';
        }
    }
}

Im obigen Code erstellen wir zunächst eine Alipay-Gateway-Instanz und legen die relevanten Parameter fest. Anschließend erstellen wir ein Bestellarray und verwenden die Kaufmethode, um die Zahlungsanforderung zu senden. Wenn die Zahlungsanforderung erfolgreich ist und die Sprungadresse zurückgegeben wird, können wir die Umleitungsmethode verwenden, um den Benutzer zur Alipay-Zahlungsseite umzuleiten. Wenn die Zahlungsanforderung fehlschlägt, können Sie die Fehlermeldung mit der Methode getMessage abrufen. Bei den asynchronen Benachrichtigungs- und synchronen Rückrufmethoden haben wir außerdem eine Alipay-Gateway-Instanz erstellt und die Methode „completePurchase“ verwendet, um das Zahlungsergebnis zu überprüfen.

Abschließend müssen wir den Zahlungsweg in der Route definieren. Ein Beispiel ist wie folgt:

Route::get('/payment/pay', 'PaymentController@pay');
Route::post('/payment/notify', 'PaymentController@notify');
Route::get('/payment/return', 'PaymentController@return');

Durch die oben genannten Schritte können wir die Integration der Alipay-Zahlungsschnittstelle mithilfe des Laravel-Frameworks problemlos implementieren. Ich hoffe, dieser Artikel hilft Ihnen!

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Alipay-Zahlungsschnittstelle mit Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn