Laravel を使用して Alipay 支払いインターフェイスを実装する方法
電子商取引の発展に伴い、支払い方法の多様性が重要な選択基準になりました。中国最大のサードパーティ決済プラットフォームとして、Alipay は電子商取引分野で重要な役割を果たしています。電子商取引 Web サイトを開発する場合、多くの場合、ユーザーに便利な支払い方法を提供するために、Alipay 支払いインターフェイスを統合する必要があります。この記事では、Laravel フレームワークを使用して Alipay 決済インターフェイスを実装する方法と、具体的なコード例を紹介します。
まず、laravel-omnipay 拡張パッケージを Laravel プロジェクトにインストールする必要があります。この拡張機能は、Alipay を含む複数の支払いゲートウェイのサポートを提供します。次のコマンドを使用して、拡張機能パッケージをインストールします。
composer require omnipay/omnipay
インストールが完了したら、プロジェクトの config/services.php ファイルで Alipay 関連の情報を構成する必要があります。具体的な例は次のとおりです。
'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'), ], ],
上記の構成では、app_id、private_key、public_key、return_url、notify_url などのパラメーターを設定する必要があります。このうち、app_id は Alipay アプリケーションの ID、private_key と public_key はそれぞれアプリケーションの秘密鍵と公開鍵です。 return_url はユーザーの支払いが成功した後のコールバック アドレス、notify_url は Alipay の非同期通知アドレスです。
次に、.env ファイルで上記のパラメータの値を設定する必要があります。例は次のとおりです。
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
上記の構成では、実際の Alipay アプリケーション ID、秘密キー、公開キー、およびコールバック URL に置き換える必要があります。
次に、Laravel プロジェクトのコントローラーで Alipay 支払いインターフェイスを使用できます。例は次のとおりです。
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 '支付失败'; } } }
上記のコードでは、最初に Alipay ゲートウェイ インスタンスを作成し、関連するパラメーターを設定します。次に、注文配列を作成し、購入メソッドを使用して支払いリクエストを送信します。支払いリクエストが成功し、ジャンプ アドレスが返された場合は、リダイレクト メソッドを使用してユーザーを Alipay 支払いページにリダイレクトできます。支払いリクエストが失敗した場合は、getMessage メソッドを使用してエラー メッセージを取得できます。非同期通知メソッドと同期コールバック メソッドでは、Alipay ゲートウェイ インスタンスも作成し、completePurchase メソッドを使用して支払い結果を確認します。
最後に、ルーティングで支払いルートを定義する必要があります。例は次のとおりです:
Route::get('/payment/pay', 'PaymentController@pay'); Route::post('/payment/notify', 'PaymentController@notify'); Route::get('/payment/return', 'PaymentController@return');
上記の手順を通じて、Laravel フレームワークを使用して、Alipay 支払いインターフェイスを簡単に統合できます。この記事がお役に立てば幸いです!
以上がLaravelを使用してAlipay支払いインターフェースを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。