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 관계 반환
- 매개변수가 필요하지 않습니다.
hasIncompletePayment($type = 'default')
로그인 후 복사
로그인 후 복사
로그인 후 복사
-
$products: 단일 제품 ID 또는 배열
-
$type: 확인할 구독 유형
- 부울 반환
- 특정 제품 중 하나라도 구독했는지 확인합니다.
subscribedToProduct($products, $type = 'default')
로그인 후 복사
로그인 후 복사
로그인 후 복사
-
$prices: 단일 가격 ID 또는 배열
-
$type: 확인할 구독 유형
- 부울 반환
- 주어진 가격 중 하나라도 구독했는지 확인합니다.
subscribedToPrice($prices, $type = 'default')
로그인 후 복사
로그인 후 복사
로그인 후 복사
- 특정 제품에 대한 유효한 구독 확인
- 부울 반환
- subscribedToProduct보다 더 구체적임
onProduct($product)
로그인 후 복사
로그인 후 복사
로그인 후 복사
- 특정 가격으로 유효한 구독인지 확인
- 부울 반환
- subscribedToPrice보다 더 구체적임
- 구독에 대한 세율 가져오기
- 배열 반환
- 기본적으로 비어 있으며 재정의됨
- 개별 구독 항목에 대한 세율 가져오기
- 배열 반환
- 기본적으로 비어 있으며 재정의됨
고객 특성 관리
고객 식별
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을 반환합니다.
- 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에 대한 메타데이터 가져오기
- 배열 반환
- 기본적으로 비어 있음
할인 관리
- 활성 고객 할인 받기
- 반품할인 대상 또는 null
- 매개변수가 필요하지 않습니다.
- 고객에게 쿠폰 적용
- 반품 무효
- 쿠폰 ID 필요
- 고객에게 프로모션 코드 적용
- 반품 무효
- 프로모션 코드 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
- 두 매개변수가 모두 필요합니다.
hasIncompletePayment($type = 'default')
로그인 후 복사
로그인 후 복사
로그인 후 복사
- 특정 세금 ID 찾기
- Stripe TaxId 또는 null을 반환합니다
- 세금 ID 필요
세금 현황 확인
subscribedToProduct($products, $type = 'default')
로그인 후 복사
로그인 후 복사
로그인 후 복사
- 고객이 면세 대상이 아닌지 확인
- 부울 반환
- 매개변수가 필요하지 않습니다.
subscribedToPrice($prices, $type = 'default')
로그인 후 복사
로그인 후 복사
로그인 후 복사
- 고객이 면세 대상인지 확인
- 부울 반환
- 매개변수가 필요하지 않습니다.
onProduct($product)
로그인 후 복사
로그인 후 복사
로그인 후 복사
- 매수납부 적용 여부 확인
- 부울 반환
- 매개변수가 필요하지 않습니다
청구 포털
- Stripe 청구 포털 URL 가져오기
- 문자열 반환
- ReturnUrl 선택사항
- Stripe 청구 포털로 리디렉션
- RedirectResponse 반환
- ReturnUrl 선택사항
송장 특성 관리
송장 항목
- 인보이스 항목 추가
- 스트라이프 송장 항목 반품
- 필요한 설명 및 금액
- 가격 기반 항목 추가
- 스트라이프 송장 항목 반품
- 가격ID 필수
송장 생성
- 즉시 인보이스 생성
- 송장 반환 개체
- 필요한 설명 및 금액
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!