電子キオスク API v2.0
APIゲームカタログ
このAPIはゲームカタログを提供するように設計されています。例えば、エクソーラシステムで使用できる全プロジェクトの一覧です。APIはプロジェクト名やプロジェクトアイコン、決済パラメータなど各プロジェクト基本情報を提供します。上記の情報は、プロジェクトの決済ページの作成で使用可能です。
ゲームカタログAPIは、電子キオスク経由の決済とUIに「ゲームボタン」を配置するときに役立ちます。電子キオスクの画面上で「ゲームボタン」に置き換えた通常のXsollaボタンを差し替えることで、ユーザーは好みのプロジェクトで簡単かつ常に決済できます。
APIのURL: https://api.xsolla.com/projects/list/index.php
フォーマットのリクエスト
パラメータをリクエストしてゲーム一覧を取得
| 項目名 | 種類 | 説明 | 例 |
|---|---|---|---|
| ID | integer | 決済システム相手方ID。 必須。 | 184 |
| sign | integer | 不正アクセス防止署名。 必須。 | 0a8d9fb24fcbac2efafec5e51045d05c |
署名の生成
署名は決済の確認と実行中に、安全を確保します。文字列のMD5ハッシュアルゴリズムから形成され、上述のパラメータを連結して生成されます。さらに下記の順番で「|」を使って区切られます。
- php
1md5(<ID>|<secret_key>)
secret_key: 相手方の秘密鍵。
例: 秘密鍵"SecretKey"がある相手方#184用の署名は、次のように形成されます:
$sign=md5(“184|SecretKey”)=0a8d9fb24fcbac2efafec5e51045d05c
リクエスト例:
https://api.xsolla.com/projects/list/index.php?id=184&sign=0a8d9fb24fcbac2efafec5e51045d05c
レスポンス形式
リクエストへのレスポンスは、ゲーム一覧と各ゲームの基本情報が載ったXML形式で送信されます。XMLの構造は次のとおりです:
- php
1<projectlist>
2 <project>
3 <id>12345</id>
4 <name>Game</name>
5 <virtual_currency>Game of currency</virtual_currency>
6 <logo>http://static.xsolla.com/img/game/12345.gif</logo>
7 <limits>
8 <min>Minimum of amount game of currency</min>
9 <max>max of amount game of currency</max>
10 </limits>
11 <prompt>enter nickname of personage</prompt>
12 <v1>nickname of personage</v1>
13 </project>
14 ...
15</projectlist>
項目の説明
| 項目名 | 種類 | 説明 |
|---|---|---|
| projectlist | array | プロジェクト一覧(project)。プロジェクト項目は下記で説明します。 |
| project | string | 次の項目を含みます:id、name、virtual_currency、logo、limits、prompt、“v1”、“v2”、“v3”。それぞれ下記で説明します。 |
| id | integer | ゲームID。 |
| name | string | 名前。 |
| virtual_currency | string | 仮想通貨名。 |
| logo | string | ゲームロゴのURL。 |
| limits | array | min項目とmax項目。プロジェクトにlimitsが設けられていない場合、このセクションは表示されません。' |
| min | string | 仮想通貨の最小量。 |
| max | string | 仮想通貨の最大量。 |
| prompt | string | パラメータの入力を要求します。 |
| local | string | インタフェースの言語(ローカリゼーション)。 |
| v1 | string | プロジェクトにある基本のユーザー識別パラメータの入力を要求します。 |
| v2 | string | プロジェクトにある補助のユーザー識別パラメータの入力を要求します。 |
| v3 | string | プロジェクトにある補助のユーザー識別パラメータの入力を要求します。 |
エラーに対するレスポンス形式
エラーが起きた場合、APIはXML形式のメッセージで応答します。
1<error>
2 <description>Incorrect signature</description>
3</error>
| 項目名 | 種類 | 説明 |
|---|---|---|
| error | string | パラメータdescriptionを含みます。下記をご参照ください。 |
| description | string | エラーの説明。 |
エラーの説明
| エラー | 種類 | 説明 |
|---|---|---|
| Incorrect signature | string | 無効な署名が送信されました(sign)。 |
| Temporary technical error | string | 無効な相手方ID(id)かサーバの機能停止、その他エラーです。 |
エージェントと連動
概要
連動する際の選択肢は2つあります:
- エクソーラボタン。こちらのボタンはエージェントに設置されます。エクソーラボタン選択後、ユーザーは事前に受け取った番号を入力して、この番号で決済します。エクソーラボタン経由の支払いを有効にする場合は、
accountの項目を入力してください(project、“v1”、“v2”、“v3"は空欄にします)。account項目はいずれも9文字のエクソーラ番号を入力してください。エクソーラボタン設定の際は、マネージャーに問い合わせてロゴと番号を取得します。 - ゲーム用のボタン。こちらのボタンはエージェント側に配置され、ボタンはそれぞれ別のゲームに対応します。ユーザーは特定のゲームが1つ結びついたボタンをクリックして、ログイン後に自身のアカウントで支払いを実行します。エクソーラボタン経由の支払いを有効にする場合は、
projectと"v1”、“v2”、“v3"の項目を入力してください(account項目は空欄にします)。端末に特定プロジェクト(ゲーム)ボタンがインストールされた後に、ユーザーはproject、“v1”、“v2”、“v3"の項目を入力できます。projectと"v1"の入力は必須ですが、“v2"と"v3"は任意です(項目の有無はプロジェクトそのものに依存します)。ゲームボタンを設定する際は、マネージャーに連絡してゲームのロゴとゲームの内部ID、認証方法(“v1”、“v2”、“v3"の入力ルール)、その他各ゲームの情報を受け取ってください。
ボタンはエージェントのシステムのエレメントで、エクソーラシステムを通して決済を開始させます。
エージェントをエクソーラシステムへ接続する前に、次のことを明確にしてください:
- エクソーラシステムのパートナー番号(種類)。この番号は、エクソーラのカスタマーサクセスマネージャーに問い合わせると受け取れます。
- secret_key-機密文字列パラメータ。デジタル署名(MD5文字列)の生成を必要とします。こちらは、アドミンページかカスタマーサクセスマネージャーを通してご確認いただけます。
APIとの連動は、次のようにHTTPリクエストをAPIゲートウェイへ送ります:
- http
1https://ps.xsolla.com/api/gate
APIはGETリクエストかPOSTリクエストを受け取ります。全パラメータはUTF-8にエンコードされます。一致しないエンコードを使用すると、署名の際に問題が発生します。
フォーマットのリクエスト
エクソーラゲートウェイへのリクエスト形式は3種類あります:
- 利用できる決済の確認(
command=check) - 決済の実行(
command=pay) - 費用とゲーム通貨額を計算(
command=calculate)
order項目は、前回実行した決済の番号が含まれます。Checkコマンド:エクソーラ番号でユーザー認証
| 項目名 | 種類 | 説明 | 例 |
|---|---|---|---|
| command | string | 決済が利用できるか確認。 必須。 | check |
| account | integer | エクソーラ番号(9文字)。 必須。 | check |
| sum | float | 決定済み通貨の支払い額です。区切り記号は「.(記号以降は2文字のみ表示)」。 任意。 | 100.98 |
| type | integer | エクソーラのパートナー番号です。 必須。 | 151 |
| date | string | 日付のフォーマットはYYYYMMDDHHMMSSです。 必須。 | 20060425180622 |
| md5 | string | 署名は未許可のアクセスを防ぐために使用します。 必須。 | 0a8d9fb24fcbac2efafec5e51045d05c |
Checkコマンド:プロジェクト/v1/v2/v3でユーザー認証
| 項目名 | 種類 | 説明 | 例 |
|---|---|---|---|
| command | string | 決済が利用できるか確認。 必須。 | check |
| project | integer | エクソーラシステムのプロジェクトIDです。アドミンページでご確認いただけます。 必須。 | 4783 |
| v1 | string | ユーザー認証パラメータ(通常はゲーム内のニックネーム)。 必須。 | XsollaUser |
| v2 | string | ユーザー認証の追加パラメータ(プロジェクト設定によります)。 任意。 | 0 |
| v3 | string | ユーザー認証の追加パラメータ(プロジェクト設定によります)。 任意。 | 0 |
| sum | float | 決定済み通貨の支払い額です。区切り記号は「.(記号以降は2文字のみ表示)」。 任意。 | 100.98 |
| type | integer | エクソーラのパートナー番号です。 必須。 | 151 |
| date | string | 日付のフォーマットはYYYYMMDDHHMMSSです。 必須。 | 20060425180622 |
| md5 | string | 署名は未許可のアクセスを防ぐために使用します。 必須。 | 0a8d9fb24fcbac2efafec5e51045d05c |
Payコマンド:アカウントでサブスクライバーを認証
| 項目名 | 種類 | 説明 | 例 |
|---|---|---|---|
| command | string | 決済が利用できるか確認。 必須。 | pay |
| account | integer | エクソーラ番号(9文字)。 必須。 | 1234567, 001234567 |
| sum | float | 決定済み通貨の支払い額です。区切り記号は「.(記号以降は2文字のみ表示)」。 必須。 | 100.98 |
| id | string | パートナーシステムにある独自の取引番号。 必須。 | xsollaid1 |
| type | integer | エクソーラのパートナー番号です。 必須。 | 151 |
| date | string | 日付のフォーマットはYYYYMMDDHHMMSSです。 必須。 | 20060425180622 |
| test | boolean | フラグテスト:1の場合はテスト決済、0(既定値)の場合はテスト決済ではありません。 任意。 | 1 |
| md5 | string | 署名は未許可のアクセスを防ぐために使用します。 必須。 | 0a8d9fb24fcbac2efafec5e51045d05c |
Payコマンド:プロジェクト/v1/v2/v3でサブスクライバーを認証
| 項目名 | 種類 | 説明 | 例 |
|---|---|---|---|
| command | string | 決済が利用できるか確認。 必須。 | check |
| project | integer | プロジェクト(ゲーム)番号。 必須。 | 4783 |
| v1 | string | ユーザー認証パラメータ(通常はゲーム内のニックネーム)。 必須。 | XsollaUser |
| v2 | string | ユーザー認証の追加パラメータ(プロジェクト設定によります)。 任意。 | 0 |
| v3 | string | ユーザー認証の追加パラメータ(プロジェクト設定によります)。 任意。 | 0 |
| sum | float | 決定済み通貨の支払い額です。区切り記号は「.(記号以降は2文字のみ表示)」。 任意。 | 100.98 |
| id | string | パートナーシステムにある独自の取引番号。 必須。 | xsollaid2 |
| type | integer | エクソーラのパートナー番号です。 必須。 | 151 |
| date | string | 日付のフォーマットはYYYYMMDDHHMMSSです。 必須。 | 20060425180622 |
| test | boolean | フラグテスト:1の場合はテスト決済、0(既定値)の場合はテスト決済ではありません。 任意。 | 1 |
| md5 | string | 署名は未許可のアクセスを防ぐために使用します。 必須。 | 0a8d9fb24fcbac2efafec5e51045d05c |
order項目は、前回実行した決済の番号が含まれます。Calculateコマンド
| 項目名 | 種類 | 説明 | 例 |
|---|---|---|---|
| command | string | 決済が利用できるか確認。 必須。 | calculate |
| project | integer | プロジェクト(ゲーム)番号。 必須。 | 4783 |
| sum | float | 決定済み通貨の額。区切り記号は「.(記号以降は2文字のみ表示)」。outに明記がない限り必須です。 | 100.98 |
| out | float | ゲーム通貨額。区切り記号は「.(記号以降は2文字のみ表示)」。sumに明記がない限り必須です。 | 10.98 |
| type | integer | エクソーラのパートナー番号です。 必須。 | 151 |
| date | string | 日付のフォーマットはYYYYMMDDHHMMSSです。 必須。 | 20060425180622 |
| md5 | string | 署名は未許可のアクセスを防ぐために使用します。 必須。 | 0a8d9fb24fcbac2efafec5e51045d05c |
MD5項目の生成
署名は安全な決済と、決済の確認を実現します。送信されたすべてのパラメータの値を、リクエストに従う場合と同じ順序で連結することにより引き出された文字列のMD5ハッシュを取ることで生成されます。オプションのパラメータ(存在する場合)および決済システムの秘密鍵は、エクソーラカスタマーサクセスマネージャーから受け取ってください。
Checkコマンド
- php
1<?php
2 $request['command']='check';
3 $request['account']=1234567;
4 $request['sum']=150.75;
5 $request['type']=151;
6 $request['date']='20110117000516';
7 $md5='';
8 foreach ($request as $value) {
9 $md5.=$value;
10 }
11 $request['md5']=md5($md5.$secret_key);
12?>
列:
check1234567150.7515120110117000516test
MD5:
1cad5a2c3457cffa8e857a507a7050ba
Payコマンド
- php
1<?php
2$request['command']='pay';
3$request['account']=1234567;
4$request['sum']=150.75;
5$request['id']=384957;
6$request['type']=151;
7$request['date']='20110117000516';
8$md5='';
9foreach ($request as $value) {
10$md5.=$value;
11}
12$request['md5']=md5($md5.$secret_key);
13?>
列:
pay1234567150.7538495715120110117000516test
MD5:
7cfa05abde4ae2464142bf2ac7a72f32
Calculateコマンド
- php
1<?php
2 $request['command']='calculate';
3 $request['project']=4783;
4 $request['out']=12;
5 $request['type']=151;
6 $request['date']='20110117000516';
7 $md5='';
8 foreach ($request as $value) {
9 $md5.=$value;
10 }
11 $request['md5']=md5($md5.$secret_key);
12?>
列:
calculate47831215120110117000516test
MD5:
e73e11a9cad00e205358e05254905af5
レスポンスコード
システムはXMLレスポンスを生成します。これにはコードステータスresultと記述commentが含まれます。
| 結果 | コメント | 説明 |
|---|---|---|
| 0 | OK | 決済が許可されたか(checkコマンドの場合)、決済が無事、またはすでに完了しています(payコマンドへの場合)。 |
| 1 | technical problem | サービスはメンテナンス中です(時間を置いて再度通知します)。 |
| 11 | type is not exists or disabled | 種類が存在しないか、無効化しています。 |
| 2 | xsolla-number not correct | エクソーラ番号の長さが正しくありません。 |
| 3 | xsolla-number not found | エクソーラ番号が見つかりません。 |
| 4 | Stop | 決済用のエクソーラ番号ではありません。 |
| 5 | sum error | 無効な金額です。 |
| 6 | bonus error | アウトプットエラーです。 |
| 7 | md5 error | MD5のハッシュが一致しません。 |
| 8 | IP error | 禁止されたIPアドレスです。 |
| 9 | request is not correct | 必要なパラメータが存在しないか、指定したコマンドが間違っています。 |
| 10 | project is not exists | プロジェクトが存在しません(または停止状態になっているか、削除されています)。 |
決済システム作動用のAPIレコード
このドキュメントは、決済システムのトランザクションレジストリAPIを使用して、ユーザーがプロジェクトの仮想アイテムやサービスを有料で利用することを想定しいる開発者を対象としています。プロジェクトの仮想製品やサービスの支払い機会をご提供します。このドキュメントを読む場合、API、HTTPリクエスト、ソフトウェア構造に関する基本知識が必要です。
APIとの連動性
- この作業は、サーバ間サーバ統合でのみ作動します。
- パラメータは全て文字コードUTF-8です。
- データが返す形式はcsvです。
APIメソッドの記述
- 取得−決済データの受け取り。
APIのURL
基本URL: https://api.xsolla.com/payments/
URLマスク
- http
1https://api.xsolla.com/payments/v<number versions>/<command>?<parameter1=value1>&<parameter2=value2
取得
全決済システムの指定した相手方の(最終24時間以内)決済データを取得するリクエストを作成します。
APIアクセスの取得
APIへのアクセスを取得する場合は、一意のパートナーIDと秘密パスワードを取得するにはカスタマーサクセスマネージャーまでお問い合わせるか、csm@xsolla.comに電子メールを送信してください。
例のリクエスト
https://api.xsolla.com/payments/v1/Get?date=2013-08-20&id=1234&sign=8f683701c03b03fe49e6ef7bbfafb8fb
パラメータの入力
| 項目名 | 種類 | 説明 | 例 |
|---|---|---|---|
| date | string | 応答は24時間以内の決済データを含みます。日付はYYYY-MM-DD形式で送信されます(タイムゾーンGMT+4)。 | 2013-08-20 |
| id | integer | 一意のパートナーIDです。IDを取得するには、カスタマーサクセスマネージャーまでお問い合わせるか、csm@xsolla.comに電子メールを送信してください。 | 1234 |
| sign | string | 不正アクセス防止用の署名です。 | 8f683701c03b03fe49e6ef7bbfafb8fb |
レスポンス
CSV形式で応答します(区切り記号はコンマ「,」を使用):
69927355,95188933,394,2013-08-01T06:49:25+04:00,91.0000,RUB,done
記述項目:
| 項目名 | 種類 | 説明 | 例 |
|---|---|---|---|
| xsolla_id | integer | エクソーラシステム間のトランザクション番号。 必須。 | 12345678 |
| ps_id | integer | トランザクション番号。決済システムから送信されます。 必須。 | 1234 |
| pid | integer | 決済システムID。 必須。 | 64 |
| datetime | string | 決済の時期(タイムゾーン GMT+4)。 必須。 | 2013-08-01T06:49:25+04:00 |
| amount | float | ユーザーが決済した総額。 必須。 | 10.98 |
| currency | string | 支払い通貨。 必須。 | USD |
| status | string | 決済ステータス(支払いが無事完了するとdone、キャンセルされるとcanceledでレポートします)。 必須。 | done |
署名の生成
パラメータはアルファベット順にキーでソートされます。署名は、パラメータ値と秘密鍵が連結した文字列のMD5ハッシュです(秘密鍵はマネージャーから受け取れます)。区切り記号は「|」。
例のリクエスト
1date = 2013-08-20;
2id=1234;
3secret_key=password.
列は次のようになります:
2013-08-20|1234|password
上記文字列のMD5:
e8df0ff2e4360300a5142cc28d86b422
完了コード一覧
| HTTP応答ステータス | エラーメッセージ | エラーの説明 |
|---|---|---|
| 200 | 成功 | |
| 400 | Wrong parameters | 送信されたパラメータは無効です |
| 400 | Wrong ID partner | 相手方が無効です |
| 400 | Wrong date | 無効な日付です |
| 403 | Incorrect sign | 無効な署名です |
| 404 | Unknown command | コマンドが不明です |
| 500 | APIの内部エラーです |
決済システムのトランザクション照合
メール通知経由の照合
トランザクションの照合は、特定形式の添付ファイルをメールで送信して決済システムで行われます。照合の頻度は事前に決定されます。
トランザクション照合のドキュメント形式
トランザクション照合のドキュメント形式:
- ドキュメントはUTF-8にコード化して送信します。
- ドキュメントの形式は.csvです(値をコンマやセミコロンで区切ると、区切り文字として使えます)。
- 添付ファイル付き文書は、以前決済したメールアドレスからstats@xsolla.comへ送信されます。
- メールの件名は"stats registry"です。
- 添付ファイル名はstats_registry_periodです。期間は2つです(形式はYYYY-MM-DD)。start_dateTend_date期間が1日になる場合は(24時間)、Tより後は除外されます。
2010年11月24日の処理したトランザクションの統計。
ファイル名: stats_registry_2010-11-24.csv
2010年10月1日〜11月16日の期間で処理したトランザクションの統計。
ファイル名: stats_registry_2010-01-10T2010-12-16.csv
2011年5月の処理したトランザクションの統計。
ファイル名: stats_registry_2011-05-01T2011-05-31.csv
ドキュメントコンテンツ
| パラメータ | 種類 | 説明 |
|---|---|---|
| const | string | マーチャントシステムのトランザクションID(システムではid)。pidを渡していない場合は必須です。 |
| pid | string | エクソーラシステム内のトランザクションID(リクエストで送信しています)constを渡していない場合は必須。 |
| amount | string | 支払い数量。区切り記号は「.(記号以降は2文字のみ表示)」。 必須。 |
| payout | string | エクソーラの配当量。 必須。 |
| currency | string | 支払い通貨(ISO 4217) 必須。 |
| state | string | 決済ステータス。ステータスがsuccessかcancelledの決済のみ送信されます。キャンセルされた決済は、最初にクライアントが許可したものの、後からキャンセルされた決済です。 必須。 |
| time | string | 決済の日時(YYYY-MM-DD HH:MM:SS)。 必須。 |
| desc | string | 補助パラメータ。例えば、当社がリクエストで渡す決済情報です(email、nick、phone)。 任意。 |
レジストリ例
例1
- http
197035765;6654448;10.00;9.50;RUB;done;2011-09-01 13:30:45;nickname
2
397035766;6634558;150.00;145.00;RUB;done;2011-09-01 16:43:54;vassilliy@mail.ru
例2(決済システムにpidがない場合)
- http
1564;;10.00;9.50;RUB;done;2011-09-01 13:30:45;nickname
2
3456;;150.00;145.00;RUB;done;2011-09-01 16:43:54;vassilliy@mail.ru
例3(descがない場合は、最後にセミコロンを記入)
- http
1564;6654855;10.00;9.50;RUB;done;2011-09-01 13:30:45;
2
3456;4588554;150.00;145.00;RUB;done;2011-09-01 16:43:54;
決済システムAPI経由の照合
トランザクション照合は、決済システムのHTTP(HTTPS)APIでも実行可能です。APIのクエリ後、エクソーラシステムは次のパラメータを受け取る必要があります:
| パラメータ | 種類 | 説明 |
|---|---|---|
| const | string | マーチャントシステムのトランザクションID(システムではid)。pidを渡していない場合は必須です。 |
| pid | string | エクソーラシステム内のトランザクションID(リクエストで送信しています)constを渡していない場合は必須。 |
| amount | string | 支払い数量。区切り記号は「.(記号以降は2文字のみ表示)」。 必須。 |
| payout | string | エクソーラの配当量。 必須。 |
| currency | string | 支払い通貨(ISO 4217) 必須。 |
| state | string | 決済ステータス。ステータスがsuccessかcancelledの決済のみ送信されます。キャンセルされた決済は、最初にクライアントが許可したものの、後からキャンセルされた決済です。 必須。 |
| time | string | 決済の日時(YYYY-MM-DD HH:MM:SS)。 必須。 |
| desc | string | 補助パラメータ。例えば、当社がリクエストで渡す決済情報です(email、nick、phone)。 任意。 |
誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。