マニュアル

導入

左側のサイドバーには、対応するセクションへのリンクが含まれています:

  • ユーザー名 - 個人プロファイルへのリンク。
  • ダッシュボード - チャートやグラフの形式で現在の状況を表示します。
  • アプリケーション - アプリケーションの管理。
  • ロック解除コード - 自動生成またはダウンロードしたアンロックコード。
  • 支払い - ユーザーの受信支払い履歴。
  • マニュアル - 現在のユーザーマニュアル。

ダッシュボード

ダッシュボードのすべてのウィジェットに共通のフィルターを設定できます:

  • 通貨 - ダッシュボード上での受信および送信金額が変換される通貨。
  • 期間 - ダッシュボードのチャートやテーブルに表示されるデータの期間。支払い、アプリケーション、その他のパラメータに関する情報と統計が分析および表示される期間を指定します。

残高

残高には以下の金額が含まれます:

  • 総額 - 選択した期間のすべてのユーザー支払いの合計額(支払いシステムの手数料とPayToUseを除く)。
  • 純額 - 選択した期間のすべての支払いの合計額(支払いシステムの手数料とPayToUseを除く)。
  • 保留中の金額 - 開発者の口座への引き出し保留中の支払いシステムとPayToUseの手数料を差し引いた、指定期間のすべての支払いの合計額。支払いは支払い後7日後に引き出し可能となります。
  • 利用可能な金額 - 支払いシステムの手数料とPayToUseを差し引いた、すべての期間のすべての支払いの合計額。開発者の口座への引き出し可能額。

支払い

支払いウィジェットには、選択した期間のアプリケーション別にグループ化された支払いのテーブルが含まれています。

テーブルのフィールド:

  • アプリケーション - アプリケーション。選択した期間中に支払いが行われたアプリケーションのみがテーブルに表示されます。
  • 支払い - 支払いの数。
  • 総額 - 選択した期間のすべてのユーザー支払いの合計額(支払いシステムの手数料とPayToUseを除く)。
  • 純額 - 選択した期間のすべての支払いの合計額(支払いシステムの手数料とPayToUseを除く)。

グラフは、純額総額 の値の日別の動向を示します。

新規ユーザー

新規ユーザーのグラフは、日別の動向で2つの値を示します:

  • 新規ユーザー - 新規API呼び出しの数。APIアクセスは、リクエストをAPIに送信する際に device パラメータ(ユニークなデバイス識別子)が渡された場合にのみ記録されます。このパラメータはデバイスごとに本当にユニークである必要があります。 リクエストの送信 参照)
  • 支払い - 同じ期間内の日別支払いの数。

変換

変換メトリクスは、新規ユーザー支払い に変換するための販売効率評価を指します。

グラフは、支払い の数と 新規ユーザー の数の割合をパーセントで示します。

アプリケーション

このセクションに移動すると、アプリケーションのリストが表示されます。

アプリケーションテーブルの列のリスト:

  • # - ユニークなアプリケーション識別子。アプリケーションコードの検証や支払いフォームの表示時に使用されます。
  • 名前 - アプリケーション名。レポートやダッシュボードであなただけに表示されます。アプリケーション名をクリックすると、アプリケーションの編集ページが開きます。
  • 状態 - アプリケーションの現在のステータス。次のようになります:
    • 作成済み - アプリケーションが作成されたばかりで、まだ設定されていません。
    • リリース済み - アプリケーションが稼働中です。
  • 作成済み - アプリケーションの作成日。
  • 追加の制御ボタン
    • 削除 - アプリケーションをリストから削除するためのボタン。

アプリケーションの作成または編集

支払いを受けるためには、すべての必要なアプリケーションデータを適切に入力し、アプリケーションを有効にする必要があります。

新しいアプリケーションを作成するボタンは、アプリケーションリストのタイトルバーにあります。

アプリケーション

アプリケーションを作成する際に利用可能なフィールド:

  • 名前 - レポートやダッシュボードであなただけが見ることができるアプリケーションの名前。保存されたアプリケーションのページヘッダーに表示されます。アプリケーションが保存されていない間は、「New app」と表示されます。このフィールドは入力必須です。
  • 連絡先メール - ユーザーに送信されたメッセージのコピーが送信されるメールアドレス。このアドレスは「返信先」フィールドにも指定され、ユーザーがコード付きの受信メールに返信するために使用されます。このフィールドは入力必須です。デフォルトでは、開発者プロファイルの値が入力されますが、異なる値に変更することもできます。
  • アプリケーションタイプ - アプリケーションのタイプ。グループタイプのアプリケーションを選択すると、グルーピング用にアプリケーションのリストが表示されます。リストには、アンロックコードが生成された個別のアプリケーションのみが利用可能です。
  • 支払いに対するフィードバックを許可する - ユーザーが無料のテキストを入力するための支払いフォームにフィールドを追加します。フィードバックは開発者のメールのコピーに追加されます。支払いの詳細でもフィードバックを確認できます。

値を変更し始めると、保存ボタンが表示されます。保存ボタンをクリックすると、次のページに移動せずに変更を保存できます。次へボタンは変更を保存し、次のページに移動します。後で変更を加えるためにいつでも戻ることができます。

ページヘッダーでは、保存されたアプリケーションのページのみがナビゲーション可能です。次へをクリックするか、ページヘッダーのセクションに移動できます。

説明

リストから言語を選択し、追加ボタンをクリックします。

選択した言語のローカライズされたアプリケーションテキストのタブが表示されます。

利用可能な言語:

  • ドイツ語
  • 英語
  • フランス語
  • スペイン語
  • ロシア語
  • 中国語(簡体字)

説明文のフィールドは、支払いフォーム上やユーザーへの返信メッセージに情報を表示するために使用されます:

  • 名前 - 選択された言語のアプリケーション名。支払いフォームおよび支払い通知メールに表示されます。言語を追加すると、デフォルトでアプリケーション名が挿入されます。各言語ごとに異なる名前を設定することができます。必須フィールドです。
  • 説明 - アプリケーションの簡単な説明。アプリケーション名の下に支払いフォームに表示されます。オプションのフィールドです。説明を表示したくない場合は空白のままにしておくことができます。
  • 返信 - 支払いが成功した場合にユーザーに送信される追加情報。応答テキストは標準の応答の後にメールの末尾に追加されます。

少なくとも1つの言語を追加して保存し、次のページに進む必要があります。

支払いフォームに表示される言語は、ユーザーがブラウザの設定で指定した好みに基づいて自動的に決定されます。アプリケーションの言語を保存することができます。

値を入力または変更し始めると、保存ボタンが表示されます。保存ボタンをクリックすると、次のページに進まずに変更内容を保存できます。次へボタンをクリックすると、変更を保存して次のページに移動します。後で変更を加えるためにいつでも戻ることができます。

ページヘッダーでは、保存されたアプリケーションのページのみがナビゲーション可能です。次へをクリックするか、ページヘッダーのセクションに移動できます。

価格

このページには価格の一覧と支払いに関連するフィールドが含まれています:

  • 試用期間 - トライアル期間の長さ。
  • 時間の単位 - トライアル期間の時間単位。例えば、7日を指定すると、アプリケーションの最初のAPI呼び出し後の7日後にトライアル期間が終了したという応答が返されます。最初のデバイス呼び出しの時間が保存されます。
  • 価格計算方法 - 価格計算方法のリストからの選択方法:
    • 期間に応じた価格計算 - 支払いフォームでは、ユーザーはコードの有効期間を指定し、価格は以下の表に従って自動的に計算されます。ユーザーは応答メールで自動生成されたアンロックコードを受け取ります。
    • 価格に応じた期間計算 - 支払いフォームでは、ユーザーはリストから価格を選択するか、独自の価格を入力し、期間は以下の表に従って自動的に計算されます。ユーザーは応答メッセージで自動生成されたコードを受け取ります。
    • 永続的なコード - 支払いフォームでは、ユーザーはリストから価格を選択するか、独自の価格を入力します。支払い後、選択した価格に対応する以下のリストからコードを応答メールで受け取ります。
    • 寄付 - 支払いフォームでは、ユーザーはリストから価格を選択するか、独自の価格を入力します。寄付タイプのアプリケーションでは、アンロックコードは生成されません。

価格は米ドルで設定されています。最低価格は1米ドルです。

値を入力または変更し始めると、保存ボタンが表示されます。保存ボタンをクリックすると、次のページに進まずに変更内容を保存できます。次へボタンをクリックすると、変更を保存して次のページに移動します。後で変更を加えるためにいつでも戻ることができます。

ページヘッダーでは、保存されたアプリケーションのページのみがナビゲーション可能です。次へをクリックするか、ページヘッダーのセクションに移動できます。

プレビュー

このページでは以下の値が設定されます:

  • コードの長さ - 必要に応じて生成されるコードの長さ。
  • コード文字セット - コード生成に使用される文字のセット:
    • 数字コード - コードは数字 0、1、2、3、4、5、6、7、8、9 のみを使用して生成されます。先頭にゼロが含まれることがあります。コードの検証時に先頭のゼロは重要です。
    • 英数字コード - コードは文字 1、2、3、4、5、6、7、8、9、A、B、C、D、E、F、G、H、I、G、K、L、M、N、P、Q、R、S、T、U、V、X、Y、Z を使用して生成されます。コードは大文字で生成され、ユーザーに送信されます。文字の大小はコードの検証時には関係ありません。
  • コードをチェックするリンク - コード検証に使用するサンプルリンク。
  • 支払いリンク - 支払いリンク。リンクをコピーして、アプリケーションが公開されているウェブサイトの説明に貼り付けることができます。 渡されるパラメータ:
    • app - アプリケーションの固有の識別子。必須パラメータ。
    • amount - 購入時に価格フィールドに指定される金額です。デフォルト価格は無視されます。ただし、金額は最低価格より低くすることはできず、アプリケーションに設定された最低価格以下にすることもできません。オプションのパラメータです。

支払いを受け付けるには、[起動] ボタンでアプリケーションをアクティブ化する必要があります。アプリケーションをアクティブ化する前に、入力したすべてのデータが正しいことを確認してください。アプリケーションが生成したキーは変更できません。

コードの確認

アプリケーションのアンロックコードの確認は、以下の3つのステップで行います:

  1. コード確認のためのリクエストの作成と送信
  2. API側のチェック
  3. APIレスポンスの受信と処理
リクエストの送信

コードを確認するには、アプリケーションのユーザーがアプリケーション設定のフィールドに入力する必要があります。

/resources/settings/properties.xml
<properties>
	<property id="UnlockCode" type="string"></property>
	<property id="UnlockResult" type="string">Checking...</property>
	...
<properties>
/resources/settings/settings.xml
<settings>
	<setting propertyKey="@Properties.UnlockCode" title="@Strings.UnlockCode">
		<settingConfig type="alphaNumeric" maxLength="12"/>
	</setting>
	<setting propertyKey="@Properties.UnlockResult" title="@Strings.UnlockResult">
		<settingConfig type="alphaNumeric" readonly="true"/>
	</setting>
	...
</settings>

次に、Pay-to-use APIサーバーにリクエストを送信する必要があります:

/source/background.mc
function onTemporalEvent() as Void {
	var ds = System.getDeviceSettings();
	return Toybox.Communications.makeWebRequest(
		"https://api.pay-to-use.com", // API URL
		{
			"device" => ds.uniqueIdentifier, // デバイス固有の識別子
			"app" => "6", // あなたのアプリケーションID
			"model" => ds.partNumber, // 機器の型番
			"code" => Application.Properties.getValue("UnlockCode") // あなたのアプリケーション内のアンロックコードの値
		},
		{
			:method => Communications.HTTP_REQUEST_METHOD_POST,
			:headers => { "Content-Type" => Communications.REQUEST_CONTENT_TYPE_JSON },
			:responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON
		},
		method(:onReceive)
	);
}

APIリクエストパラメータ:

  • url - https://api.pay-to-use.com。HTTPSの使用は必須です。
  • リクエストの本文(渡される値)。キーと値からなる辞書:
    • device - デバイスの固有識別子。
    • app - あなたのアプリケーションの固有識別子。
    • model - デバイスモデル識別子。オプションのパラメータ。このデータは、新しいデバイスの統計情報を表示するために使用されます。
    • code - ユーザーがあなたのアプリケーション設定で入力したアンロックコード。
  • リクエストオプション:
    • :method - APIはGETおよびPOSTリクエストメソッドをサポートしています。
    • :headers - POSTメソッドの場合、パラメータはJSON形式で渡す必要があります。
    • :responseType - レスポンスはJSON形式で返されます。
  • responseCallback - 2つの引数を受け入れるべきコールバックメソッドへのリンク:
    • responseCode - サーバーレスポンスのヘッダーコード。
    • data - リクエストが成功した場合のコンテンツ、またはnull。
API側のチェック

パラメータがAPIに渡されない場合、APIはHTTP/1.1 404 Not Foundヘッダーを返します。

少なくとも1つのパラメータがAPIに渡された場合、APIはHTTP/1.1 200 OKヘッダーを返します。

サーバーレスポンスは以下から成り立っています:

  • response - レスポンスコード
  • msg - レスポンスのテキストによる説明
  • expires - UNIXTIMEタイムスタンプ(該当する場合)

渡されたアプリケーション識別子が正しいことを確認するためのチェックが行われます。 支払い時点でアプリケーションはリリース済みステータスである必要があります。 エラーの場合、レスポンスコード301が返されます。

ユニークなデバイスIDが送信された場合、そのデバイスIDが検索され、保存されます。 確認または保存時にエラーが発生した場合、エラーコード402が返されます。 このようなリターンコードが見つかった場合は、直ちに[email protected]にサポートに連絡してください

コードが渡された場合、期間に応じた価格計算および価格に応じた期間計算の計算方法を持つアプリケーションに対して以下のステップが実行されます:

  • 空のコードが送信された場合、前のステップで定義されたユニークデバイス識別子から切り離されます。
  • 非空のコードが送信され、アクティブ化されていない場合、購入時に指定された価格の条件に応じて、コードがアクティブ化されます。アクティブ化の日付に関係なく。
  • コードが送信されなかった場合、または送信されたコードが見つからない場合、エラーコード201が返されます。
  • アクティブ化されたコードはデバイスと照合され、アクティブ化中に保存されたものと異なるユニークデバイス識別子が送信された場合、エラーコード202が返されます。
  • 送信されたコードに有効期限がなく、すべての前のチェックが合格した場合、コード101が返されます。
  • コードが時間制限されている場合、チェックが行われます。キーが有効期限切れでない場合、コード101が返されます。コードが期限切れの場合、エラーコード203が返されます。
  • このタイプのアプリケーションでは、コードをデバイスにバインドする必要があります。ユニークなデバイスIDが送信されていない場合、エラーコード304が返されます。

永続的なコードを持つアプリケーションの場合、購入時のコードの可用性のみがチェックされます。 コードが見つかれば、コード101が返されます。コードが見つからない場合、エラーコード201が返されます。

寄付計算方法を持つアプリケーションの場合、コードはチェックされません。 コード101が常に返されます。

前のチェックに合格していない場合、テスト期間がチェックされます。 デバイスが最初に接触してからの経過時間が現在のアプリケーション設定よりも長い場合、エラーコード204が返されます。 試用期間がまだ終了していない場合、エラーコード102が返されます。

アプリケーションIDのみが送信され、アンロックコードもユニークデバイスIDも送信されない場合、エラーコード303が返されます。

返されたレスポンスが500の場合、[email protected]にサポートに連絡する必要があります

以下にすべての返されるコードの表があります:

返却 メッセージ
101 期間に応じた価格計算価格に応じた期間計算の計算方法:
  • 永久アクティブ
{
	"response":101,
	"msg":"Active forever",
	"expires":0
}
  • [日付]までアクティブ
{
	"response":101,
	"msg":"Active until 9 Jan 2027",
	"expires":1799529377
}
永続的なコード:
{
	"response":101,
	"msg":"The code check was successfull",
	"expires":0
}
寄付:
{
	"response":101,
	"msg":"No code check required",
	"expires":0
}
102
{
	"response":102,
	"msg":"Trial period expires in 5h 58m",
	"expires":1779506097
}
201
{
	"response":201,
	"msg":"Code not found"
}
202
{
	"response":202,
	"msg":"Used on the another device"
}
203
{
	"response":203,
	"msg":"Expiration: 20 Apr 2026",
	"expires":1776719777
}
204
{
	"response":204,
	"msg":"Trial period expired"
}
301
{
	"response":301,
	"msg":"Application not found"
}
302
{
	"response":302,
	"msg":"Term undefined"
}
303
{
	"response":303,
	"msg":"Not enough arguments"
}
304
{
	"response":304,
	"msg":"Device is nesessary"
}
401
{
	"response":401,
	"msg":"Error code saving"
}
402
{
	"response":402,
	"msg":"Error device saving"
}
500
{
	"response":500,
	"msg":"Unknown error"
}
応答の確認

次に、Pay-to-use APIサーバーからの応答を確認する必要があります:

/source/background.mc
function onReceive(responseHeader, data) as Void {
	if (responseHeader == 200) { Toybox.Background.exit(data); }
}

すべてのヘッダーとコードを確認し、ユーザーの利便性のために独自のメッセージを表示することができますが、最も単純な形式では、確認は次のようになります:

/source/app.mc
function onBackgroundData(data) as Void {
	if (data.hasKey("response")) {
		if (data.hasKey("msg")) {
			// "UnlockResult"という名前のプロパティフィールドでdata["msg"]を表示することができます。
			Application.Properties.setValue("UnlockResult", data["msg"]);
		}
		if (data["response"].toString().substring(0, 1).equals("2")) {
			// コードの検証に失敗しました
			// 有料機能は利用できません
			...
		} else {
			// コードのチェックが成功したか、エラーがあなたの不具合またはAPIの不具合です
			// 有料機能が利用可能です
			...
		}
	}
}

ロック解除コード

このセクションに移動すると、アンロックコードのリストが表示されます。

アンロックコードのリスト

トップの検索バーで電子メールフィールドまたはコードを検索できます。見つかったコードはリストに表示されます。電子メールまたはコードの全体または一部を検索基準として使用できます。一致する部分は色で強調表示されます。検索とフィルターは同時に動作し、互いを排除しません。

最後に使用したフィルターはユーザーのために保存されます。つまり、次回ページにアクセスすると、最後に使用したフィルターが自動的に適用されます。アンロックコードのリストには、以下のフィルターがあります:

  • - アンロックコードのリストで表示するテーブル列を選択します。
  • アプリケーション - 選択したアプリケーションのアンロックコードのみを表示します。
  • 状態 - 選択したステータスにあるアンロックコードのみを表示します。

アンロックコードのテーブルの列のリスト:

  • アプリケーション - あなたのアプリケーション。リンクをたどってその設定を編集できます。
  • コード - アンロックコード。
  • Eメール - アンロックコードの登録に関連付けられたメールアドレス。このアドレスは、ウェブサイトの私の購入セクションで顧客のアンロックコードを検索するために使用されます。このセクションはユーザーにアクセス可能です。
  • 期間 - 送信されたコードの有効期間(アプリケーション設定で指定)。コードの有効期間は、その作成時点でのアプリケーション設定の条件に対応して設定されます。
  • 状態 - アンロックコードのステータス。 アンロックコードのステータス 参照)
  • 作成済み - アンロックコードの作成日。
  • アクティブ化 - コードのアクティベーション日付。この特定のユーザーデバイスが最初にPayToUse APIサービスに連絡し、このコードを送信した時点で設定されます。コードのステータスはアクティブ化に変更されます。非アクティブなコードのみをアクティベーションできます。異なるIDを持つデバイスがアクティブなコードを送信した場合、APIはエラー202を返します。1つのコードには1つのデバイスのみをリンクできます。
  • 有効期限 - コードのアクティベーションが有効期限切れになる日付。コードのアクティベーション時に有効期限が設定されるコードに対して設定されます。無期限の場合は空白のままです。
  • 削除済み - コードの削除日付。削除時にコードのステータスが不明に設定されます。
  • 支払い # - 支払いの一意のシーケンス番号。リンクをクリックして支払いの詳細を表示できます。
  • アンロックコードに関する操作用のボタン。例えば、削除。

アンロックコードのステータス

アンロックコードはそのライフサイクルの中で異なる状態を経験し、それらはコードのステータスによって追跡することができます。

状態 説明
利用可能 このステータスは、アンロックコードに対して何のアクションも実行されていない場合、またはデバイスのリンクがコードに対してリセットされた場合に割り当てられます。
アクティブ化 このステータスは、設定されたアクティベーション日付を持つコードに対して設定されます。デバイスが初めてPayToUse APIサービスに正常にアクセスした時にアクティベーション日付が設定されます。また、コードのアクティベーション時にコードの有効期限も設定されます。
期限切れ このステータスは、期限切れのコードに設定されます。デバイスからコードのリンクを解除しても、コードの有効期限はリセットされません。このステータスのコードを確認すると、エラー203が返されます。 API側のチェック 参照)
不明 このステータスは、コードが削除された時に設定されます。このステータスのコードを確認すると、エラー201が返されます。 API側のチェック 参照)

支払い

このセクションに移動すると、ユーザーの支払いのリストが開きます。

支払いを受け取るために以下の支払いシステムが使用されています:

システム 説明
支払いシステムの手数料は、成功したカードチャージごとに2.9% + 0.30 USDからかかります。カード、ウォレット、その他の支払いオプションがサポートされています。手数料は支払い方法に依存し、カード支払い手数料と異なる場合があります。支払いシステムが請求する手数料の詳細については、支払いシステムのウェブサイトで確認できます。
支払いシステムの手数料は、成功した支払いごとに3.4% + 0.30 USDからかかります。カードとPayPalがサポートされています。支払いシステムが請求する手数料の詳細については、支払いシステムのウェブサイトで確認できます。
支払いシステムの手数料は、成功した支払いごとに3.9%からかかります。カードおよびその他の支払いオプションがサポートされています。手数料は支払い方法に依存します。支払いシステムが請求する手数料の詳細については、支払いシステムのウェブサイトで確認できます。

支払いシステムの手数料を差し引いた後、PayToUseは13%の手数料を請求します。手数料を削減するために常に取り組んでいます。

支払いシステムで紛争や払い戻しが発生した場合、支払いシステムのペナルティが開発者に再発行されます。したがって、このような状況が発生しないようにする必要があります。紛争がある場合、PayToUseは手数料を請求しません。

支払いリスト

トップの検索バーでメールフィールドまたは送信されたコードを検索できます。見つかった支払いはリストに表示されます。メールアドレスまたは送信されたコードの全体または一部を検索条件として使用できます。一致するものは色で強調表示されます。検索とフィルタは同時に動作し、互いに排他的ではありません。

ユーザーのために最後に使用されたフィルタが保存されます。つまり、次回ページに入ると、最後に使用されたフィルタが自動的に適用されます。支払いのリストには以下のフィルタがあります:

  • - 支払いリストに表示するテーブル列を選択します。
  • アプリケーション - 選択したアプリケーションの支払いのみを表示します。
  • システム - 選択した支払いシステムからの支払いのみを表示します。
  • 状態 - 選択したステータスの支払いのみを表示します。

支払いテーブルの列のリスト:

  • アプリケーション - あなたのアプリケーション。リンクをたどってその設定を編集できます。
  • # - 支払いの一意の連番です。ユーザーが支払いフォームから支払いページに移動する際に、支払いシステムで自動的に割り当てられます。支払いの詳細を表示するにはリンクをクリックしてください。
  • コメント - 支払いフォームに入力されたユーザーからのメッセージ。
  • システム - ユーザーが選択した支払いシステム。
  • 状態 - 支払いのステータス。 支払いのステータス 参照)
  • Eメール - 支払いフォームに記入されたユーザーのメールアドレス。
  • 期間 - 送信されたコードの有効期間(アプリケーションの設定で指定)。
  • 作成済み - 支払いの作成日。
  • 請求金額 - ユーザーに請求された支払いの金額。アプリケーションの設定によって支払いフォームに指定されます。
  • 支払い日 - 支払い日。
  • 支払い金額 - 支払いシステムによって確認された支払いの金額。
  • 送信されたコード - ユーザーに送信されたコード。
  • 利用可能な金額 - 出金可能額。
  • 支払い金額 - 支払いのための引き出し資金の金額。

支払いに変更を加えることはできません。

支払いのステータス

支払いはそのライフサイクルの中で異なる状態に移行し、支払いのステータスで追跡できます。

状態 説明
未完了 このステータスは、何らかのアクションが行われていない支払いに割り当てられます。支払いは、ユーザーが支払いフォームから支払いシステムのフォームに切り替わるとすぐに作成されます。支払いには一意のシリアル番号が割り当てられ、支払いの基本的な属性(金額、支払いシステム、日付)が設定されます。
成功 このステータスは、支払いシステムから肯定的な応答を受けた支払いに割り当てられます。次のステップは、生成されたコードやその他のデータ(アプリケーション設定に依存)を含むユーザーへのメールの送信です。このステータスの支払いが保持されている場合、後続のアクションが実行されていない可能性があるため、特別な注意が必要です。
エラー このステータスは、支払いシステムから否定的な応答を受けた支払いに割り当てられます。その後のステップは実行されません。支払いシステム側のステータスが遅延で処理される可能性があるため、このような支払いに特別な注意が必要です。
保留中 このステータスは、支払いシステムから肯定的な応答を受け、その後のすべてのステップが正常に完了した支払いに割り当てられます。このステータスの支払いに対しては、引き出しは利用できません。支払いは7日後に自動的に次のステータスに移行します。
利用可能 このステータスの支払いに対しては引き出しが可能です。
送信中 このステータスは、次回の引き出しに含まれる支払いに有効です。引き出しがキャンセルされた場合や拒否された場合、支払いのステータスは利用可能に戻ります。
送信済み このステータスは、引き出しが行われた支払いに有効です。資金の受領確認が保留中です。
完了済み このステータスは、成功した引き出しを持つ支払いに有効です。関連するセクションで引き出しを確認することで、ステータスを手動で設定することができます。支払いの引き出し後、14日後に自動的にステータスが変更されます。
払い戻し済み 返金が行われた支払いはこのステータスに移行します。返金時には手数料が発生します。手数料は引き出し金額から差し引かれます。

引き出し

このセクションに移動すると、引き出しリストが表示されます。

引き出しリスト

最後に使用したフィルターがユーザーのために保存されます。つまり、次回ページにアクセスすると、最後に使用したフィルターが自動的に適用されます。引き出しリスト用のフィルターは以下の通りです:

  • - 引き出しリストで選択した列のみ表示します。
  • 状態 - 選択したステータスにある引き出しのみ表示します。

引き出しテーブルの列の一覧:

  • # - 引き出しの固有シーケンス番号。引き出しを保存すると自動的に割り当てられます。リンクをクリックして引き出しの詳細を表示できます。
  • 状態 - 引き出しのステータス。 引き出しステータス 参照)
  • 作成済み - 引き出しリクエストの日付。
  • 金額 - 引き出し金額。
  • 引き出し - 引き出しが送信された日付。
  • 出金に関連するアクションのボタン。例えば、確認。

出金が送信済みの状態の場合、出金を確認できます。

引き出しステータス

出金のライフサイクル中、異なる状態になります。これらの状態は、出金のステータスで追跡できます。

状態 説明
保留中 出金作成時にステータスが割り当てられ、何のアクションも行われていない出金です。
キャンセル済み キャンセルされた出金にはこのステータスが割り当てられます。キャンセルはさまざまな理由で行われます。たとえば、資金の受け取り方法が指定されていない場合などです。この出金からのすべての支払いは利用可能の状態に移行し、再度出金可能になります。
送信済み 出金が送信されたときに資金の出金のためのステータスが設定されます。
完了済み 開発者が受け取りを確認するために手動で出金が受信された場合、または送信後14日以内に自動的に設定される手動出金のステータスが設定されます。
拒否済み 送金後、銀行や支払いシステムが資金を返還した場合に出金のステータスが設定されます。この出金からのすべての支払いは利用可能のステータスに移行し、再度出金可能になります。

API

概要

API PayToUseは次の機能を実行します:

  1. アンロックコードのアクティベーション状態をチェックし、必要に応じてアクティベーションします。
  2. NightScoutアプリから血糖値データを取得します。
  3. 指定された場所の現在の天気データを取得します。

すべての情報は1回のリクエストで要求して返すことができます。

APIエンドポイント

次のいずれかのエンドポイントを使用できます:

  • https://api.pay-to-use.com
  • https://api.p2u.io

両方のエンドポイントはGETリクエストとPOSTリクエストを処理します。

リクエストパラメータ

  • device: 文字列 (必須) — デバイスの一意識別子
  • app: 整数 (必須) — あなたのアプリケーションID
  • model: 文字列 (オプション) — アプリを使用するデバイスの統計情報を収集して表示するために必要なデバイスモデルコード
  • code: 文字列 (オプション) — アンロックコード
  • bg: 連想配列 (オプション) — NightScoutアプリから血糖レベルをリクエストするためのデータ
    • url: 文字列 (オプション) — NightScoutアプリのアドレス
  • weather: 連想配列 (オプション) — 現在の天気をリクエストするためのデータ
    • appid: 文字列 (オプション) — 天気APIアクセスキー
    • lat: 浮動小数点数 (オプション) — 緯度
    • lon: 浮動小数点数 (オプション) — 経度
    • provider: 整数 (オプション) — 天気プロバイダー

サポートされている天気プロバイダーのリスト

1. OpenWeatherMap

  • 説明: OpenWeatherMapは、リアルタイム気象データ、歴史的データ、16日間の予報を含む世界的な気象データを提供しています。広い地理的カバレッジと頻繁な更新により、OpenWeatherMapは現在の気象と拡張予報の両方が必要なアプリケーションの人気の選択肢です。
  • 提供されるデータ: リアルタイム気温、湿度、風速、空気質、降水確率、その他。現在のデータと予報データの両方を提供します。選定された場所の分単位の気象データを含みます。
  • プロバイダー選択: リクエストの「weather」セクションに「provider = 1」を含めることで、OpenWeatherMapを天気情報プロバイダーとして選択できます。
  • 使用上の注意: 無料プランと有料プランを用意しており、APIキーによる認証を通じてデータにアクセスできます。有料プランでは、高度なデータレイヤーやプレミアム機能をご利用いただけます。
  • APIドキュメント: こちらからご利用いただけます。

2. QWeather

  • 説明: QWeather(別名:HeWeather)は、中国を中心とした包括的な気象データを提供するほか、海外のデータも取り扱っています。リアルタイムの天気、予報、大気質情報、警報など、詳細な情報を幅広く提供しています。
  • 提供されるデータ: 現在の気温、湿度、UV指数、大気汚染レベル、日別および時間ごとの予報に加え、悪天候に関する警報も提供しています。詳細な大気質データと、刻々と変化する気象状況のリアルタイム更新で知られています。
  • プロバイダー選択: リクエストの「weather」セクションに「provider = 2」を含めることで、QWeatherを天気情報プロバイダーとして選択できます。
  • 使用上の注意: QWeatherでは、無料プランと有料プランのAPIアクセスが提供されています。無料プランではデータに制限がありますが、有料プランではより多くのデータポイントや地域をカバーできるようになります。
  • APIドキュメント: こちらからご利用いただけます。

3. MET Weather (MET Norway)

  • 説明: ノルウェー気象庁(MET Norway)が提供する「MET Weather API」は、ノルウェーおよび北欧地域に関する予報、過去データ、特定データなど、多様な公開気象データへのアクセスを可能にします。その正確性と透明性で定評のあるMET Weatherは、信頼性の高い気象データを必要とするアプリケーションに最適です。
  • 提供されるデータ: 現在の気象状況、予報、降水量、気温、風速データ、およびUV指数。MET Weatherは北欧地域に特化したデータを提供するほか、世界各国の気象情報にも対応しています。
  • プロバイダー選択: リクエストの「weather」セクションに「provider = 3」を含めることで、気象プロバイダーとしてMET Weatherを選択できます。
  • 使用上の注意: MET Weatherが提供するすべてのデータは、クリエイティブ・コモンズ・ライセンスに基づき、非営利・営利を問わず無料で利用可能です。MET Norwayは環境データの提供で定評があり、特にヨーロッパにおいて信頼されるプロバイダーとなっています。
  • APIドキュメント: こちらからご利用いただけます。

リクエストの例

/source/background.mc
function onTemporalEvent() as Void {
	var ds = System.getDeviceSettings();
	if (!ds.phoneConnected) { // リクエストを送信するために、デバイスがスマートフォンに接続されているかを確認します
		return;
	}

	var id = ds.uniqueIdentifier;
	if (id == null) { // デバイスに一意の識別子が割り当てられていることを確認します
		return;
	}

	var request = {};

	var lockCheck = Application.Storage.getValue("LastCodeCheckTimestamp");
	if (lockCheck == null || lockCheck <= Time.now().value()) { // 必要に応じてコードを送信します
		request.put("code", Application.Properties.getValue("UnlockCode"));
	}

	var ns_url = Application.Properties.getValue("NS");
	if (!ns_url.equals("")) { // 必要に応じてNightScoutアプリのURLを送信します
		request.put("bg", { "url" => ns_url });
	}

	var wP = Application.Properties.getValue("Weather");
	if (wP != 0) { // 必要に応じて、天気情報のリクエストパラメータを送信します
		var lat = Application.Properties.getValue("latitude");
		var lon = Application.Properties.getValue("longitude");
		if (!lat.equals("") && !lon.equals("")) {
			request.put("weather", {
				"appid" => Application.Properties.getValue("appID"),
				"lat" => lat,
				"lon" => lon,
				"provider" => wP
			});
		}
	}

	if (!request.isEmpty()) {

		// 必要なリクエストパラメータを入力します
		request.put("device", id);
		request.put("app", p2uAppID); // あなたのアプリケーションID
		request.put("model", ds.partNumber);

		Toybox.Communications.makeWebRequest(
			"https://api.p2u.io", // API エンドポイント
			request,
			{
				:method => 3, // Communications.HTTP_REQUEST_METHOD_POST
				:headers => {
					"Content-Type" => 1 // Communications.REQUEST_CONTENT_TYPE_JSON
				},
				:responseType => 0 // Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON
			},
			method(:onReceive)
		);
	}
}

APIレスポンス

このAPIは、ロック解除の状態、血糖値、および天気に関する情報を含むJSONオブジェクトを返します。

レスポンスパラメータ

ロック解除コードの確認結果(リクエストが送信された場合):

  • response: 整数 — 戻り値
  • msg: 文字列 — 検証結果に関するお知らせ
  • expires: 整数 — コードの有効期限のタイムスタンプ(UNIXTIMESTAMP形式)
  • qr: array — 購入用、またはシリアル番号の確認用のQRコード(該当する場合)

NightScoutアプリの応答(リクエストが送信された場合):

  • bg: 連想配列 — NightScoutアプリからのフォーマット済み応答
    • value: 整数 — 血糖値(mg/dL)
    • date: 整数 — コードの有効期限のタイムスタンプ(UNIXTIMESTAMP形式)
    • direction: 文字列 — 血糖値の変化の傾向

Weather APIのレスポンス(リクエストが送信された場合):

  • weather: 連想配列 — Weather APIからのフォーマット済み応答
    • provider: 整数 — 気象データ提供元の識別子
    • weather: array — 現在の気象状況。1つまたは2つの値が返される場合があります。2つの値が返された場合、それらは昼と夜の気象状況を表します
    • temp: 浮動小数点数 — 現在の気温(摂氏)
    • feels_like: 浮動小数点数 — 体感温度(摂氏)
      Внимание! Отсутствует для MET Norway
    • pressure: 整数 — 気圧(hPa)
    • humidity: 整数 — 湿度(%)
    • precipitation: 整数 — 降水確率(%)
      Внимание! Отсутствует для MET Norway
    • wind: 整数 — 風向(度)
    • wind_speed: 浮動小数点数 — 風速(m/s)
    • temp_low: 浮動小数点数 — 今日の最低気温(摂氏)
    • temp_high: 浮動小数点数 — 今日の最高気温(摂氏)
    • sunrise_today: 整数 — 今日の日の出時刻(UNIXTIMESTAMP形式)
    • sunset_today: 整数 — 今日の日没時刻(UNIXTIMESTAMP形式)
    • sunrise_tomorrow: 整数 — 明日の日の出時刻(UNIXTIMESTAMP形式)
    • sunset_tomorrow: 整数 — 明日の日没時刻(UNIXTIMESTAMP形式)
    • aqi: 連想配列 — 大気質指数
      • level: 整数 — 大気質指数レベル
      • value: 整数 — 大気質指数

レスポンスの例

https://api.p2u.io
{
	"response": 103,
	"msg": "Free for beta tester",
	"expires": 0,
	"qr": [
		"11111110111011010110101111111",
		"10000010111001001101001000001",
		"10111010101100110110101011101",
		"10111010110101000001001011101",
		"10111010000001010100001011101",
		"10000010100110001101001000001",
		"11111110101010101010101111111",
		"00000000010010110111100000000",
		"11001110000100100100100101111",
		"11111100011011011010011111111",
		"01111011100111111100101000001",
		"01111100101100110111011011011",
		"00110110101010100101110000010",
		"11001000010001011000001011111",
		"01101010001001110100000001101",
		"10111101100010100101100110011",
		"01010111111100110100100100010",
		"10000100111011011000101111011",
		"00000110110110110100100000101",
		"00111100011100001100101100011",
		"11110111110010100111111111001",
		"00000000111001011101100010001",
		"11111110010001011111101011101",
		"10000010100010100111100010010",
		"10111010101101100111111111001",
		"10111010010010110000010000001",
		"10111010001111111110000001111",
		"10000010111101011111101101011",
		"11111110100011011110110010010"
	],
	"bg": {
		"value": -102,
		"date": 1730546101,
		"direction": ""
	},
	"weather": {
		"provider": 1,
		"weather": [
			89
		],
		"temp": 0.27,
		"feels_like": -3.14,
		"pressure": 999,
		"humidity": 78,
		"precipitation": 0,
		"wind": 120,
		"wind_speed": 2.96,
		"temp_low": -3.8,
		"temp_high": 0.27,
		"sunrise_today": 1730527969,
		"sunset_today": 1730551770,
		"sunrise_tomorrow": 1730614492,
		"sunset_tomorrow": 1730638051,
		"aqi": {
			"level": 1,
			"value": 38
		}
	}
}

注釈

  • bg」を含むリクエストを行うには、NightScoutアプリへの接続が必要です。
  • コードが指定されたリクエストについては、APIが自動的にコードのステータスを確認し、非アクティブな場合は有効化します。
  • APIのパラメータは、機能性、互換性、およびセキュリティの向上を図るため、随時更新または変更される場合があります。統合や利用に影響を与える可能性のある変更がないか、定期的にAPIドキュメントを確認することをお勧めします。

ガーミン

Garmin SDK気象機能と定数の詳細については、このリンクを参照してください。選択された気象プロバイダーに応じて、APIから取得した値またはGarmin SDKの気象機能の結果を保存して、画面に表示される値の一貫性を確保することができます。

ID 説明
0 クリア
0x53

0x54
40 フェア
23 概ね晴れ
0x55

0x56
1 ところどころ曇り
0x57

0x58
22 所々晴れ
2 ほぼ曇り
0x59
52 薄い雲
20 曇り
0x5A
45 曇り、雨の可能性がある
31 小雨
0x3E
14 小雨
0x42
24 小雨
3
0x43
25 にわか雨
27 にわか雨の可能性がある
0x46
11 所によりにわか雨
15 大雨
26 激しい雨
28 雷雨の恐れ
0x36

0x37
12 所により雷を伴う雨が降る
0x38
6 雷雨
0x39
8 フォッグ
0x4E
9 かすんだ
29
39 かすみ
30 ほこり
0x4F
35
33 喫煙者
38 火山灰
37 砂嵐
13 不明な降水量
5 風の強い
0x52
36 スコール
48 小雪
32 竜巻
0x50
41 ハリケーン
42 熱帯低気圧
50 みぞれ
0x45
7 雨や雪の混じった天気
18 小雨、小雪
19 大雨・大雪
21 雨、雪
49 凍雨
44 雨や雪の可能性がある
47 曇り、雨または雪の可能性がある
34 アイス
51 氷と雪
43 雪の可能性がある
0x4C

0x4D
16 小雪
46 曇り、雪の可能性がある
0x4A
4 スノー
17 大雪
0x4B
10
0x3A

天気マップを開く

例として、こちらのOpenWeatherMap用アイコンセットをご覧ください。

ID 説明
2xx 雷雨
200 小雨を伴う雷雨
0x36

0x37
201 雷雨
0x38
202 激しい雨を伴う雷雨
210 軽い雷雨
211 雷雨
0x39
212 激しい雷雨
0x3B
221 激しい雷雨
230 小雨が降る雷雨
0x3A
231 小雨が降る雷雨
232 激しい霧雨を伴う雷雨
3xx 小雨
300 小雨がちらつく
0x3C

0x3D
301 小雨
0x3E
302 激しい霧雨
0x3F
310 小雨
0x40
311 小雨
312 激しい霧雨
0x41
313 にわか雨や霧雨
314 激しいにわか雨と霧雨
321 小雨
5xx
500 小雨
0x42
501 小雨
0x43
502 激しい雨
0x44
503 非常に激しい雨
504 豪雨
511 凍雨
0x45
520 小雨
0x46
521 にわか雨
522 激しいにわか雨
531 しとしとと降る雨
6xx スノー
600 小雪
0x4C

0x4D
601 スノー
0x4A
602 大雪
611 みぞれ
0x45
612 小雨、みぞれ
613 みぞれ
615 小雨や小雪
616 雨と雪
620 小雪
0x4B
621 雪がちらつく
622 激しい雪の降り
7xx 雰囲気
701
0x4E
711 喫煙者
0x4F
721 かすみ
731 砂塵の渦
741 フォッグ
751
0x4F
761 ほこり
762 火山灰
771 スコール
0x52
781 竜巻
0x50
800 クリア
800 晴天
0x53

0x54
80x クラウド
801 雲がまばら 11~25%
0x55

0x56
802 所により雲が広がる(25~50%)
0x57

0x58
803 所々で雲が広がる 51~84%
0x59
804 曇り 85~100%
0x5A

QWeather

こちらのリンクをクリックすると、オリジナルの天気アイコンセットをご覧いただけます

ID 説明
302 雷雨
0x36

0x37
303 激しい雷雨
0x38
310 豪雨
0x39
317 にわか雨から激しい雨
304
0x3A
311 激しい雨
0x3B
312 激しい雨
318 激しい雨から猛烈な雨
309 小雨
0x3C

0x3D
404 みぞれ
0x3E
305 小雨
0x42
314 小雨から中雨
306 小雨
0x43
315 にわか雨から激しい雨
399
308 豪雨
0x44
316 激しい雨から豪雨へ
313 凍雨
0x45
405 雨と雪
300 シャワー
0x46
301 激しいにわか雨
307 豪雨
350 シャワー
351 激しいにわか雨
400 小雪
0x4C

0x4D
408 小雪から中雪
499 スノー
401 雪がやや降る
0x4A
402 大雪
409 中程度から大雪
410 大雪から吹雪へ
403 吹雪
0x4B
406 雨や雪
407 雪の舞
456 雨や雪
457 雪の舞
503
0x4E
504 ほこり
507 砂嵐
508 砂嵐
511 中程度の霞
512 濃い霧
513 深刻なスモッグ
500
0x4F
501 フォッグ
502 かすみ
509 濃い霧
510 濃い霧
514 濃霧
515 非常に濃い霧
100 サニーブルー
0x53

0x54
150 クリア
101 曇り
0x55

0x56
151 曇り
102 少し雲がある
0x57

0x58
152 少し雲がある
103 曇り時々晴れ
0x59
153 曇り時々晴れ
104 曇り
0x5A

MET天気

例として、こちらのMET Weather用アイコンセットをご覧ください。

ID 説明
lightrainshowers 小雨が降る
0x36

0x37
lightrainshowersandthunder 小雨が降ったり止んだりし、雷が鳴る
rainshowersandthunder にわか雨と雷
heavyrainshowersandthunder 激しい雨と雷
heavyrainandthunder 激しい雨と雷
0x38
rainandthunder 雨と雷
lightrainandthunder 小雨と雷
0x39
heavysleetandthunder 激しいみぞれと雷
0x3B
lightsleetandthunder 小粒の霙と雷
0x3A
lightssleetshowersandthunder 小粒の霙の降りや雷
sleetandthunder みぞれと雷
lightsleetshowers 小粒の霙がちらつく
0x3C

0x3D
sleetshowers みぞれの降り方
sleetshowersandthunder みぞれの降りやみと雷
heavysleetshowers 激しいみぞれの降り
heavysleetshowersandthunder 激しいみぞれの降りや雷
lightsleet 小粒のみぞれ
0x3E
sleet みぞれ
0x3F
heavysleet 激しいみぞれ
0x45
lightrain 小雨
0x42
rain
0x43
heavyrain 大雨
0x44
rainshowers にわか雨
0x46
heavyrainshowers 激しいにわか雨
heavysnow 大雪
0x4B
heavysnowandthunder 大雪と雷
snow スノー
snowandthunder 雪と雷
lightsnowshowers 小雪がちらつく
0x4C

0x4D
lightssnowshowersandthunder 小雪のちらつきと雷
snowshowers にわか雪
snowshowersandthunder にわか雪と雷
heavysnowshowers 激しい雪の降り方
heavysnowshowersandthunder 激しい雪の降りや雷
lightsnow 小雪
0x4A
lightsnowandthunder 小雪と雷
fog フォッグ
0x4F
clearsky 晴天
0x53

0x54
fair フェア
0x55

0x56
partlycloudy ところどころ曇り
0x57

0x58
cloudy 曇り
0x59