Chrome 웹 스토어에서 Chrome 앱, Chrome 확장 프로그램 또는 Chrome 테마에 대해 사용자에게 비용을 청구하도록 선택하면 몇 가지 옵션을 사용할 수 있습니다. Chrome 웹 스토어에는 Chrome 웹 스토어 결제라고 하는 일회성 결제 시스템이 내장되어 있습니다.
Chrome 앱의 경우 Chrome 웹 스토어 API와 함께 Payments 판매자 계정으로 가상 상품을 판매하는 옵션이 있습니다.
참고 : Chrome 웹 스토어 결제 수단은 호스팅 된 앱에 사용할 수 없습니다.
무료 평가판 제공
Chrome 앱 및 Chrome 확장 프로그램의 경우 제한된 기간 동안 사용자에게 전체 액세스 권한을 부여하거나 사용 가능한 기능을 제한하는 무료 평가판을 제공 할 수 있습니다. 개발자 대시 보드에서 해당 확인란을 선택한 다음 Licensing API를 사용하여 유료 버전으로의 업그레이드 경로와 함께 사용자가 보유한 라이선스의 종류와 보유 기간을 확인하여 무료 평가판을 활성화 할 수 있습니다.
Chrome 웹 스토어 라이선스 API
Chrome Web Store Licensing API를 사용하여 사용자가 항목에 대해 결제했는지 또는 무료 평가판을 사용한 기간을 확인할 수 있습니다. Licensing API는 Chrome 웹 스토어 라이선스 서버에 쿼리하여 특정 사용자가 무료 평가판을 사용하는지 또는 항목에 대해 지불했는지 확인할 수 있는 간단한 REST 기반 API입니다.
Contents
시작하기 전에
아직 계정이 없는 경우 Google Payments 판매자 계정을 열고 해당 계정을 상점과 연결해야 합니다.
참고 : 앱을 판매 할 수 있는 위치 및 수수료에 대한 자세한 내용은 결제 : 지역, 수수료 및 계층을 참조하십시오.
일회성 결제 사용
Chrome 웹 스토어 개발자 대시 보드의 목록 페이지에서 일회성 결제를 설정하고 무료 평가판 옵션을 제공 할 수 있습니다. Chrome 웹 스토어는 각 사용자의 라이선스를 관리하고 REST API를 통해 해당 정보를 노출합니다.
일회성 결제를 활성화하려면 :
Chrome 웹 스토어 목록 업데이트
항목에 대해 일회성 결제를 활성화하려면 아래 단계를 따르십시오.
가격 선택
Chrome 웹 스토어 결제를 사용하는 경우 18 개 계층 중에서 선택하거나 지원되는 각 지역에 대해 고유 한 맞춤 가격을 설정할 수 있습니다.
항목의 가격을 변경하려면 목록의 가격 및 결제 섹션에서 원하는 등급을 선택하세요. 혼합을 선택하여 각 지역에 대한 사용자 지정 가격을 설정 한 다음 지역 섹션에서 각 지역에 대한 가격을 선택할 수도 있습니다.
다양한 계층 및 현지 통화 가격에 대한 자세한 내용은 결제 : 지역, 수수료 및 계층을 참조하십시오.
결제 확인 및 무료 평가판 제공
사용자에게 라이선스가 있는지 확인하려면 Chrome Web Store Licensing API를 쿼리하면 됩니다.
다음은 라이선스 API를 사용하는 데 필요한 프로세스에 대한 개요입니다.
manifest.json 업데이트
라이선싱 API를 사용하기 전에 manifest.json 파일을 수정하고 새 범위 및 잠재적으로 새 권한을 추가해야 합니다.
{ "permissions": [ "storage", "identity", "https://www.googleapis.com/" ], "oauth2": { "client_id": "665859454684-s6nmohpktccl2srxvc67thbmpclpa36v.apps.googleusercontent.com", "scopes": [ "https://www.googleapis.com/auth/plus.login", "https://www.googleapis.com/auth/chromewebstore.readonly" ] } }
라이센스 확인
사용자가 웹 스토어 항목을 구입했거나 무료 평가판을 사용하고 있는지 확인하려면 다음을 수행하십시오.
var CWS_LICENSE_API_URL = 'https://www.googleapis.com/chromewebstore/v1.1/userlicenses/'; var req = new XMLHttpRequest(); req.open('GET', CWS_LICENSE_API_URL + chrome.runtime.id); req.setRequestHeader('Authorization', 'Bearer ' + token); req.onreadystatechange = function() { if (req.readyState == 4) { var license = JSON.parse(req.responseText); verifyAndSaveLicense(license); } } req.send();
참고 : 테마는 JavaScript를 실행하지 않고 라이센스를 확인할 수 없기 때문에 테마에 대한 무료 평가판 경험을 제공 할 수 없습니다.
응답 처리 및 구문 분석
라이선스 서버에서 받은 응답은 사용자에게 액세스 권한이 있는지 여부, 사용자가 가져야 하는 액세스 수준 및 응답이 유효한 기간의 세 가지를 알려줍니다. 사용자에게 액세스 권한이 있는지 여부 만 알고 싶다면 결과 필드의 값을 확인하십시오. 사용자가 무료 평가판을 받아야 하는지 여부를 알고 싶다면 accessLevel 필드의 값을 확인하십시오.
샘플 JSON 라이선스 개체
{ "kind": "chromewebstore#license", "itemId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "createdTime": "1377660091254", "result": true, "accessLevel": "FULL", "maxAgeSecs": "2052" }
Field Name |
Description |
kind |
Chrome 웹 스토어 라이선스를 식별합니다. |
itemId |
앱 또는 확장 프로그램 ID |
createdTime |
라이센스가 생성 된 날짜로 Unix 타임 스탬프로 반환 됩니다. 을 사용하여 무료 평가판의 기능을 특정 기간으로 제한 할 수 있습니다. |
result |
사용자에게 라이선스 (전체 또는 평가판)가 있는지 여부, 참 또는 거짓 |
accessLevel |
FREE_TRIAL, FULL or NONE |
maxAgeSecs |
응답이 유효한 시간입니다. 해당 시간이 지나면 앱에서 라이선스 서버를 다시 쿼리 하여 사용자의 액세스가 변경되었는지 확인해야 합니다. |
응답 캐싱
성능을 개선하고 속도 제한에 부딪히지 않으려면 chrome.storage.sync API를 사용하여 라이선스 데이터를 로컬로 캐시하고 주기적으로 만 새로 고침해야 합니다. 동기화 데이터에 라이센스 데이터를 저장하면 사용자가 로그인 한 모든 컴퓨터에서 동기화 됩니다.
또한 라이선스 서버가 응답 할 때까지 사용자 인터페이스를 차단하거나 Chrome 앱 또는 확장 프로그램에서 사용자를 잠그지 말고 대신 사용자가 응답을 받을 때까지 제한된 유예 기간 동안 계속할 수 있도록 허용하세요. 최소 하루나 이틀의 유예 기간을 제공하면 사용자가 네트워크에 연결되지 않을 수 있는 오프라인 상황에서도 Chrome 앱 또는 확장 프로그램이 계속 제대로 작동합니다.
무료 평가판 경험 처리
사용자에게 무료 평가판을 제공하기로 결정한 경우 사용자가 구매하기 전에 사용해 볼 수 있는 몇 가지 방법이 있습니다. 가장 일반적인 두 가지 방법은 제한된 시간 동안 전체 액세스를 제공하거나 제한된 기능 세트를 제공하는 것입니다. 물론이 두 가지를 결합하거나 자체 인센티브를 제공하여 사용자가 유료 버전으로 업그레이드하도록 장려 할 수도 있습니다.
제한된 시간 액세스
라이선스 API를 사용하면 라이선스가 사용자에게 처음 발급 된 날짜를 포함하여 제한된 시간 동안 평가판을 쉽게 제공 할 수 있습니다. createdDate를 현재 날짜와 비교하면 사용자가 무료 평가판을 사용한 기간을 알 수 있습니다.
var licenseStatus; if (license.result && license.accessLevel == "FULL") { console.log("Fully paid & properly licensed."); licenseStatus = "FULL"; } else if (license.result && license.accessLevel == "FREE_TRIAL") { var daysAgoLicenseIssued = Date.now() - parseInt(license.createdTime, 10); daysAgoLicenseIssued = daysAgoLicenseIssued / 1000 / 60 / 60 / 24; if (daysAgoLicenseIssued <= TRIAL_PERIOD_DAYS) { console.log("Free trial, still within trial period"); licenseStatus = "FREE_TRIAL"; } else { console.log("Free trial, trial period expired."); licenseStatus = "FREE_TRIAL_EXPIRED"; } } else { console.log("No license ever issued."); licenseStatus = "NONE"; }
참고 : 주요 업데이트 또는 상당한 시간이 지난 후 사용자가 새 기능을 사용해보고 항목이 어떻게 변경되었는지 확인할 수 있도록 항목을 다시 시도하도록 허용 할 수 있습니다.
제한된 기능 세트
사용자에게 무료 평가판을 제공 할 수있는 또 다른 방법은 유료 버전으로 업그레이드 할 때까지 제한된 기능 세트를 제공하는 것입니다. 예를 들어, 주어진 시간에 열리는 파일 수 또는 사용자가 결제를 요청하기 전에 편집 할 수있는 총 파일 수를 제한 할 수 있습니다.
무료에서 유료 환경으로 마이그레이션
무료 환경에서 유료 환경으로 마이그레이션하기로 결정한 경우 변경하기 전에 항목을 설치 한 사용자에게 제공 할 환경을 고려해야 합니다. 결정은 귀하의 몫이지만 이러한 사용자를 완전한 유료 환경으로 전환하는 것이 좋습니다.
변경하기 전에 항목을 설치 한 사용자는 FREE_TRIAL 라이선스를 갖게 됩니다. 가격 변경 전에 사용자가 항목을 설치했는지 확인하려면 라이선스에서 createdTime 값을 확인하여 처음 설치 한시기를 확인할 수 있습니다.
샘플 Chrome 앱
Chrome Web Store Licensing API 사용 방법을 보여주는 간단한 Chrome 앱은 다음을 참조하세요.
Chrome 웹 스토어에서 게시 된 앱을 설치하고 실행하여 무료 평가판을 사용해 볼 수 있습니다.
등록된 댓글이 없습니다.