# 購入用の決済トークンを作成する 注文とその支払いトークンを生成します。注文はリクエストボディに渡されたアイテムに基づいて生成されます。 決済UIを新しいウィンドウで開くには、次のリンクを使用します:https://secure.xsolla.com/paystation4/?token={token}。そこで、{token}は受信したトークンです。 テスト目的では、次のURLを使用します:https://sandbox-secure.xsolla.com/paystation4/?token={token}。 通知 user.country.valueパラメータは、注文の通貨を選択するために使用されます。ユーザーの国が不明な場合は、 X-User-IpヘッダーにユーザーのIPを指定することもできます。この方法の正しい動作には、これら2つのオプションのいずれかが必要です。選択した通貨は、ペイステーションでの決済方法に使用されます。 Endpoint: POST /v3/project/{project_id}/admin/payment/token Version: 2.0.0 Security: basicAuth ## Path parameters: - `project_id` (integer, required) プロジェクトID。このパラメータは、パブリッシャーアカウントのプロジェクト名の横にあります。 Example: 44056 ## Request fields (application/json): - `custom_parameters` (object,null) キーと値のペアの有効なJSONセットとして表されたカスタムパラメータ。 このフィールドを通じて追加のパラメータを渡すことで、不正対策フィルターを設定することができます。[ペイステーションに関するドキュメントンをご覧ください](https://developers.xsolla.com/ja/doc/pay-station/features/antifraud/)。 Example: {"custom_parameters":{"bool_param":true,"int_param":100,"null_param":null,"string_param":"example"}} - `promo_code` (string) 大文字と小文字を区別する一意のコードです。文字と数字が含まれます。 Example: "WINTER2021" - `purchase` (object, required) - `purchase.items` (array, required) - `purchase.items.quantity` (number, required) アイテムの数量。 Example: 2 - `purchase.items.sku` (string, required) 一意のアイテムID。SKUには、小文字と大文字のラテン英数字、ピリオド、ダッシュ、およびアンダースコアのみが含まれます。 Example: "t-shirt" - `sandbox` (boolean) 支払い処理をテストする場合は、trueに設定します。この場合、https://sandbox-secure.xsolla.comを使用してテスト決済UIにアクセスします。 - `settings` (object) ユーザーの支払いプロセスと決済UIを構成するための設定。 - `settings.currency` (string) ご希望の決済通貨。[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)に従った3文字の通貨コード。[エクソーラがサポートする通貨](https://developers.xsolla.com/ja/doc/pay-station/references/supported-currencies/)の詳細については、ドキュメントを参照してください。 - `settings.external_id` (string) トランザクションexternal ID。 - `settings.language` (string) インターフェース言語。小文字の2文字[言語コード](https://developers.xsolla.com/ja/doc/pay-station/features/localization/)。 - `settings.payment_method` (integer) 決済方法ID。決済方法によっては特定の通貨のみをサポートする場合があるため、決済インターフェースにおける通貨の表示を決定します。 - `settings.redirect_policy` (object) - `settings.redirect_policy.delay` (integer) ユーザーが自動的に戻り先URLにリダイレクトされるまでの遅延期間。 - `settings.redirect_policy.redirect_button_caption` (string) ローカライズされたリダイレクトボタンのキャプション。 Example: "Text button" - `settings.redirect_policy.redirect_conditions` (string) ユーザーがリターンURLにリダイレクトする引き金となる決済状態。 Enum: "none", "successful", "successful_or_canceled", "any" - `settings.redirect_policy.status_for_manual_redirection` (string) ユーザーをリターンURLにリダイレクトしてボタンクリックの表示をトリガーする決済状態。 Enum: "none", "vc", "successful", "successful_or_canceled", "any" - `settings.return_url` (string) ページを使用して決済後にユーザーをリダイレクトします。パラメーターuser_id、foreigninvoice、invoice_idとstatusは、自動的にリンクに追加されます。 - `settings.ui` (object) インターフェイス設定。 - `settings.ui.currency_format` (string) codeに設定すると、決済UIに3 文字の[ISO 4217](https://developers.xsolla.com/ja/doc/pay-station/references/supported-currencies/)通貨コードが表示されます。 デフォルトでは、3文字の通貨コードの代わりに通貨記号が表示されます。 - `settings.ui.desktop` (object) デスクトップ版のインターフェース設定。 - `settings.ui.desktop.header` (object) ヘッダー設定。 - `settings.ui.desktop.header.close_button` (boolean) デスクトップ決済UIに閉じるボタンを表示するかどうか。このボタンは決済UIを閉じて、settings.return_urlパラメータで指定したURLにリダイレクトします。デフォルトはfalseです。 - `settings.ui.desktop.header.is_visible` (boolean) 決済インターフェースにヘッダーを表示するかどうかを示します。 - `settings.ui.desktop.header.type` (string) ヘッダーを表示する方法。compact(プロジェクト名とユーザーIDを隠す)またはnormal(デフォルト)に指定できます。 Enum: "compact", "normal" - `settings.ui.desktop.header.visible_logo` (boolean) trueの場合、ロゴはヘッダーに表示されます。画像をアップロードするには、[パブリッシャーアカウント](https://publisher.xsolla.com/)でプロジェクトを開き、ペイステーション > 設定セクションにアクセスしてください。 - `settings.ui.desktop.header.visible_name` (boolean) ヘッダーにプロジェクト名を表示するかどうかを示します。 - `settings.ui.desktop.header.visible_purchase` (boolean) ヘッダーに購入説明(purchase.description.value)を表示するか示します。デフォルトはtrueです。 - `settings.ui.header` (object) - `settings.ui.header.visible_virtual_currency_balance` (boolean) この要素を決済インターフェースで非示にできるかどうかを示します。 - `settings.ui.is_cart_open_by_default` (boolean) モバイル版の決済UIを開いた時のカート内のアイテムリストの表示。trueの場合、リストは拡張ビューで表示されます。false(デフォルト)またはパラメータが渡されない場合、リストは折りたたまれたビューで表示されます。 - `settings.ui.is_independent_windows` (boolean) 埋め込みランチャーのブラウザ(WebView)から、ユーザーのデフォルトのブラウザにリダイレクトして購入させるかどうか。 - `settings.ui.is_payment_methods_list_mode` (boolean) 決済UIを開く際に、ユーザーの国で利用可能な決済方法のリストを表示するかどうか。falseの場合(デフォルト)、settings.payment_methodパラメータで渡された決済方法、または[PayRankアルゴリズム](https://developers.xsolla.com/ja/solutions/payments/payment-ui-management/top-payment-methods-management/)で選択された方法が表示されます。 - `settings.ui.is_prevent_external_link_open` (boolean) リンクを外部リソースにリダイレクトするかどうかを無効にします。外部リンクをクリックすると、external-link-openイベントがpostMessageメカニズムを介して送信されます。urlパラメータには、リダイレクト先のリンクのアドレスが渡されます。 - `settings.ui.is_show_close_widget_warning` (boolean) 支払いページを閉じる前に、×アイコンの上にカーソルを置いたときに取引処理に関する警告を表示するかどうか。falseが渡された場合、またはパラメータが渡されなかった場合、警告は表示されません。 - `settings.ui.is_three_ds_independent_windows` (boolean) 3-Dセキュア検証が新しいブラウザウィンドウで開くかどうか。セットアップでコンテンツセキュリティポリシー(CSP)が適用される場合は、trueに設定します。 - `settings.ui.layout` (string) 決済UIの主要要素の位置。ゲーム内で決済UIを開いたり、注文や決済方法に関する情報の列を入れ替えたりすることができます。詳細については、[カスタマイズに関する説明](https://developers.xsolla.com/ja/doc/pay-station/features/ui-theme-customization/#pay_station_ui_theme_customization_layout)を参照してください。 Enum: "embed", "column_reverse", "embed_column_reverse" - `settings.ui.mobile` (object) - `settings.ui.mode` (string) 決済UIのインターフェースモード。user_accountのみに指定できます:ヘッダーにはユーザーアカウントのナビゲーションメニューのみが含まれています。ユーザーは商品を選択したり、決済を行うことはできません。このモードは、デスクトップ上でのみ使用できます。 Enum: "user_account" - `settings.ui.theme` (string) 決済UIのテーマ。ライトテーマ(デフォルト)の場合は63295a9a2e47fab76f7708e1、ダークテーマの場合は63295aab2e47fab76f7708e3を指定できます。[カスタムテーマを作成](https://developers.xsolla.com/ja/doc/pay-station/features/ui-theme-customization/#pay_station_ui_theme_customization_in_token)して、そのIDをこのパラメータに渡すこともできます。 Enum: "63295a9a2e47fab76f7708e1", "63295aab2e47fab76f7708e3" - `settings.ui.user_account` (object) ユーザーアカウントの詳細。 - `settings.ui.user_account.info` (object) 私のアカウント ページ。 - `settings.ui.user_account.info.enable` (boolean, required) サブメニューを表示するかどうかを示します。デフォルトではfalseです。 - `settings.ui.user_account.info.order` (integer, required) メニュー内のサブメニューの位置。 - `settings.ui.user_account.payment_accounts` (object) お客様の決済アカウント サブメニュー。 - `settings.ui.user_account.subscriptions` (object) サブスクリプションの管理 サブメニュー。 - `user` (object, required) - `user.age` (integer) ユーザーの年齢。 - `user.country` (object) - `user.country.allow_modify` (boolean) ユーザーが決済UIで国を変更できるかどうか。 - `user.country.value` (string) [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)に従った2文字の大文字の国名コード。X-User-IpヘッダーにIPアドレスが渡されない場合は必須です。[エクソーラがサポートする国](https://developers.xsolla.com/ja/ja/doc/shop-builder/references/supported-countries/)の詳細情報については、ドキュメントを確認してください。例:country=US Example: "US" - `user.email` (object) - `user.email.value` (string) ユーザーのメールアドレス。RFC822プロトコルに基づく有効である必要があります。 - `user.id` (object, required) - `user.id.value` (string) ユーザーID。テストでは、任意の値を渡すことができます。実際の支払いを受け入れるには、システムのユーザーID値を使用する必要があります。このIDは[ユーザー認証](https://developers.xsolla.com/ja/webhooks/operation/user-validation/)ウェブフックで渡されます。 - `user.is_legal` (boolean) ユーザーが法人かを示します。 - `user.legal` (object) 法人情報を含むオブジェクトです。user.is_legalがtrueの場合は、オブジェクトとその全パラメーターが必要です。 - `user.legal.address` (string) 最後まで記載した法的住所です。 - `user.legal.country` (string) 設立国。[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)に従って大文字2文字の国コードを使用します。 - `user.legal.name` (string) 法人のフルネームです。 - `user.legal.vat_id` (string) 納税者個別のID。 - `user.name` (object) - `user.name.value` (string) ユーザーのスクリーンネーム。 - `user.phone` (object) - `user.phone.allow_modify` (boolean) ユーザーが決済UIで電話を変更できるかどうか。トークンに phone.value が渡された場合、デフォルトではfalseとなります。 - `user.phone.hidden` (boolean) - `user.phone.value` (string, required) ユーザーの電話番号。 - `user.steam_id` (object) - `user.steam_id.value` (string, required) Steam ID。 - `user.tracking_id` (object) - `user.tracking_id.value` (string, required) 一意の追跡ID(マーケティングキャンペーンで使用)。 ## Response 201 fields (application/json): - `order_id` (integer) 注文ID。 Example: 1 - `token` (string) 決済トークン。 ## Response 401 fields (application/json): - `errorCode` (integer) Example: 1020 - `errorMessage` (string) Example: "[0401-1020]: Error in Authentication method occurred" - `statusCode` (integer) Example: 401 ## Response 422 fields (application/json): - `errorCode` (number) エラーコード。 Example: 1102 - `errorMessage` (string) 読み取り可能なエラーメッセージ。 Example: "[0401-1102]: Unprocessable Entity. The property `external_id` is required" - `statusCode` (number) 応答状態コード。 Example: 422 - `transactionId` (string) リクエストの一意ID。 Example: "da145238620011eb8e24fe6913ff226a"