인앱 구매 알림 받기

이 항목에서는 인앱 구매 알림을 수신하기 위해 엔드포인트를 구현하기 위한 요구 사항에 대해 알아봅니다.

개요

비디오 콘텐츠 및/또는 상품 공급자는 엔드포인트를 설정해야 Brightcove Beacon이 공급자에게 구매가 완료되었음을 알릴 수 있습니다. 인앱 구매가 Brightcove Beacon 앱을 통해 이루어지면 앱은 Apple App Store와 같은 플랫폼 스토어 중 하나와 통신하여 구매를 완료합니다. 정의된 끝점은 이 트랜잭션에 대한 알림을 받습니다.

구매에서 알림까지의 흐름을 보여주는 예를 살펴보겠습니다. 가상의 회사인 Acme Symphony는 엔드포인트를 구현했습니다. iOS에서 브라이트코브 Beacon 앱을 사용하는 사용자가 제품을 구매합니다. 높은 수준의 워크플로는 다음과 같습니다.

  • 시청자가 지난 교향곡의 동영상에 액세스하고 다가오는 여름 라이브 콘서트 티켓을 구독하기 위해 구매합니다.
  • Beacon 앱은 Apple App Store를 통해 구매를 완료합니다.
  • Beacon 앱은 Beacon에게 구매 사실을 알립니다.
  • Beacon 자격 하위 시스템은 구매한 구독의 모든 비디오 자산에 대한 시청자 액세스 권한을 부여합니다.
  • Acme Symphony의 끝점으로 알림이 전송됩니다.
  • Acme Symphony는 구매 내역을 알고 있으며 구매자에게 티켓을 보내는 것과 같은 추가 워크플로를 트리거할 수 있습니다.

문서의 나머지 부분에서는 기술 구현을 명확히 하고 엔드포인트 구현에 대한 세부 사항을 제공합니다.

알림 구현 방법

다음은 프로세스의 상위 수준 다이어그램입니다.

앱 구매의 개요 비콘

도표에 대한 설명 세부사항:

  • Amazon Simple Notification Service(Amazon SNS)는 게시자에서 구독자로 메시지를 전달하는 관리형 서비스입니다. 자세한 내용은 Amazon의 SNS 개발자 안내서를 참조하십시오.
  • Brightcove Beacon 고객이 알림을 받은 후 조치가 달라집니다. 이 예에서는 티켓을 구매했으므로 티켓을 보내야 합니다. 따라서 알림이 수신되면 비즈니스 규칙에 따라 발생해야 할 사항이 결정됩니다.
  • 엔드포인트 구현 접근 방식은 전적으로 귀하의 결정입니다. 결정은 사용된 백엔드 기술과 소프트웨어 엔지니어의 기술에 따라 결정될 가능성이 높습니다.
  • 플랫폼 스토어에서 Brightcove Beacon 백엔드로 직접 연결되는 점선은 갱신과 같은 기타 알림을 위한 것입니다.

알림 사용 지침

다음은 알림에 대한 사용 지침을 지정합니다.

  • 다음 스토어의 인앱 구매 알림이 지원됩니다.
    • 애플 앱 스토어(iOS 및 AppleTV)
    • Google Play(Android 및 Android TV)
    • 로쿠 채널 스토어
    • 아마존 앱스토어(FireTV)
    • 스트라이프(웹 및 삼성 TV)
  • Beacon은 구독에 대한 다음 작업을 포함하여 모든 구매 관련 이벤트를 보고합니다.
    • 새로운
    • 갱신
    • 해제
    • Google Play에만 해당:
      • 정지시키다
      • 잡고 있다
      • 재개하다
  • Beacon 또는 네이티브 스토어를 통해 이미 구매한 경우 외부 스토어에서 자격을 적용하거나 동일한 자산(구독)의 구매를 방지할 수 있도록 알림에 충분한 정보가 제공됩니다.
  • 구매 이벤트는 소스 상점에서 알림을 받은 후 외부 상점으로 전달됩니다. 이것은 일반적으로 5분 이내에 발생합니다(보통 몇 초 이내).

API 엔드포인트 사양

Beacon 시스템에서 구독을 성공적으로 처리한 후 Beacon은 특정 고객에 대해 구성된 API 엔드포인트에 SNS 주제 메시지를 전달합니다.

다음은 외부 끝점에 대한 요구 사항입니다.

  • API 엔드포인트는 AWS SNS 통합과 호환되어야 합니다. 자세한 내용은 Amazon의 Fanout to HTTP/S 엔드포인트 문서를 참조하십시오. 이 문서에는 Java 서블릿으로 작성된 Amazon SNS HTTP POST 요청을 처리하는 엔드포인트 구현에 대한 링크가 포함되어 있습니다.
  • API 엔드포인트는 AWS에서 사용하는 IP 주소 범위에 대해 열려 있어야 합니다. AWS IP 주소 범위를 참조하십시오.
  • API 끝점은 구독 확인 단계를 거칩니다. 자세한 내용은 Amazon의 구독 문서 확인을 참조하십시오.
  • API 끝점은 알림의 메시지 필드에서 JSON을 이스케이프 해제해야 합니다. 자세한 내용은 Amazon의 구문 분석 메시지 형식 문서를 참조하십시오.
  • API 엔드포인트는 메시지의 서명과 출처를 확인해야 합니다. 자세한 내용은 Amazon의 Amazon SNS 메시지 서명 확인 문서를 참조하십시오.

오류에서 복구할 수 있도록 사용자의 모든 구매를 다시 보낼 수 있습니다(비활성 알림 필터링). 저장소의 외부 API 엔드포인트는 이전에 소비된 메시지를 포함하여 모든 메시지를 재처리합니다.

JSON 페이로드 사양

외부 상점 끝점으로 전송되는 JSON 페이로드에는 다음 필드가 포함될 수 있습니다.

이름 유형 필수 가능한 값 참고 사항
알림 유형 스트링 언제나 새로운 , 고쳐 쓰다 , 취소 , 정지시키다 , 잡고 있다 , 재개하다
  • new - 새 구독을 위해 발급됨
  • 갱신 - 기존 구독을 갱신하는 데 사용됩니다 (구독 연장✝ ︎ )
  • 취소 - 기존 구매 취소
  • 보류 - 미결제로 인해 구독이 보류되었습니다.
  • pause - 구독이 사용자에 의해 일시 중지되었습니다.
  • resume - 보류 또는 일시 중지에서 계속으로 구독 전환
  • ✝︎이것은 Apple에게 항상 해당되는 것은 아닙니다. Apple은 renew를 사용하여 향후 갱신 취소를 나타냅니다. Apple은 또한 취소를 사용하여 구독을 표시하고 즉시 취소합니다. 자세한 내용은 Apple의 notification_type 설명서를 참조하십시오.
    external_user_id 스트링 언제나 사용자를 식별하기 위해 Beacon 및 외부 저장소에서 일반적으로 사용하는 ID입니다.
    transaction_id 스트링 언제나 트랜잭션의 고유 식별자입니다. 청약철회 시 이 아이디를 이용하여 청약철회 또는 개별구매를 하여야 합니다. 구독이 갱신, 재개, 일시 중지 또는 보류될 때 이 ID는 영향을 받는 특정 구독을 찾는 데 사용됩니다.
    시작일 정수 예, 취소 알림을 제외하고 구매가 유효하고 사용자에 대한 권한이 시작되어야 하는 날짜
    end_date 정수 이러한 알림 유형에 필요: 신규, 갱신, 취소 및 재개 구매가 더 이상 유효하지 않고 사용자에 대한 자격이 종료되는 날짜입니다. 취소 요청의 경우 end_date는 사용자가 콘텐츠에 대한 액세스 권한을 상실하는 시기를 정의합니다.
    original_store 스트링 언제나 애플 스토어 , 구글 플레이 , 아마존 스토어 , 스트라이프 , 로쿠 스토어 , 에버전트 , 비콘 스토어 구매가 이루어진 원래 상점
    스쿠 스트링 언제나 구매한 항목을 식별합니다. 원본 저장소에서 사용되는 식별자입니다.
    package_name 스트링 언제나 Brightcove Beacon의 SVOD 또는 TVOD 패키지 이름
    알림_날짜 정수 언제나 Beacon에서 외부 저장소 시스템으로 이벤트를 발송하는 타임스탬프
    취소_날짜 정수 알림 유형이 취소인 경우 필수 취소 요청에 사용되며 사용자/상점이 구독을 취소한 타임스탬프를 지정합니다.
    trial_end_date 정수 선택 사항(신규 가입에만 적용 가능) 존재하는 경우 재판이 있음을 의미합니다. 새 구독의 경우 평가판 종료 날짜가 end_date 와 같을 수 있습니다(상점에서 평가판에 대한 알림 하나와 실제 구독이 시작될 때 두 번째 알림을 보내는 사용 사례).