Laravel Cashier의 핵심 특성 이해: 심층 분석
Laravel Cashier는 Stripe 통합을 처리하는 몇 가지 강력한 특성을 제공합니다. 오늘은 세 가지 핵심 특성과 해당 공개 메서드인 ManagesSubscriptions, ManagesCustomer 및 ManagesInvoices를 살펴보겠습니다. Laravel 애플리케이션에서 구독 기반 청구를 구현하려면 이러한 특성을 이해하는 것이 중요합니다.
구독 특성 관리
구독 생성 및 관리
newSubscription($type, $prices = [])
새 구독 빌더 인스턴스를 생성합니다. 유형은 구독 이름(예: '기본값')을 정의하며 가격은 단일 ID 또는 배열일 수 있습니다.
시험 관리
newSubscription($type, $prices = [])
- 매개변수 없음: 일반(모델 수준) 시험만 확인
- $type 사용: 구독별 체험판 확인
- 두 가지 모두: 특정 가격이 체험판인지 확인
- 부울 반환
onTrial($type = 'default', $price = null)
- 매개변수 없음: 일반 평가판 만료 확인
- $type 사용: 특정 구독 평가판 만료 확인
- 두 가지 모두: 특정 가격 평가판 만료를 확인합니다
- 부울 반환
hasExpiredTrial($type = 'default', $price = null)
- 모델별 체험판 상태 확인
- trial_ends_at가 존재하고 미래인 경우 true를 반환합니다
- 매개변수가 필요하지 않습니다.
onGenericTrial()
- 일반 평가판에서 고객 필터링 범위
- 쿼리 빌더에 사용
- 쿼리 빌더 인스턴스 필요
scopeOnGenericTrial($query)
- 모델 수준 평가판이 만료되었는지 확인
- trial_ends_at이 존재하고 과거인 경우 true를 반환합니다
- 매개변수가 필요하지 않습니다.
hasExpiredGenericTrial()
- 만료된 제네릭 임상시험이 있는 고객 필터링 범위
- 쿼리 빌더에 사용
- 쿼리 빌더 인스턴스 필요
scopeHasExpiredGenericTrial($query)
- 매개변수 없음: 일반 시험 기간인 경우 일반 시험 종료 날짜를 반환합니다
- $type 사용: 구독별 평가판 종료 날짜를 반환합니다
- Carbon 인스턴스 또는 null을 반환합니다
구독 상태 확인
trialEndsAt($type = 'default')
- $type만: 유효한 구독 여부를 확인합니다
- $price 사용: 특정 가격 구독 확인
- 부울 반환
subscribed($type = 'default', $price = null)
- 유형별 구독 가져오기
- 구독 모델을 반환하거나 null을 반환합니다.
subscription($type = 'default')
- 모든 구독 가져오기
- HasMany 관계 반환
- 매개변수가 필요하지 않습니다.
subscriptions()
- 구독 시 결제 미완료 확인
- 부울 반환
hasIncompletePayment($type = 'default')
- $products: 단일 제품 ID 또는 배열
- $type: 확인할 구독 유형
- 부울 반환
- 특정 제품 중 하나라도 구독했는지 확인합니다.
subscribedToProduct($products, $type = 'default')
- $prices: 단일 가격 ID 또는 배열
- $type: 확인할 구독 유형
- 부울 반환
- 주어진 가격 중 하나라도 구독했는지 확인합니다.
subscribedToPrice($prices, $type = 'default')
- 특정 제품에 대한 유효한 구독 확인
- 부울 반환
- subscribedToProduct보다 더 구체적임
onProduct($product)
- 특정 가격으로 유효한 구독인지 확인
- 부울 반환
- subscribedToPrice보다 더 구체적임
onPrice($price)
- 구독에 대한 세율 가져오기
- 배열 반환
- 기본적으로 비어 있으며 재정의됨
taxRates()
- 개별 구독 항목에 대한 세율 가져오기
- 배열 반환
- 기본적으로 비어 있으며 재정의됨
고객 특성 관리
고객 식별
newSubscription($type, $prices = [])
- Stripe 고객 ID 또는 null을 반환합니다
- 매개변수가 필요하지 않습니다
- 문자열|null을 반환합니다.
onTrial($type = 'default', $price = null)
- 고객이 Stripe ID를 가지고 있는지 확인
- 부울 반환
- 매개변수가 필요하지 않습니다
고객 생성 및 관리
hasExpiredTrial($type = 'default', $price = null)
- 새로운 Stripe 고객 생성
- 옵션은 고객 메타데이터, 이메일, 이름 등에 영향을 미칩니다.
- 고객이 이미 존재하는 경우 예외 발생
- Stripe Customer 객체 반환
onGenericTrial()
- 기존 Stripe 고객 업데이트
- 옵션에 따라 업데이트 내용이 결정됩니다
- 업데이트된 Stripe Customer 개체 반환
- 기존 고객 필요
scopeOnGenericTrial($query)
- 기존 고객 확보 또는 신규 고객 생성
- 필요한 경우 옵션이 생성에 영향을 미칩니다
- Stripe Customer 객체 반환
- createAsStripeCustomer보다 더 관대함
hasExpiredGenericTrial()
- 기존 고객 업데이트 또는 신규 고객 생성
- 옵션은 업데이트와 생성 모두에 영향을 미칩니다
- Stripe Customer 객체 반환
- 업데이트와 생성 기능을 결합합니다.
scopeHasExpiredGenericTrial($query)
- Stripe에 로컬 세부정보 동기화
- Stripe Customer 객체 반환
- 동기화를 위해 모델 속성을 사용합니다.
trialEndsAt($type = 'default')
- 존재하는 경우 동기화하거나 새 고객을 생성합니다
- 필요한 경우 옵션이 생성에 영향을 미칩니다
- Stripe Customer 객체 반환
subscribed($type = 'default', $price = null)
- Stripe 고객 개체 가져오기
- 확장 매개변수로 관련 데이터 결정
- Stripe Customer 객체 반환
- 기존 고객 필요
고객 속성
subscription($type = 'default')
- Stripe 동기화의 이름 가져오기
- 문자열|null을 반환합니다
- 기본값은 $this->name을 반환합니다.
subscriptions()
- Stripe 동기화를 위한 이메일 받기
- 문자열|null을 반환합니다
- 기본값은 $this->email을 반환합니다.
hasIncompletePayment($type = 'default')
- Stripe 동기화를 위한 휴대폰 가져오기
- 문자열|null을 반환합니다
- 기본값은 $this->phone을 반환합니다.
subscribedToProduct($products, $type = 'default')
- Stripe 동기화를 위한 주소 가져오기
- 배열 반환|null
- 기본적으로 비어 있음
subscribedToPrice($prices, $type = 'default')
- Stripe의 기본 로케일 가져오기
- 배열 반환
- 기본적으로 비어 있음
onProduct($product)
- Stripe에 대한 메타데이터 가져오기
- 배열 반환
- 기본적으로 비어 있음
할인 관리
onPrice($price)
- 활성 고객 할인 받기
- 반품할인 대상 또는 null
- 매개변수가 필요하지 않습니다.
taxRates()
- 고객에게 쿠폰 적용
- 반품 무효
- 쿠폰 ID 필요
priceTaxRates()
- 고객에게 프로모션 코드 적용
- 반품 무효
- 프로모션 코드 ID가 필요합니다.
newSubscription($type, $prices = [])
- 프로모션 코드 찾기
- PromotionCode 객체 또는 null을 반환합니다
- 옵션이 검색에 영향을 미칩니다
onTrial($type = 'default', $price = null)
- 활성 프로모션 코드 찾기
- PromotionCode 객체 또는 null을 반환합니다
- 옵션이 검색에 영향을 미칩니다
잔액 관리
hasExpiredTrial($type = 'default', $price = null)
- 형식화된 고객 잔액 가져오기
- 문자열 반환
- 매개변수가 필요하지 않습니다.
onGenericTrial()
- 원시 고객 잔액 가져오기
- 정수를 반환합니다
- 매개변수가 필요하지 않습니다.
scopeOnGenericTrial($query)
- 고객 잔액 거래 가져오기
- 반품 컬렉션
- 한도는 반환된 개수에 영향을 미칩니다.
hasExpiredGenericTrial()
- 크레딧 고객 잔액
- CustomerBalanceTransaction 반환
- 금액이 필요합니다
scopeHasExpiredGenericTrial($query)
- 고객 잔액 인출
- CustomerBalanceTransaction 반환
- 금액이 필요합니다
trialEndsAt($type = 'default')
- 밸런스 조정 적용
- CustomerBalanceTransaction 반환
- 금액이 필요합니다
세금 관리
subscribed($type = 'default', $price = null)
- 고객 세금 ID 가져오기
- 반품 컬렉션
- 옵션이 검색에 영향을 미칩니다.
subscription($type = 'default')
- 새 세금 ID 생성
- 반품 스트라이프 세금 ID
- 두 매개변수가 모두 필요합니다.
subscriptions()
- 세금 ID 삭제
- 반품 무효
- 세금 ID 필요
hasIncompletePayment($type = 'default')
- 특정 세금 ID 찾기
- Stripe TaxId 또는 null을 반환합니다
- 세금 ID 필요
세금 현황 확인
subscribedToProduct($products, $type = 'default')
- 고객이 면세 대상이 아닌지 확인
- 부울 반환
- 매개변수가 필요하지 않습니다.
subscribedToPrice($prices, $type = 'default')
- 고객이 면세 대상인지 확인
- 부울 반환
- 매개변수가 필요하지 않습니다.
onProduct($product)
- 매수납부 적용 여부 확인
- 부울 반환
- 매개변수가 필요하지 않습니다
청구 포털
onPrice($price)
- Stripe 청구 포털 URL 가져오기
- 문자열 반환
- ReturnUrl 선택사항
taxRates()
- Stripe 청구 포털로 리디렉션
- RedirectResponse 반환
- ReturnUrl 선택사항
송장 특성 관리
송장 항목
priceTaxRates()
- 인보이스 항목 추가
- 스트라이프 송장 항목 반품
- 필요한 설명 및 금액
stripeId()
- 가격 기반 항목 추가
- 스트라이프 송장 항목 반품
- 가격ID 필수
송장 생성
hasStripeId()
- 즉시 인보이스 생성
- 송장 반환 개체
- 필요한 설명 및 금액
createAsStripeCustomer(array $options = [])
- 가격 기반 송장 생성
- 송장 반환 개체
- 가격 ID가 필요합니다.
newSubscription($type, $prices = [])
- 인보이스 생성
- 송장 반환 개체
- 옵션이 생성에 영향을 미칩니다
onTrial($type = 'default', $price = null)
- Stripe 송장 생성
- 송장 반환 개체
- 옵션이 생성에 영향을 미칩니다
송장 검색
hasExpiredTrial($type = 'default', $price = null)
- 향후 청구서 받기
- Invoice 객체 또는 null을 반환합니다
- 옵션이 미리보기에 영향을 미칩니다
onGenericTrial()
- 특정 인보이스 찾기
- Invoice 객체 또는 null을 반환합니다
- 인보이스 ID 필요
scopeOnGenericTrial($query)
- 송장 찾기 또는 예외 발생
- 송장 반환 개체
- 인보이스 ID 필요
- NotFoundHttpException 또는 AccessDeniedHttpException 발생
hasExpiredGenericTrial()
- 인보이스 PDF 가져오기
- 반품 응답
- ID 필수, 파일명은 선택사항
scopeHasExpiredGenericTrial($query)
- 모든 인보이스 가져오기
- 반품 컬렉션
- 매개변수가 필터링에 영향을 미칩니다.
trialEndsAt($type = 'default')
- 보류 중인 인보이스를 포함한 모든 인보이스 가져오기
- 반품 컬렉션
- invoice의 약어(true)
subscribed($type = 'default', $price = null)
- 페이지가 매겨진 인보이스 가져오기
- CursorPaginator 반환
- 여러 매개변수가 페이지 매김에 영향을 미칩니다
주요 관찰
- 매개변수 민감도: 메서드는 매개변수 존재 여부에 따라 동작이 달라지는 경우가 많습니다.
- 반환 유형: 메소드는 특정 유형(부울, 객체, 컬렉션)을 일관되게 반환합니다.
- 기본값: 많은 매개변수에는 합리적인 기본값이 있지만 재정의될 수 있습니다.
- 특성 상호의존성: 방법은 종종 다른 특성 방법에 의존합니다.
- Stripe 통합: 대부분의 메소드는 Stripe의 API와 직접 또는 간접적으로 상호 작용합니다.
모범 사례
- 원하는 동작에 대한 매개변수 요구사항을 항상 확인하세요.
- 특히 *OrFail 메소드의 경우 잠재적인 예외를 처리합니다.
- 이러한 특성을 확장할 때는 적절한 유형 힌트를 사용하세요.
- 다양한 매개변수 조합을 철저히 테스트하세요.
- API 요청을 줄이기 위해 빈번한 호출을 캐싱하는 것을 고려하세요.
결론
이러한 특성은 Laravel Cashier 기능의 중추를 형성합니다. 적절한 구현을 위해서는 사용 가능한 메소드의 전체 범위와 해당 매개변수 동작을 이해하는 것이 중요합니다. 최신 정보를 보려면 항상 이 참조 자료와 함께 공식 문서를 참조하세요.
위 내용은 Laravel Cashier의 핵심 특성 이해: 심층 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP에서 Password_hash 및 Password_Verify 기능을 사용하여 보안 비밀번호 해싱을 구현해야하며 MD5 또는 SHA1을 사용해서는 안됩니다. 1) Password_hash는 보안을 향상시키기 위해 소금 값이 포함 된 해시를 생성합니다. 2) Password_verify 암호를 확인하고 해시 값을 비교하여 보안을 보장합니다. 3) MD5 및 SHA1은 취약하고 소금 값이 부족하며 현대 암호 보안에는 적합하지 않습니다.

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP는 전자 상거래, 컨텐츠 관리 시스템 및 API 개발에 널리 사용됩니다. 1) 전자 상거래 : 쇼핑 카트 기능 및 지불 처리에 사용됩니다. 2) 컨텐츠 관리 시스템 : 동적 컨텐츠 생성 및 사용자 관리에 사용됩니다. 3) API 개발 : 편안한 API 개발 및 API 보안에 사용됩니다. 성능 최적화 및 모범 사례를 통해 PHP 애플리케이션의 효율성과 유지 보수 성이 향상됩니다.

PHP 유형은 코드 품질과 가독성을 향상시키기위한 프롬프트입니다. 1) 스칼라 유형 팁 : PHP7.0이므로 int, float 등과 같은 기능 매개 변수에 기본 데이터 유형을 지정할 수 있습니다. 2) 반환 유형 프롬프트 : 기능 반환 값 유형의 일관성을 확인하십시오. 3) Union 유형 프롬프트 : PHP8.0이므로 기능 매개 변수 또는 반환 값에 여러 유형을 지정할 수 있습니다. 4) Nullable 유형 프롬프트 : NULL 값을 포함하고 널 값을 반환 할 수있는 기능을 포함 할 수 있습니다.

PHP는 여전히 역동적이며 현대 프로그래밍 분야에서 여전히 중요한 위치를 차지하고 있습니다. 1) PHP의 단순성과 강력한 커뮤니티 지원으로 인해 웹 개발에 널리 사용됩니다. 2) 유연성과 안정성은 웹 양식, 데이터베이스 작업 및 파일 처리를 처리하는 데 탁월합니다. 3) PHP는 지속적으로 발전하고 최적화하며 초보자 및 숙련 된 개발자에게 적합합니다.

PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

PHP에서 전처리 문과 PDO를 사용하면 SQL 주입 공격을 효과적으로 방지 할 수 있습니다. 1) PDO를 사용하여 데이터베이스에 연결하고 오류 모드를 설정하십시오. 2) 준비 방법을 통해 전처리 명세서를 작성하고 자리 표시자를 사용하여 데이터를 전달하고 방법을 실행하십시오. 3) 쿼리 결과를 처리하고 코드의 보안 및 성능을 보장합니다.

PHP와 Python은 고유 한 장점과 단점이 있으며 선택은 프로젝트 요구와 개인 선호도에 달려 있습니다. 1.PHP는 대규모 웹 애플리케이션의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 데이터 과학 및 기계 학습 분야를 지배합니다.
