# ALC Developer Guide

## **ALC概要**

* ONE store提供授權認證服務(Application License Checker)，僅有透過ONE store設定產品的使用者才可以存取函式庫。
* 透過ALC可以即時確認使用軟體的用戶是否擁有有效授權(是否透過ONE store設定)，並僅提供有效使用者存取函式庫。
* ONE store ALC是以網路為基礎的服務，它會向ONE store伺服器詢問該使用者當下是否擁有有效授權並進行相關判斷。該詢問會向裝有該應用程式之裝置的ONE store service提出需求後，ONE store service會向ONE store伺服器傳送需求並接收結果。<br>

  <figure><img src="/files/OSyZzLsQX2taLsP3jzCd" alt=""><figcaption></figcaption></figure>

### ALC Library

ONE store提供可下載的Library，且可從應用程式上輕鬆確認授權。Library兼具應用程式與ONE store service和ONE store伺服器通訊時所有必備功能，透過應用程式Library提供的API便能確認是否為有效授權。

* #### **開發及測試環境設定** <a href="#applicationlicensecheckeralc-shuo-ming-she-zhi-kai-fa-ji-ce-shi-huan-jing" id="applicationlicensecheckeralc-shuo-ming-she-zhi-kai-fa-ji-ce-shi-huan-jing"></a>
  * 開發環境建議 : 為將ALC Library套用至應用程式中，需以下開發環境：
  * Android 5.0以上版本(API版本需21以上)
  * Java SDK 1.6 版本
  * Android studio 3.0 以上版本<br>
    * ### 設定 <a href="#applicationlicensecheckeralc-shuo-ming-she-zhi" id="applicationlicensecheckeralc-shuo-ming-she-zhi"></a>

      * **Step 1.** 在Apps >透過“登錄商品”，輸入預計登錄的商品與包體名。

      <figure><img src="/files/f2bLLY9mEaVsyBNn9LNK" alt=""><figcaption></figcaption></figure>
    * **Step 2.** 選擇已登錄之APP後，"商品狀況">"授權管理" 選擇註冊的App後，在選項中可確認授權金鑰((public key)；授權金鑰為使用ALC Library時的必須項目。<br>

      <figure><img src="/files/gCEMwpv9hyRBaZ2leNFZ" alt=""><figcaption></figcaption></figure>
    * **Step 3.** 根據 ALC Library指南開發應用程式。ALC Library指南請參考[這裡](/dev/cht/tools/alc/add-alc-library-dependency.md)。
    * **Step 4.** 使用者可於銷售軟體前確認授權，並於"授權管理"中"ALC測試管理"登錄測試。若登錄測試，無論是否購買應用程式，測試人員都會被視為擁有該應用程式正常授權；若測試者刪除時授權也會一併被刪除。<br>

      <figure><img src="/files/GfWzcFKsvO1zkj19aNSV" alt=""><figcaption></figcaption></figure>
    * 使用Test ID查詢要使用的Test ID（ONE store用戶帳號）\
      \* 請將ONE store的帳號註冊為測試帳號（可使用的ID類型：ONE store，Naver，facebook，google ID)
    * 確認已查詢地Test ID後，選擇“註冊”鍵後，註冊成為測試人員。註冊成功之測試人員可以透過Test ID管理中進行刪除。
    * **Step 5.**&#x70BA;銷售App，用户可以上傳APK，並且可以確認是否套用ALC。
      * 套用ALC：顯示Library内api版本（ex. 1）
        * 未套用ALC時：顯示未套用\ <br>

          <figure><img src="/files/kRQZvjHgMNtcNiUN1pSm" alt=""><figcaption></figcaption></figure>
* #### **套用前注意事项** <a href="#applicationlicensecheckeralc-shuo-ming-ying-yong-qian-zhu-yi-shi-xiang" id="applicationlicensecheckeralc-shuo-ming-ying-yong-qian-zhu-yi-shi-xiang"></a>
  * 套用ALC Library前，請確認以下內容，
    * 由於ALC為網路服務，確認授權時須於連線狀態下進行；而未連接網路時，用户可以使用授權緩存快取進行操作。
    * ALC測試人員註冊只限於單個應用程式軟體；若要在不同應用程式軟體中進行ALC測試，須於該App商品的"授權管理"中新註冊為測試人員。
    * ALC測試環境與為進行In-App測試之Sandbox無關。
    * “ONE store service”需於用戶設備中完成安裝。電信公司銷售之智慧型手機基本內建“ONE store service”，若為自行購買或是海外購買之裝置，因未內建於智慧型手機內，請透過以下連結下載最新版本[下載](http://m.onestore.co.kr/mobilepoc/etc/downloadGuide.omp?PrePageNm=/main)

### **ALC Library套用指南** <a href="#applicationlicensecheckeralc-shuo-ming-alclibrary-ying-yong-zhi-nan" id="applicationlicensecheckeralc-shuo-ming-alclibrary-ying-yong-zhi-nan"></a>

* [Add ALC library dependency](/dev/cht/tools/alc/add-alc-library-dependency.md)
* [ALC V2 Reference](/dev/cht/tools/alc/alc-v2-reference.md)
* [於Unity 中升級至 ALC SDK V2](/dev/cht/tools/alc/wu-unity-zhong-sheng-ji-zhi-alc-sdk-v2.md)
* [升級至ALC V2](/dev/cht/tools/alc/sheng-ji-zhi-alc-v2.md)
* [Unity中使用 ALC SDK V2](/dev/cht/tools/alc/unity-zhong-shi-yong-alc-sdk-v2.md)<br>

### **下載 ALC** <a href="#applicationlicensecheckeralc-shuo-ming-xia-zai-alc" id="applicationlicensecheckeralc-shuo-ming-xia-zai-alc"></a>

* ALC(Application License Checker) Library可透過[git hub](https://github.com/ONE-store/app_license_check)進行。

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://onestore-dev.gitbook.io/dev/cht/tools/alc.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
