オートデスク デベロッパーネットワーク(ADN)

Autodesk App ストア:月額 Subscription のデスクトップ アプリ販売

このドキュメントは、Autodesk App ストア上で Subscription モデルのアプリを販売する方法について説明しています。

    1. 有償アプリとしての Autodesk App ストアへの設定。
    2. 正しく IPN 通知を処理出来るよう、アプリまたはバックエンド Web サーバー/アプリとバックエンド Web サーバー構築する。


Autodesk App ストアでの有償アプリの設定

アプリに提出フォームの入力中に月額 Subscription を有効にするためには、価格タイプとして、次のように"月額料金(米ドル)"を選択する必要があります。

 

 

選択に依っては、下図のように、PayPal または、BlueSnap の Instant Payment Notification(即時支払い通知)を有効化する必要があります。

お使いになる Web サービス IPN ハンドラを入力することが出来ます。


Subscription アプリの処理

オートデスクは、Subscription の更新、不払い、停止に正しく対応することが出来る 2 つのメカニズムを提供しています。ただし、これを実装するには、どのアプローチでも、いくつかのコーディング作業が必要となります。2 つのオプションとは、次のとおりです:

  1. Autodesk App ストアの Entitlement Web サービス(Entitlement API)を使用する方法
  2. Autodesk App ストア サーバーが中継した、BlueSnap や PayPal の Instant Payment Notification(即時支払い通知)を利用するカスタム ビルドした Web サービスを使用する方法


Entitlement API の使用

これは、Subscription を処理する最も単純なオプションで、独自の Web サーバーを構築せずに、アドイン アプリだけで、すべての保護処理をおこなう場合の唯一のオプションです。

アプリは、Entitlement API にアプリを識別する一意な ID と、オートデスク製品内で実行中のアプリに現在サインイン中のエンドユーザの Autodesk ID を渡す、単純な HTTP(REST)呼び出しをおこないます。Entitlement API は、エンドユーザがこのアプリを使用する‘権限’を持っているかどうか応答します(例、エンドユーザがアプリを購入したいたかどうかを返す)。

この部分の詳細は、アプリ内での Entitlement API の利用方法を説明した別のドキュメントを参照してください。


サンプル:DevBlog へのリンク

カスタム ビルドした Web サービスの使用

独自の Web サービスの作成する利点は、アプリの使用方法をトラッキングしたり、コントロールしたり出来るようになる点です。これには、特定のコンピュータにアプリ利用を固定したり、エンドユーザからアプリの利用状況を収集したりすることも含まれます。例えば、利用パターンやエラーをモニターすることが出来ます。また、もちろん、アプリには、Web サービス コンポーネントや、独自の販売 Web サイトを含む場合には、すでに、上記のような Web サーバーを所有していることになります。

独自の Web サービスを使って月額 Subscription を販売するには、下記の点が必要となります。

  1. 次の実装を持つ Web サービスを構築します。
      a. IPN 通知を判断する
      b. コンピュータ/ユーザ アカウントを管理する
      c. Subscription 終了日を管理する
      d. 要求に応じて、正しいユーザの Subscription ステータスを返す
  2. アプリ内から、与えられたユーザ/コンピュータのユーザの Subscription ステータスを取得する、Web サービス(Step 1 で作成された)のコンタクト要求ロジックを実装する。


    カスタム ビルド Web サービスのサンプル ワークフロー:

    1. ユーザがAutodesk App ストアからアプリを購入する
      ユーザがアプリを購入する際に、Autodesk App ストアはアプリの公開ワークフローで登録した Web サービスに、IPN 通知を中継します。
    2. IPN データを解析してユーザ アカウントを作成 / 編集する
      カスタム ビルドした Web サービスが IPN 通知から必要な情報を展開します(例、Email アドレス、アプリ名、支払い ID、支払日など)。次に、一意なアクティベーション ID(GUID)を生成して、アプリを購入したユーザにメールで送信します。Web サービスは、ユーザ データを保存するために利用するデータベース テーブルに新しいエントリを追加します。保存したデータは、ユーザの Email アドレス、一意なアクティベーション ID、ユーザの一意なマシンのロックコードなどと、Subscription 終了日を含むことになるはずです。
    3. ユーザがアプリをインストールして実行する
      新しいユーザはアプリを初めて使用する際には、Step 2 でアプリ公開元から提供された一意なアクティベーション ID の入力を促すダイアログ ボックスを表示します。入力か完了すると、アプリはネットワーク ポート ID のような一意なマシン ロック コードを取得して、アクティベーション ID に関連つけた形でアプリ公開元 Web サービスに送信します。
    4. アプリが有効化される
      一意なアクティベーション ID とマシン ロック コード(Step 3)を受信すると、Web サービスはマシン ロック コードでデータベースを更新して、次に、Web サービスからアプリに成功メッセージが送信されます。成功メッセージを受信すると、アプリは有効化されて実装する機能を実行できるようになります。もし、同じユーザ用に既にマシン ロック コードが記録されている場合には(ユーザが 2 台目のコンピュータでアクティベーションを試みている場合)、リクエストは拒否されて失敗メッセージがアプリに返されます。アプリは、直ちにエラーメッセージを表示して、動作を停止します。この手順で、特定のコンピュータにアプリをロックすることが出来るようになります。
    5. アプリを実行する
      アプリが使用されている際には、定期的に Subscription ステータスを取得するために、アクティベーション ID とマシン ロック コードで Web サービスにコンタクトします。Web サービスは、ユーザ テーブルに対して受信したデータを確認して適切なステータスを返します((現在の日時と Subscription 終了日を比較して、アプリへのSubscriptionが有効か否か))。
    6. ユーザが Subscription を更新する
      ユーザが アプリの Subscription を更新した場合には、Autodesk App ストアは、アプリの提出処理中に指定した IPN リスナー Web サービスへ、更新の即時支払い通知(IPN 通知)を中継します。Web サービスは、通知内容を解析、必要な情報を抽出して、新しい Subscription 終了日でデータベースを更新します。

    上記のワークフローを実装するサンプル コードは、https://github.com/ADN-DevTech/Termlicensing を参照してください。


    その他の情報

    ADN チームは、成功裏に Autodesk App ストアへの公開元/パブリッシャーになるお手伝いをします。もし、ご質問等があれば、appsinfo@autodesk.com まで電子メールをお送りください。