コンテンツにスキップ

簡易PG決済

「簡易PG決済」は、アプリサーバーがPG決済手段を照会し、ストアWebページ内で決済手段選択UIを直接構成した後、ユーザーが選択した手段でPG社の決済WebViewウィンドウを呼び出すときに使用します。

このページでは、payment/methodspayment/requests を順番に呼び出す方法を説明します。

推奨する実装順序は以下のとおりです。

  1. まず決済手段を照会して、ストアWebページに決済手段選択画面を構成してください。
  2. 次にユーザーが 決済 を押したら、選択したPG社の決済WebViewウィンドウを開いてください。

1. 概要

連携フロー

簡易PG決済では、ストアWebページ内で決済手段選択の段階を処理します。ユーザーが決済手段を選択した後にのみ、PG社の決済WebViewウィンドウを開きます。

以下の順序で連携することを推奨します。

  1. ストアWebページでユーザーが 購入 ボタンを押します。
  2. アプリサーバーが決済手段照会APIを呼び出します。
  3. ストアWebページがレスポンス値で決済手段選択UIを構成し、表示します。
  4. ユーザーが決済手段選択UIで決済手段を選択し、決済 を押します。
  5. アプリサーバーが決済呼び出しAPIを呼び出します。
  6. ストアWebページがレスポンス結果として、選択したPG社の決済WebViewウィンドウを開きます。
  7. ユーザーがPG社の決済WebViewウィンドウで決済を完了します。

事前準備

簡易PG決済を連携する前に、以下の値を準備してください。

項目 説明
Hive認証キー Authorization ヘッダーに入れる Bearer トークンです。Hiveコンソール > アプリセンター > プロジェクト管理 > ゲーム一覧 - ゲーム会社のゲームを選択 > ゲーム詳細 > 基本情報 にある値を使用します。
app_id 決済を進めるアプリの App ID です。Hiveコンソール > アプリセンター > プロジェクト管理 > ゲーム一覧 - ゲーム会社のゲームを選択 > ゲーム詳細 > 基本情報 にある値を使用します。
server_id 決済を進めるアプリサーバーの識別値です。Hiveコンソール > アプリセンター > プロジェクト管理 > ゲーム一覧 - ゲーム会社のゲームを選択 > ゲーム詳細 > アプリサーバー にある値を使用します。
market_pid 決済する商品IDです。Hiveコンソール > Billing > 商品管理 > 商品登録 に登録した値を使用します。この値は、商品登録前に各ストアコンソールで準備した Product ID を基準に設定します。
player_id 決済を進める現在のユーザーの Player ID です。アプリサーバーがログインセッションまたはゲームユーザー情報で確認した値を使用します。
market_id 簡易PG決済で使用するマーケット固有IDです。15 を固定値として使用します。

2. 決済手段照会

決済手段照会APIは、特定の商品で現在使用できるPG決済手段一覧を照会するAPIです。ストアWebページ内に決済手段選択画面を構成する前に、まず呼び出してください。このAPIだけでは決済は開始されません。

リクエスト情報

エンドポイント

呼び出しエンドポイントは以下のとおりです。

項目 説明
本番URL https://hiveiap.qpyou.cn/payment/methods
Sandbox URL https://sandbox-hiveiap.qpyou.cn/payment/methods
HTTP Method POST
Data Format JSON

HTTPヘッダー

HTTPヘッダーは以下のとおりです。

項目 説明
Content-Type application/json;charset=utf-8
Authorization Bearer

Authorization ヘッダーに入れる Bearer トークンは、Hiveコンソール > アプリセンター > プロジェクト管理 > ゲーム一覧 - ゲーム会社のゲームを選択 > ゲーム詳細 > 基本情報 にある Hive 認証キーです。

リクエストボディ

以下の表では、必須は M、任意は O で表記します。

名称 必須可否 説明
language String M 決済手段を表示するゲーム言語値です。アプリクライアントで現在使用中の言語を ISO 639-1 Alpha-2 形式で渡します。
country String M 決済手段を照会する対象国コードです。決済を進めるユーザー基準の国を ISO 3166-1 の2文字コードで渡します。
app_id String M 決済を進めるアプリの App ID です。事前準備で確認した値を渡します。
market_pid String M 決済する商品IDです。事前準備で確認した値を渡します。
market_id Integer O マーケット固有IDです。15 を固定値として使用します。
fixed_currency String O 特定の通貨だけを表示するには ISO 4217 通貨コードを入力します。通貨を固定しない場合は、レスポンスの data.currency 値を次のステップで使用します。

レスポンス情報

以下の表では、必須は M、任意は O で表記します。

名称 必須可否 説明
result String M API結果文字列です。レスポンスが成功した場合は data の決済手段情報を次のステップで使用します。
code Integer M API結果コードです。成功可否と失敗原因を区別するときに使用します。
message String M API結果メッセージです。失敗時の原因確認に使用します。
data Object M 照会成功時に渡される決済手段情報のまとまりです。
data.agency_company_code Integer M PG決済代行会社コードです。ユーザーが決済手段を選択した後、決済呼び出しAPIの agency_company_code に渡します。
data.country String M 照会結果に適用された国コードです。決済呼び出しAPIでも同じ国コードを使用します。
data.currency String M 照会結果に適用された決済通貨です。決済呼び出しAPIの currency にこの値を渡します。
data.email_agree_text Array O メール入力が必要な決済手段を選択したときに、ユーザーへ表示する同意文言一覧です。
data.email_agree_text[].agree_id Integer O 同意文言IDです。同意項目の区分に使用します。
data.email_agree_text[].title String O ユーザーに表示する同意タイトルです。
data.email_agree_text[].description String O ユーザーに表示する同意詳細文言です。
data.available_payment_methods Array M 現在の商品で使用できる決済手段一覧です。決済画面にはこの一覧だけを表示し、ユーザーが選択した項目の下位フィールドを次のステップで使用します。
data.available_payment_methods[].agency String M 選択した決済手段のPG社コードです。決済呼び出しAPIの agency に渡します。
data.available_payment_methods[].agency_id Integer M PG社識別値です。決済手段の区分や内部ログ確認に使用します。
data.available_payment_methods[].method String M 選択した決済手段コードです。決済呼び出しAPIの method に渡します。
data.available_payment_methods[].method_id Integer M 決済手段識別値です。決済手段の区分に使用します。
data.available_payment_methods[].requires_email Boolean M true の場合、決済呼び出し前にユーザーのメールアドレスを受け取り、email フィールドに渡す必要があります。
data.available_payment_methods[].priority Integer M 決済手段表示の優先順位値です。決済画面の並び替えに使用します。
data.available_payment_methods[].display_name String M 決済画面でユーザーに表示する決済手段名です。
data.available_payment_methods[].icon_url String O 決済画面にあわせて表示する決済手段アイコンURLです。

レスポンス値の使用

レスポンス値は以下のように使用してください。

  1. data.available_payment_methodsdisplay_nameicon_urlpriority 値を使用して、ストアWebページ内に決済手段選択UIを構成してください。
  2. requires_emailtrue の決済手段を表示するときは、email_agree_text 文言をあわせて表示し、ユーザーのメールアドレスを入力してもらってください。
  3. ユーザーが決済手段を選択したら、data.agency_company_codedata.currencydata.available_payment_methods[].agencydata.available_payment_methods[].methoddata.available_payment_methods[].requires_email の値を次のステップの入力値としてそのまま渡してください。

リクエスト例

curl -L -v \
 -d '{
   "language": "ko",
   "country": "KR",
   "app_id": "com.com2us.hivesdk.normal.freefull.google.global.android.common",
   "market_pid": "com.com2us.hivesdk.normal.freefull.google.global.android.common.item01",
   "market_id": 15,
   "fixed_currency": "KRW"
 }' \
 -H "Content-Type: application/json;charset=utf-8" \
 -H "Authorization: Bearer {Bearer 토큰}" \
 https://sandbox-hiveiap.qpyou.cn/payment/methods

レスポンス例

{
  "result": "success",
  "code": 0,
  "message": "success",
  "data": {
    "agency_company_code": 1,
    "country": "KR",
    "currency": "KRW",
    "email_agree_text": [
      {
        "agree_id": 1,
        "title": "(필수) 개인정보 수집∙이용 동의",
        "description": "Com2uS은(는) “결제 대행 업체 전송”을 위해 이메일주소를 수집합니다.<br>
내용을 자세히 읽으신 후 동의 여부를 결정해 주시기 바랍니다.<br><br>
- 수집∙이용 목적 : <span class=\"point_color\">결제 대행 업체 전송</span><br>
- 수집 항목 : 이메일주소<br>
- 보유∙이용 기간 : <span class=\"point_color\">결제 대행 업체 전송 목적으로만 수집하며 별도로 저장·보유하지 않습니다.</span><br><br>
※ 개인정보 수집∙이용에 대한 동의를 거부할 권리가 있습니다.<br>
단, 동의를 거부할 경우 해당 결제 대행 업체를 통한 결제가 제한됩니다."
      },
      {
        "agree_id": 2,
        "title": "(필수) 개인정보 제3자 제공 동의",
        "description": "Com2uS은(는) 다음과 같이 이메일주소를 제3자에게 제공하고 있습니다.<br>
내용을 자세히 읽으신 후 동의 여부를 결정해 주시기 바랍니다.<br><br>
- 제공받는 자 : <strong>결제 대행 업체 (PayPal, Terminal3)</strong><br>
- 이용 목적 : <span class=\"point_color\">부정/의심 거래 방지 및 고객 지원</span><br>
- 제공 항목 : 이메일주소<br>
- 보유∙이용 기간 : <span class=\"point_color\">가맹점과의 계약 종료 후 최대 5년</span><br><br>
※ 개인정보 제3자 제공에 대한 동의를 거부할 권리가 있습니다.<br>
단, 동의를 거부할 경우 해당 결제 대행 업체를 통한 결제가 제한됩니다."
      }
    ],
    "available_payment_methods": [
      {
          "agency": "html5_inicis",
          "agency_id": 9,
          "method": "card",
          "method_id": 1,
          "requires_email": false,
          "priority": 1,
          "display_name": "Credit Card",
          "icon_url": "https://hive-fn.qpyou.cn/hiveiap/hivestore/test/img/pg_icon/credit_card.png?ver=2.4.32"
      },
      {
          "agency": "html5_inicis",
          "agency_id": 9,
          "method": "naverpay",
          "method_id": 17,
          "requires_email": true,
          "priority": 10,
          "display_name": "NAVER Pay",
          "icon_url": "https://hive-fn.qpyou.cn/hiveiap/hivestore/test/img/pg_icon/5169459511710849342.png?ver=2.4.32"
      }
    ]
  }
}

3. 決済呼び出し

決済呼び出しAPIは、ストアWebページ内でユーザーがすでに選択した決済手段で、該当PG社の決済WebViewウィンドウを開くAPIです。決済手段照会APIで受け取った値を再利用する必要があります。

注意点は以下のとおりです。

  1. このAPIは決済手段選択画面を再度表示しません。
  2. このAPI自体が決済完了を確定するわけではありません。

リクエスト情報

エンドポイント

呼び出しエンドポイントは以下のとおりです。

項目 説明
本番URL https://hiveiap.qpyou.cn/payment/requests
Sandbox URL https://sandbox-hiveiap.qpyou.cn/payment/requests
HTTP Method POST
Data Format JSON

HTTPヘッダー

HTTPヘッダーは以下のとおりです。

項目 説明
Content-Type application/json;charset=utf-8
Authorization Bearer

Authorization ヘッダーに入れる Bearer トークンは、Hiveコンソール > アプリセンター > プロジェクト管理 > ゲーム一覧 - ゲーム会社のゲームを選択 > ゲーム詳細 > 基本情報 にある Hive 認証キーです。

リクエストボディ

以下の表では、必須は M、任意は O で表記します。

名称 必須可否 説明
language String M 決済手段照会APIで使用したゲーム言語値をそのまま渡します。
country String M 決済手段照会APIで使用した国コードをそのまま渡します。
currency String M 決済手段照会APIレスポンスの data.currency 値を渡します。
app_id String M 決済手段照会APIで使用した App ID と同じ値を渡します。
server_id String M 事前準備で確認したサーバーIDを渡します。
market_id Integer M マーケット固有IDです。決済手段照会APIと同様に 15 を固定値として使用します。
market_pid String M 決済手段照会APIで使用した商品IDと同じ値を渡します。
quantity Integer M 今回の決済リクエストで購入する数量です。ゲームでユーザーが選択した数量を渡します。
agency_company_code Integer M 決済手段照会APIレスポンスの data.agency_company_code 値を渡します。
method String M ユーザーが選択した決済手段の data.available_payment_methods[].method 値を渡します。
agency String M ユーザーが選択した決済手段の data.available_payment_methods[].agency 値を渡します。
player_id String M 事前準備で確認した現在のユーザーの Player ID を渡します。
vid_type String M SDKバージョン値です。v4 を固定値として使用します。
email String O 選択した決済手段の requires_email 値が true のとき、ユーザーに入力してもらったメールアドレスを渡します。
sandbox Boolean O Sandbox URL でテストするときは true を使用します。本番環境では渡さないか、環境に合った値を使用します。

レスポンス情報

決済呼び出しAPIは、決済成功可否を最終確定するAPIではありません。リクエストが正常に処理された場合は、返却結果を使用して選択したPG社の決済WebViewウィンドウを開いてください。

レスポンス値の使用

レスポンス値は以下のように使用してください。

  1. レスポンス結果を使用して、ストアWebページで選択したPG社の決済WebViewウィンドウを開いてください。
  2. このレスポンスだけで決済が完了したと判断しないでください。このステップは決済ウィンドウを開く段階です。
  3. 実際の決済結果を確認するには、決済完了履歴照会IAP v4 レシート検証 を参照してください。

リクエスト例

curl -L -v \
 -d '{
   "language": "ko",
   "country": "KR",
   "currency": "KRW",
   "app_id": "com.com2us.hivesdk.windows.microsoftstore.global.normal",
   "server_id": "global",
   "market_id": 15,
   "market_pid": "com.com2us.hivesdk.windows.microsoftstore.global.normal.item01",
   "quantity": 1,
   "agency_company_code": 1,
   "method": "kakaopay",
   "agency": "html5_inicis",
   "player_id": "123456789",
   "vid_type": "v4",
   "email": "bobong@com2us.com",
   "sandbox": true
 }' \
 -H "Content-Type: application/json;charset=utf-8" \
 -H "Authorization: Bearer {Bearer 토큰}" \
 https://sandbox-hiveiap.qpyou.cn/payment/requests

4. 次のステップ

PG社の決済WebViewウィンドウでユーザーが決済を完了したからといって、アプリクライアントですぐに付与処理してはいけません。決済完了情報は PG から Hive IAP v4 サーバーに渡されるため、アプリサーバーで後続確認を行う必要があります。

以下の順序で後続処理を進めてください。

  1. 決済完了履歴照会 を呼び出して、保存された決済情報を照会してください。
  2. 決済が正常に完了したかどうか追加検証が必要な場合は、照会レスポンスの purchase_bypass_info を使用して IAP v4 レシート検証 を行ってください。