カラーミーショップアプリストア API
カラーミーショップアプリストア API
にて公開するアプリに対して、一般公開しているに加えて、カラーミーショップアプリストアAPI(以下、アプリストアAPIといいます)を利用することが出来ます。アプリストアAPIでは以下のことが行えます。
- 課金データ(アプリ内課金、従量課金)の作成
- インラインスクリプトタグの取得・作成・更新・削除
- スクリプトタグの取得・作成・更新・削除
利用手順
アプリストアAPIを利用するには、OAuth認証が必要です。OAuth認証の基本的な流れについてはを参照してください。 アプリストアAPIの利用のために、以下のscopeが追加で指定可能になります。に掲載されているscopeと合わせてご利用ください。
(例) カラーミーショップアカウントの認証ページを表示
課金設定
料金プラン(月額課金・従量課金・買い切り)による課金や、アプリ内課金をご利用いただくにはアプリごとに課金設定の登録が必要です。 この設定は から行うことができます。
登録できる課金形式やその使い方の詳細についてはをご覧ください
アプリのインストール
ショップオーナーがアプリをインストールしたとき、以下の処理をカラーミーショップが行います。
- 選択された料金プランに基づき課金開始
- インストールフックの呼び出し
インストールフック
アプリのインストール時に、インストールに関する情報を POST メソッド、 application/json 形式で通知します。
通知先のURLはにログインし、各アプリストア アプリのアプリ設定から登録を行ってください。
以下のパラメータが送信されます。課金請求に必要なパラメータを含みますので、必ず受け取れるようにしてください。
application_charge_source_id はデベロッパーサイトで設定したプラン課金のIDです。インストールされた料金プランの判別にご利用いただけます。
recurring_application_charge_id と application_charge_id はインストールごとに発行されるユニークなIDです。ショップオーナーが一度アンインストールした後に、再度同じショップオーナーがアプリのインストールを行った際には新たに別のIDが発行されます。
recurring_application_charge_id は「買い切り」以外の課金である「無料」「月額」「月額+従量」「月額+初期費用」「従量のみ」のプラン課金のインストールの際に発行されます。
従量による課金を伴うプラン課金の場合は、従量分の料金を請求する際に 課金契約ID(recurring_application_charge_id) が必要になるので、必ず記録するようにしてください。
mail パラメータの値はショップオーナーへの連絡手段としてご利用いただけます。インストール後に認可フローが中断され、アクセストークンが得られない際のショップオーナーへの連絡手段としてご活用いただけます。このパラメータはカラーミーショップの非公開情報として登録されている値です。左記以外の用途でこの値をアプリの機能で使用しないでください。
例) 買い切りの場合
例) 月額課金の場合
無料お試し期間を設定した課金の場合、以下の情報を trial_term パラメータとして送信します。
無料お試し期間中は従量課金APIを呼び出して課金請求することはできません。
例) 無料お試し期間がある月額課金の場合
受け取りに成功した場合は、以下のパラメータを application/json 形式でレスポンスボディに付与し、
ステータスコード 200 レスポンスをカラーミーショップへ返却してください。
ステータスコード 200 レスポンスをカラーミーショップが受け取れない場合、もしくは以下のパラメーターが返却されなかった場合、インストールを中止し、インストールによって発生した情報は破棄されます。
例)
インストール完了後、インストールフックのレスポンスパラメータの redirect_url へ画面遷移しますので、APIを利用する場合は redirect_url より先の画面でOAuth認証の実装をお願いします。
アプリのアンインストール
ショップオーナーがアプリをアンインストールしたとき、以下の処理をカラーミーショップが行います。
- OAuth認証のアクセストークンの無効化
- 登録したインラインスクリプトタグ・スクリプトタグの削除
- 月額課金形式の場合、継続課金の無効化
アンインストールフック
アンインストール直後に POST メソッドで、以下の情報を application/json 形式で通知します。
通知先のURLはにログインし、各アプリストア アプリのアプリ設定から登録を行ってください。
※ のご利用によるアンインストール時はアンインストールフックは通知されません。
受け取りに成功した場合はステータスコード 200 のレスポンスを返却してください。
アンインストールフックの通知が伴うアンインストールは以下の操作のいずれかによって行われます。アンインストールの理由を reason パラメータで確認できます。
課金契約ID recurring_application_charge_id はインストールフックで通知したIDと同じIDが通知されます。
料金プランが従量課金の場合、アンインストール後に従量課金データの作成を可能にするために、以下の情報を usage_charge パラメータとして送信します。
アンインストール後はOAuthのアクセストークンが無効化されているため、アクセストークンを利用して従量課金APIを呼び出すことができなくなります。
アンインストール後はアクセストークンの代わりに api_token をリクエストヘッダーに含め、従量課金APIを呼び出してください。
無料お試し期間中にアプリがアンインストールされた場合は、api_token は発行されません。
詳しくは、を参照してください。
api_token を利用した従量課金APIの呼び出しは、ポイント締め日 closing_on までとなっておりますので、ご注意ください。
通常、 closing_on は、アンインストール直前まで利用されていた契約の期間の月末となります。以下に例を示します。
従量課金の場合のユーザーの契約期間についてはをご参照ください
アンインストールフックの例を以下に示します。
例) 買い切りの場合
例) 月額課金の場合
例) 従量課金を含む月額課金の場合
アンインストールフックのリトライ
ステータスコード 200 のレスポンスをカラーミーショップが受け取れない場合は、ステータスコード 200 をカラーミーショップが受け取るまで、以下の条件で再度アンインストール情報を送信します。
なお、カラーミーショップによるアンインストール処理は、アンインストールフックの送信結果の成否によらず、アンインストールが実行されたときに完了します。
- 2時間30分ごとにアンインストールフックの仕様に基づき再送します
- 最大で合計19回再送します
- すべての再送の試行でステータスコード
200をカラーミーショップが受け取れない場合は、公認デベロッパー申請時に登録されたメールアドレス宛にメールを送信します
インストール・アンインストールフックの署名検証
X-Appstore-Signature リクエストヘッダーに含まれる署名を検証して、リクエストがカラーミーショップから送信されたことを確認することを推奨します。
検証の手順は以下のとおりです。
- カラーミーショップが発行した
webhook_secretを秘密鍵として、HMAC-SHA256アルゴリズムを使用してリクエストボディのダイジェスト値を取得します。 - ダイジェスト値をBase64エンコードした値とリクエストヘッダーに付与された署名(
X-Appstore-Signatureの値)が一致することを確認します。
サンプルコード(ruby)
発信元IPアドレスについて
発信元IPアドレスは固定ではありません。そのためIPアドレスが固定されていることを前提としてアプリケーションを開発しないでください。
インストールフックおよびアンインストールフックのリクエストの発信元を検証する場合は上記の署名検証を行なってください。
https://api.shop-pro.jp/oauth/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&response_type=code&scope=read_products%20write_products%20write_application_charge{ "account_id": "PA00000001", "application_charge_source_id": "F3RN9A", "application_charge_id": "A3FT4N", "mail": "shop@example.com"}{ "account_id": "PA00000001", "application_charge_source_id": "F3RN9A", "recurring_application_charge_id": "A3FT4N", "mail": "shop@example.com"}{ "account_id": "PA00000001", "application_charge_source_id": "F3RN9A", "recurring_application_charge_id": "A3FT4N", "mail": "shop@example.com", "trial_term" { "starts_at": 1565017200, "ends_at": 1567609200 }}{ "redirect_url": "https://example.com"}{ "account_id": "PA00000001", "application_charge_source_id": "Q21GPC", "uninstalled_at": 1552022739, "reason": "by_shop_owner"}{ "account_id": "PA00000001", "application_charge_source_id": "EW3V21", "recurring_application_charge_id": "F3RN9A", "uninstalled_at": 1552022740, "reason": "by_shop_owner"}{ "account_id": "PA00000001", "application_charge_source_id": "WA37CA", "recurring_application_charge_id": "F3WQ1S", "uninstalled_at": 1552022740, "reason": "by_shop_owner", "usage_charge": { "api_token": "token", "closing_on": 1552533465 }}WEBHOOK_SECRET = 'my_webhook_secret'
payload_body = request.body.readsignature = Base64.strict_encode64(OpenSSL::HMAC.digest('sha256', WEBHOOK_SECRET, payload_body))ActiveSupport::SecurityUtils.secure_compare(signature, request.env['HTTP_X_APPSTORE_SIGNATURE'])- Homepage
- https://api.apis.guru/v2/specs/shop-pro.jp/1.0.0.json
- Provider
- shop-pro.jp
- OpenAPI version
- 3.0.0
- Spec (JSON)
- https://api.apis.guru/v2/specs/shop-pro.jp/1.0.0/openapi.json
- Spec (YAML)
- https://api.apis.guru/v2/specs/shop-pro.jp/1.0.0/openapi.yaml
Tools (20)
Extracted live via the executor SDK.
-
applicationCharge.createUsageChargeアプリ内で基本機能が利用された頻度に伴って毎月の請求が変動するようなアプリの場合は「従量課金」を使って利用者に変動分の請求を行うことができます。 ※無料お試し期間中のショップに対しては従量課金データを作成できません。
-
applicationCharge.postApplicationCharge「アプリ内課金」はすでにインストール済みのアプリ上において、利用者が追加の買い切りによる課金によって新たなアプリ内の機能を提供される場合などに、利用者へ買い切りの課金分の請求を行うための課金形式です。
この課金はプラン課金の情報に紐付かないため、リクエストされたタイミングで課金データが作成されます。また、同一のアプリ内課金IDで同じ利用者へ複数回請求を行うことも可能です。
ただし、アプリの基本機能として提供しているサービスを利用した量やその頻度などに伴って毎月異なった額の請求を行うような課金については、プラン課金の「従量による課金」の機能を使って請求を行う必要があります。
-
inlineScript.createInlineScriptTag -
inlineScript.deleteInlineScriptTag -
inlineScript.getInlineScriptTag -
inlineScript.getInlineScriptTags -
inlineScript.updateInlineScriptTag -
script.createShopScriptTag -
script.deleteScriptTag -
script.getShopScriptTag -
script.getShopScriptTags -
script.updateShopScriptTag -
scriptDeprecated.createScriptTag -
scriptDeprecated.deleteV1ScriptTagsScriptTagIdJson -
scriptDeprecated.getScriptTag -
scriptDeprecated.getScriptTags -
scriptDeprecated.updateScriptTag -
uninstallation.deleteInstallationこのAPIは OAuth のアクセストークンに紐付くアプリケーションをショップから削除します。 このAPIを利用した場合、ショップオーナーがアンインストールした場合と異なり、アンインストールフックは実行されません。 代わりにアンインストールフックで通知される情報は、このAPIのレスポンスに含まれています。
アンインストール時の注意点については、を参照して下さい。
-
openapi.previewSpecPreview an OpenAPI document before adding it as a source
-
openapi.addSourceAdd an OpenAPI source and register its operations as tools