모바일 결제 및 온라인 결제의 지속적인 인기로 인해 웹 사이트 및 애플리케이션이 전자 결제에 연결하는 표준이되었습니다. 효율적인 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 키 및 결제 인터페이스 주소를 포함하여 사용자 정의 결제 구성 요소를 초기화하는 데 사용됩니다. 사용하면 서비스 제공 업체가 제공 한 매개 변수에 따라 조정해야합니다.
구성 요소 디렉토리에서 새 PaymentGateway.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)
{
// 지불 요청을 보내는 논리
// 실제 요청 및 응답 처리는 특정 게이트웨이에 따라 구현됩니다.
}
}
이 구성 요소는 결제 게이트웨이와의 상호 작용을 처리하고 초기화 매개 변수를 설정하고 통화에 대한 프로세스 지불 방법을 제공합니다.
다음으로 PaymentController.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());
}
}
}
구성에서 PaymentGateWay 구성 요소를 주입하면 결제 요청 및 예외 캡처가 실현됩니다.
친숙한 URL을 통해 결제 컨트롤러에 액세스 할 수 있으려면 라우팅 규칙을 구성해야합니다.
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'payment/process/<amount:\d+>/<cardNumber:\d+>/<cardExpiry:\d+>' => 'payment/process',
],
],
이 라우팅 규칙은 /Payment/Process/100/1234567890123456/1225 와 같은 URL을 해당 컨트롤러 및 작업 방법에 매핑하여 프론트 엔드 호출에 편리하게 만들어집니다.
위의 단계를 통해 YII 프레임 워크에서 전자 결제 기능을 통합하는 기본 개발 프로세스를 완료했습니다. 앞으로 실제 프로젝트 요구에 따라 여러 지불 방법, 보안 검증, 지불 결과 콜백 및 기타 기능을 지원하는 기능을 더욱 확장 할 수 있습니다.
실제 생산 환경에서 지불 정보 전송 프로세스가 HTTPS를 채택하고 데이터 암호화 및 예외 처리 메커니즘을 엄격하게 구현하여 사용자의 지불 보안을 보장하는지 확인하십시오.
이 튜토리얼이 YII 프로젝트에서 전자 지불을 실현하는 데 도움이되기를 바랍니다.