モバイル支払いとオンライン支払いの継続的な人気により、ウェブサイトとアプリケーションが電子支払いに接続することが標準になりました。効率的なPHP開発フレームワークとして、YIIは、サードパーティの支払いインターフェイスの迅速な統合に適した柔軟な拡張方法を開発者に提供します。この記事はゼロから開始され、YIIフレームワークに基づいて電子支払い機能の開発をご紹介します。
まず、YIIがインストールされ、新しいアプリを作成する準備ができていることを確認してください。コマンドラインを通して次のコマンドを実行して、プロジェクト構造をすばやく構築します。
yii startapp payment
プロジェクトが作成されたら、コントローラーを追加して支払いロジックを処理します。
yii generate/controller PaymentController
YIIアプリの構成ファイル(通常はconfig/main.php )で、支払いコンポーネントの次の設定を追加します。
'paymentGateway' => [
'class' => 'app\components\PaymentGateway',
'apiKey' => 'YOUR_API_KEY',
'apiUrl' => 'https://api.paymentgateway.com/pay',
],
この構成は、APIキーや支払いインターフェイスアドレスを含むカスタム支払いコンポーネントの初期化に使用されます。使用する場合は、サービスプロバイダーが提供するパラメーターに従って調整する必要があります。
コンポーネントディレクトリに新しいPaybeGateway.phpファイルを作成し、次のクラスを定義します。
<?php
namespace app\components;
use Yii;
use yii\base\Component;
use yii\base\InvalidConfigException;
class PaymentGateway extends Component
{
public $apiKey;
public $apiUrl;
public function init()
{
parent::init();
if ($this->apiKey === null) {
throw new InvalidConfigException('The "apiKey" property must be set.');
}
if ($this->apiUrl === null) {
throw new InvalidConfigException('The "apiUrl" property must be set.');
}
}
public function processPayment($amount, $cardNumber, $cardExpiry)
{
// 支払い要求を送信するためのロジック
// 実際の要求と応答の処理は、特定のゲートウェイに従って実装されます
}
}
このコンポーネントは、支払いゲートウェイとの相互作用を処理し、初期化パラメーターを設定し、通話のプロセス支払い方法を提供する責任があります。
次に、支払い要求を処理するために、支払いcontroller.phpを変更してロジックを追加します。
<?php
namespace app\controllers;
use Yii;
use yii\web\Controller;
use app\components\PaymentGateway;
class PaymentController extends Controller
{
public function actionProcess($amount, $cardNumber, $cardExpiry)
{
$paymentGateway = Yii::$app->paymentGateway;
try {
$response = $paymentGateway->processPayment($amount, $cardNumber, $cardExpiry);
// 支払いが成功した後のビジネス処理
} catch (\Exception $e) {
// 支払い障害処理ロジック
Yii::error($e->getMessage());
}
}
}
構成にPaybeGatewayコンポーネントを注入することにより、支払い要求と例外キャプチャが実現されます。
フレンドリーなURLを介して支払いコントローラーにアクセスできるようにするには、ルーティングルールを構成する必要があります。
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'payment/process/<amount:\d+>/<cardNumber:\d+>/<cardExpiry:\d+>' => 'payment/process',
],
],
このルーティングルールは、/支払い/プロセス/100/1234567890123456/1225などのURLを対応するコントローラーおよびアクションメソッドにマッピングし、フロントエンドコールに便利になります。
上記の手順を通じて、YIIフレームワークに電子支払い関数を統合する基本開発プロセスを完了しました。将来、実際のプロジェクトのニーズに応じて、複数の支払い方法、セキュリティ検証、支払い結果のコールバック、その他の機能をサポートする機能をさらに拡大することができます。
実際の生産環境では、支払い情報伝送プロセスがHTTPSを採用し、データ暗号化と例外処理メカニズムを厳密に実装して、ユーザーの支払いセキュリティを確保することを確認してください。
このチュートリアルが、YIIプロジェクトで電子支払いを実現する際に役立つことを願っています。