전자상거래의 지속적인 발전과 함께 구독 결제 모델이 점점 더 대중화되고 있습니다. Laravel Cashier는 구독 관리 및 지불 수집을 매우 간단하게 만드는 Laravel 프레임워크 기반의 지불 도구입니다. 이 글에서는 Laravel 애플리케이션에서 Authorize.net과 함께 Laravel Cashier를 사용하여 구독 결제를 처리하는 방법을 설명합니다.
시작하기 전에 Laravel 프레임워크와 Composer 패키지 관리자를 설치했는지 확인해야 합니다. Laravel Cashier를 설치하려면 터미널에 다음 명령을 입력하세요:
composer require laravel/cashier
성공적으로 설치되면 Cashier용 마이그레이션 테이블을 생성해야 합니다. 터미널에서 다음 명령을 실행할 수 있습니다:
php artisan migrate
그러면 결제 관련 계산원 테이블에 필요한 데이터베이스 마이그레이션 파일이 생성됩니다.
Authorize.net을 사용하여 결제를 처리하기 전에 서비스를 설치하고 API 자격 증명(API 로그인 ID 및 거래 키)을 얻어야 합니다.
다음 단계를 통해 이러한 작업을 수행할 수 있습니다:
시작하기 전에 cashier.php 파일의 매개변수를 구성해야 합니다. 파일은 다음 명령을 사용하여 config 폴더에 생성할 수 있습니다:
php artisan vendor:publish --tag="cashier-config"
다음으로, .env 파일에서 Authorize.net API 관련 매개변수를 설정해야 합니다:
CASHIER_ENV=production CASHIER_CURRENCY=usd AUTHORIZE_API_LOGIN_ID=YOUR_API_LOGIN_ID AUTHORIZE_TRANSACTION_KEY=YOUR_TRANSACTION_KEY
Laravel을 사용하는 경우 계산원 및 승인. net이 구독 결제를 처리하려면 먼저 구독 계획을 만들어야 합니다. 구독 계획은 다음 명령을 사용하여 생성할 수 있습니다:
php artisan make:model Plan -m
이 명령은 앱 폴더에 계획 모델을 생성하고 이에 대한 마이그레이션 테이블을 생성합니다. 이제 편집을 위해 마이그레이션 파일을 열고 필요한 필드를 추가할 수 있습니다. 다음은 참고용 예시입니다.
Schema::create('plans', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('name'); $table->string('stripe_id'); $table->string('authorizenet_id'); $table->integer('price'); $table->string('interval'); $table->integer('interval_count'); $table->integer('trial_period_days')->nullable(); $table->timestamps(); });
migration 파일을 실행한 후 데이터베이스에 테이블을 생성해야 합니다. 터미널에서 다음 명령을 실행하세요.
php artisan migrate
다음으로 Plan 모델에서 필요한 속성과 메서드를 정의해야 합니다. 예는 다음과 같습니다.
use LaravelCashierSubscription; class Plan extends Model { public function subscriptions() { return $this->hasMany(Subscription::class); } public function getPrice() { return $this->price / 100; } public function getFormattedPrice() { return number_format($this->getPrice(), 2); } public function authorizeNetPlan() { return AuthorizeNet_Subscription::create([ 'name' => $this->name, 'intervalLength' => $this->interval_count, 'intervalUnit' => $this->interval, 'startDate' => date('Y-m-d'), 'totalOccurrences' => '9999', 'trialOccurrences' => '0', 'amount' => $this->price, 'trialAmount' => '0.00', 'creditCardCardNumber' => '', 'creditCardExpirationDate' => '', 'creditCardCardCode' => '' ]); } }
authorizeNetPlan
메서드는 Authorize.net 구독 계획을 생성하고 관련 정보를 반환합니다. authorizeNetPlan
方法将创建Authorize.net订阅计划并返回相关的信息。
一旦订阅计划已经创建,现在就可以向订阅者发送订阅链接。接下来,订阅者可以使用Link点击链接进行订阅付款。
在创建订阅时,需要设置订阅计划和用户相关信息。
以下是一个示例控制器方法:
public function subscribe(Request $request, Plan $plan) { $user = $request->user(); $subscription = $user->newSubscription('default', $plan->stripe_id)->create($request->stripeToken); $authorizeSubscription = $plan->authorizeNetPlan(); $subscription->authorize_net_id = $authorizeSubscription->getSubscriptionId(); $subscription->save(); return redirect()->route('home')->with('success', 'Subscription successful'); }
在该示例中,我们使用newSubscription
方法为用户创建新的订阅。注意,$request->stripeToken
是使用Stripe Checkout生成的令牌。getUserPlan
方法在Plan模型中定义,用于获取当前用户的订阅计划。
在创建订阅后,我们将创建的Authorize.net订阅计划的ID保存到Subscription模型中。
当用户想要取消订阅时,需要执行以下操作:
public function cancel(Request $request) { $user = $request->user(); $subscription = $user->subscription('default'); $authorizeSubscription = AuthorizeNet_Subscription::cancel($subscription->authorize_net_id); $subscription->cancel(); return redirect()->route('home')->with('success', 'Subscription cancelled.'); }
在该示例中,我们使用cancel
구독 계획이 생성되면 이제 구독자에게 구독 링크를 보낼 차례입니다. 다음으로 구독자는 링크를 사용하여 링크를 클릭하여 구독 비용을 지불할 수 있습니다.
🎜구독을 생성할 때 구독 요금제와 사용자 관련 정보를 설정해야 합니다. 🎜🎜다음은 컨트롤러 메서드의 예입니다. 🎜rrreee🎜이 예에서는newSubscription
메서드를 사용하여 사용자에 대한 새 구독을 생성합니다. $request->stripeToken
은 Stripe Checkout을 사용하여 생성된 토큰입니다. getUserPlan
메소드는 플랜 모델에 정의되어 있으며 현재 사용자의 구독 플랜을 얻는 데 사용됩니다. 🎜🎜구독을 생성한 후 생성된 Authorize.net 구독 계획의 ID를 구독 모델에 저장합니다. 🎜취소
를 사용합니다. 사용자 Laravel Cashier 구독 계획을 취소하고 Authorize.net에서 제공하는 방법을 사용하여 구독 계획을 취소하는 방법입니다. 🎜🎜요약🎜🎜Laravel Cashier와 Authorize.net을 사용하면 구독 결제를 쉽게 처리할 수 있습니다. 위의 단계에 따라 빠르게 설정하고 구현하세요. Laravel Cashier는 편리한 결제 도구를 제공합니다. 변화하는 시장 요구 사항을 충족하기 위해 이러한 새로운 모델을 구현해 보는 것은 어떨까요? 🎜위 내용은 Laravel 개발: Laravel Cashier 및 Authorize.net을 사용하여 구독 결제를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!