コンテンツにスキップ

PG定期支払い

「PG Recurring Payment」とは、ユーザーがPGペイメントボックスに決済方法を登録すると、アプリサーバーがその決済方法からその決済方法を適時にリクエストすることを意味します。 毎月の金額製品など、同じ商品に対して定期的に支払うのに使用されています。

このドキュメントでは、'PG Recurring Payment' の統合プロセスと、アプリサーバーから呼び出される API の使用方法について説明します。 主な API は以下の通りです。

概要

課金サイクルと間隔は、アプリサーバーによって管理されます。 アプリサーバは、製品期間の支払いを要求しなければならず、指定された日付でHiveが自動的に支払いません。

PG・決済方法は以下の通りです。 Hive コンソールに接続すると、リストされていない PG と支払い方法は、再発支払いリストには含まれません。

  • カカオペイ:カカオペイイージーペイ
  • Danal:クレジットカード *支払壁:国際クレジットカード;登録に必要なバイヤーの電子メール
  • NHN KCP:クレジットカード

連携フロー

アプリサーバは、決済方法の確認・登録を行います。 支払いが完了すると、Hiveサーバーは支払いの結果を通知するアプリサーバーに支払い通知を送信します。 アプリサーバは、order_id発行注文番号として最初の支払い通知から、その後、チャージおよびキャンセルリクエストを再発行するために使用されます。

PG再発決済統合フロー

アプリサーバ上で行われるPG決済統合プロセスは以下の通りです。

  1. リクエストによる決済方法を表示支払方法のリストアプリサーバから。
  2. リクエスト決済登録利用者が選択した商品・決済方法 3。 Webビューまたはブラウザの登録応答として受け取った支払いページHTMLを表示します。
  3. 保存order_idお問い合わせ支払通知ユーザーが支払方法を登録し、最初の支払いを完了したときにハイブサーバーから。
  4. 使用して下さいorder_id次のチェックアウト時に保存したリペイ請求サイクル番号で。
  5. 一度の支払通知に基づくプロダクト支払を処理して下さい。
  6. 依頼キャンセル再入金が完了したら

2ラウンド後、注文番号は再発チャージ応答と2回目の支払い通知に転送されます。 初期注文IDと注文番号をアプリサーバーに接続して管理します。

ユーザーが決済ページを閉じるか、登録に失敗した場合、Hiveサーバーは支払い通知を送信します。

事前準備

APIを呼び出す前に、Hiveコンソールで決済方法と支払い通知URLを設定します。 アプリにセキュリティキーを設定している場合は、認証トークンを用意する必要があります。

決済手段の連携

Hive コンソールから再発決済メソッドをアプリに接続します。 お問い合わせPG設定セットアップ方法の指示のため。

支払い通知URLの設定

アプリサーバのURLを登録し、決済結果を受け取るハイブ・コンソール > 請求 > 支払い設定 > PG設定 > アドオン設定. 通常のPG支払いと同じ設定を使用してください。 お問い合わせPG決済通知設定この設定方法の詳細については、こちらをご覧ください。

認証トークンの準備

設定済みの場合セキュリティキーアプリでは、アクセストークンを取得できます。OAuthトークンの発行. このトークンをトークンに含めるX-Access-TokenAPI を呼び出すときにヘッダリクエストで。

共通リクエストとレスポンス

すべての API は、POSTJSON形式のメソッドとリクエストボディ。 フォームの送信はサポートされていません。 使用する環境のホストで各 API のパスをプレフィックスすることでリクエストを行います。

  • 生産のホスト:https://hiveiap.qpyou.cn *サンドボックスのホスト:https://sandbox-hiveiap.qpyou.cn

Request header

ボディ要求をとしてフォーマットして下さいContent-Type. ザ・X-Access-Tokenアプリケーションにセキュリティキーを設定している場合のみ検証します。

フィールド タイプ: お問い合わせ コンテンツ
Content-Type ストリング お問い合わせ application/json
X-Access-Token ストリング 条件 必須 OAuth 2.0 アクセス アプリケーションにセキュリティキーを設定している場合に必要なトークン

ユーザー識別

再発の請求やキャンセルの場合には、再発の支払いを登録したユーザーの情報が通信しなければなりません。 Hive サーバーは、player_typeそして、player_id皆様を識別するために一緒に。

お問い合わせplayer_typeお問い合わせv4Hive Player ID を渡して下さいvidお問い合わせplayer_id. 場合v0, ハイブ会員UIDを転送uid. player_typeと同じ値です。vid_type支払い通知で。

player_id1 以上の値で数値文字列でなければなりません。 非数値が渡された場合、10010002エラーを返します。

Response body

成功した場合codeJSON 応答では文字列"0". エラーは HTTP ステータスコードでも応答します。200です。code体内で。 トークン認証の失敗はHTTPステータスコードに対応401.

再発の支払い登録が成功した場合は、JSON の代わりに、支払いページ HTML が返されます。 お問い合わせ会員登録.

フィールド タイプ: 応答を含める コンテンツ
code ストリング JSONレスポンス 結果コード。"0"成功, 見るエラーコードその他の値について
message ストリング JSONレスポンス エラーが発生した場合の原因を含む結果メッセージ、内部エラーメッセージがInternal server error

共通の成功の応答の例は次のとおりです。

{ "code": "0", "message": "SUCCESS" }

決済手段一覧照会API

お支払い方法を見る 表示されるリスト内の配列の順に支払い方法を表示し、ユーザーが選択した項目の識別子を再発支払い登録リクエストに渡します。

Request info

パスはリクエストです/v2/payment/recurring/methods. 要求方法および承認のヘッダーは続きますよくある質問.

*生産URL:https://hiveiap.qpyou.cn/v2/payment/recurring/methods *サンドボックスURL:https://sandbox-hiveiap.qpyou.cn/v2/payment/recurring/methods

Request body

Tierの価格はあなたのプロダクトのために置かれる1通貨の価格です。 ご指定の場合market_pid、それはプロダクトのために置かれるtierの価格の通貨で支払ることができる支払方法だけを戻します。

お問い合わせcountry省略されると、要求されたサーバーの IP によって国が決定されるので、ユーザの国のコードを渡すことをお勧めします。

フィールド タイプ: お問い合わせ コンテンツ
appid ストリング お問い合わせ アプリID
market_pid ストリング 選択する 商品ID 製品のティア価格が置かれている通貨で支払い方法をフィルタリングするために使用される
country ストリング 選択、推薦される ユーザの国コード。 ISO 3166-1 alpha-2 フォーマット
language ストリング 選択する 支払方法表示名 言語。 デフォルトはen

以下は、製品の支払い方法を確認する要求の本文です。item08韓国語ユーザー向け

{ "appid": "com.com2us.example.normal.freefull.google.global.android.common", "market_pid": "item08", "country": "KR", "language": "ko" }

Response body

成功の応答には、一般的な応答フィールドそして配列のpayment_methods. 配列の各項目は、PG および支払い方法情報です。

フィールド タイプ: 含まれている場所 コンテンツ
payment_methods アレイ 応答ボディ 支払いの再発のための支払い方法のリスト。 順序は表示順序です
agency_id インテガー payment_methods[] PGの識別子。 入学リクエストを正確に受け継ぐ
agency_code ストリング payment_methods[] PGコード。kakaopay, danal_tpay, paymentwall, kcp_billing
agency_name ストリング payment_methods[] PGの名前
pay_method ストリング payment_methods[] 支払方法コード。kakaopay, card
payment_method_id インテガー payment_methods[] 支払方法識別子。 支払い登録申請書を優先する
payment_method_name ストリング payment_methods[] 支払方法表示名 に基づくlanguage
icon_url ストリング payment_methods[] 決済方法 アイコン URL
currency ストリング payment_methods[] 支払通貨

以下は、カカオペイの支払い方法を返す応答の例です。https://…お問い合わせicon_url実際のURLを省略する表記です。

{
  "code": "0",
  "message": "SUCCESS",
  "payment_methods": [
    { "agency_id": 3, "agency_code": "kakaopay", "agency_name": "카카오페이", "pay_method": "kakaopay",
      "payment_method_id": 472, "payment_method_name": "카카오페이", "icon_url": "https://…", "currency": "KRW" }
  ]
}

返品について10010003アプリやアイテムが見つからなかったり、売り切れのアイテムがチェックされていない場合。 国と製品通貨の基準に一致する決済方法がない場合、10010005返却されます。

定期支払い登録API

決済方法を登録して最初の支払いに進むことができるように、支払いページHTMLをリクエストします。 アプリサーバは、Webビューやブラウザで受信したHTMLを表示します。

決済画面で登録完了後、ハイブ結果画面が表示されます。 最初の支払いの結果は、支払い通知としてアプリサーバーに転送されます。

Request info

パスはリクエストです/v2/payment/recurring/register. 要求方法および承認のヘッダーは続きますよくある質問.

*生産URL:https://hiveiap.qpyou.cn/v2/payment/recurring/register *サンドボックスURL:https://sandbox-hiveiap.qpyou.cn/v2/payment/recurring/register

Request body

支払い方法のリストを調べます。market_pid、および先に進むことagency_idそして、payment_method_id応答に含まれている。countryまた、リストを調べるときに同じ値を渡すべきです。

フィールド タイプ: お問い合わせ コンテンツ
appid ストリング お問い合わせ アプリID
market_pid ストリング お問い合わせ 商品のIDを購読します。 すべての請求サイクルで同じ商品を使用する
server_id ストリング お問い合わせ App サーバー ID は、常に支払い通知で通信する
player_id ストリング お問い合わせ ユーザーID お問い合わせユーザーを特定する
player_type ストリング お問い合わせ ユーザータイプv4またはv0
agency_id インテガー お問い合わせ 支払い方法リストの問い合わせ応答のための PG 識別子
payment_method_id インテガー お問い合わせ 支払方法 支払方法 リストの照会の応答のための支払方法識別子
email ストリング 条件 必須 バイヤーメール。 必要な支払壁、使用される他のPG無し
iap_payload ストリング 選択する アプリサーバへ転送する追加情報。 すべての請求サイクルの支払い通知で通信し、再発請求に変更することはできません
country ストリング 選択、推薦される ユーザーの国コード。 リストを調べるときに渡された値と同じで、省略した場合は、要求されたサーバーのIPによって決定されます。
language ストリング 選択する 支払いページと結果画面の言語。 デフォルトはen

以下は、カカオペイでの支払いの再発のために登録するあなたの要求の体です。

{
  "appid": "com.com2us.example.normal.freefull.google.global.android.common",
  "market_pid": "item08", "server_id": "kr",
  "player_id": "20000032552", "player_type": "v4",
  "agency_id": 3, "payment_method_id": 472,
  "iap_payload": "{\"character\":\"abc\"}",
  "country": "KR", "language": "ko"
}

Response body

お問い合わせContent-Typeレスポンスヘッダでは、登録リクエストの成功に応じてレスポンス形式が異なります。 リクエストが失敗したときに、どのテキストユーザーが表示されるかを決定します。

結果発表 HTTPステータスコード コンテンツタイプ ソリューション
成功事例 200 text/html 受信したペイメントページHTMLをユーザーに表示する
失敗した 200 application/json お問い合わせcodeそして、message一般的な回答の

以下は、支払い月入学リクエストからメールが欠落している場合の応答です。

{ "code": "10010003", "message": "email is required for paymentwall" }

登録処理

最初の支払いは、登録時に製品のティア価格です。 選択した支払い方法の通貨で価格が適用されます。

ご登録いただく際は、新しい再発決済が作成されます。 ユーザーが決済ページを閉じると、再発決済が不完全になり、再発手数料を請求することはできません。

初回決済後、ハイブサーバは決済通知をお送りします。typeお問い合わせpaid. 保存order_id注文番号を発行するこの通知の。

受け取る場合10010005エラーは、決済方法のリストを再訪してください。market_pid回答に含まれている支払い方法をリクエストします。 お問い合わせエラーコードエラーの処理方法に関する詳細情報

再決済API

2回目の支払い後、ファイルの支払い方法への支払いをリクエストします。 成功した応答は、支払いの受領です。 ペイメントウォールのように、PGの承認を受け取り、成功した応答の後、承認されると、ハイブサーバーは支払い通知を送信します。

Request info

パスはリクエストです/v2/payment/recurring/charge. 要求方法および認証ヘッダーは続きますよくある質問.

*生産URL:https://hiveiap.qpyou.cn/v2/payment/recurring/charge *サンドボックスURL:https://sandbox-hiveiap.qpyou.cn/v2/payment/recurring/charge

Request body

order_id初回決済通知から発行注文番号を転送します。sequence請求サイクルを同じ再発支払い内で分離し、同じ請求サイクルを再試行するときに重複手数料を防ぐ重要な重要なことです。

フィールド タイプ: お問い合わせ コンテンツ
appid ストリング お問い合わせ 登録したアプリのアプリID
order_id ストリング お問い合わせ 発行注文番号order_id第1届の通知
sequence インテガー お問い合わせ 請求サイクル番号。 2 以上の値であり、同じ請求サイクルを再試行するときに同じ値が使用されます。
player_id ストリング お問い合わせ 登録ユーザーのID
player_type ストリング お問い合わせ 登録ユーザーの種類

以下は、発行注文番号で2番目の支払いを要求するテキストです。

{ "appid": "com.com2us.example.normal.freefull.google.global.android.common",
  "order_id": "H4179125520850787386", "sequence": 2,
  "player_id": "20000032552", "player_type": "v4" }

Response body

成功の応答には、この請求サイクルの一般的な応答フィールドと注文番号が含まれます。 この請求サイクルを利用して保存してください。

フィールド タイプ: 応答を含める コンテンツ
order_id ストリング 成功した再試行応答 この請求サイクルの注文番号などorder_id対応する請求サイクルの支払い通知と返金通知のため

以下は、2番目の注文番号を返す成功した応答です。

{ "code": "0", "message": "SUCCESS", "order_id": "H5179125523990923210" }

再決済の条件と再試行

決済登録時に指定した商品に必ずお支払いいただきます。 課金サイクル番号はアプリサーバで管理され、Hive は連続課金サイクルをチェックしません。

商品を販売停止する場合、すでに登録済みの支払いの再発請求を処理します。 新規登録をブロックするだけなので、請求を停止するために再発料を要求しないでください。

再度同じで要求された場合sequence処理は以下のとおりです。

繰り返しステータス フィードバック 追加料金 アプリサーバ処理
ペイド 10010007 なし 重複したリクエストを無視して、すでに何度も支払われている
保留資格 同じで成功した応答order_id なし 支払い通知に基づく製品の支払い
転送失敗したリクエスト 支払退会の結果 再配達の支払 同一のリトライsequence

PGの失敗の理由を返すmessageお問い合わせ10010024PG承認失敗の場合。 お支払い方法を確認し、もう一度お試しください。sequence. 内部エラー10010001, 10010004と10010022また、同じで取得されますsequence.

解約API

再発決済をキャンセルすると、Hiveサーバーは、その再発決済で登録された決済方法を削除します。10010023キャンセル後に再発料金を要求する場合、エラーを返します。

Request info

パスはリクエストです/v2/payment/recurring/cancel. 要求方法および認証ヘッダーは続きますよくある質問.

*生産URL:https://hiveiap.qpyou.cn/v2/payment/recurring/cancel *サンドボックスURL:https://sandbox-hiveiap.qpyou.cn/v2/payment/recurring/cancel

Request body

終了希望する再発支払いの発行注文番号、登録したアプリおよびユーザー情報を提供します。 2回目以降は注文番号はキャンセルできません。

フィールド タイプ: お問い合わせ コンテンツ
appid ストリング お問い合わせ 登録したアプリのアプリID
order_id ストリング お問い合わせ 発行注文番号order_id第1届の通知
player_id ストリング お問い合わせ 登録ユーザーのID
player_type ストリング お問い合わせ 登録ユーザーの種類

以下は、発行注文番号で再発支払いをキャンセルするリクエストの本文です。

{ "appid": "com.com2us.example.normal.freefull.google.global.android.common",
  "order_id": "H4179125520850787386",
  "player_id": "20000032552", "player_type": "v4" }

Response body

成功の応答には、一般的な応答フィールドが含まれますcodeそして、message. 以下は、呼び出しの成功応答です。

{ "code": "0", "message": "SUCCESS" }

返品について10010003再発の支払いが見つからない場合、または10010023既に再発されたか、または活動的ではない場合。 お問い合わせ10010004PG の支払い方法を削除できなかったエラー。

支払い通知と結果処理

Hive サーバは、定期的な PG 支払いと同じ形式の支払い通知 URL に再発決済結果を送信します。 お問い合わせPG決済結果通知サービスフォーマット要求および配達分野のため。

注文番号と支払い回数の連携

支払い通知には、再発支払いと請求サイクル番号が含まれていません。 アプリサーバは、保存した発行された注文番号と保存した注文番号を使用する必要があります。order_id支払い通知を再発する支払い通知がどの再発決済処理に対応するかを決定する再発費用応答で。

送信する時 type order_id アプリサーバ処理
第1回 決済完了 paid 注文番号の発行 初期注文IDを保存し、最初のラウンド決済を処理します
第2ラウンド後の有料 paid 適当な時間 順序いいえ。order_id再発費用応答で 保存された請求サイクルで承認した後、製品の支払いを処理する
HiveコンソールまたはPGから請求サイクルを返金 cancelled 払い戻し回数 注文番号 この請求サイクルの結果としてプロセス払い戻し

server_id, iap_payload, market_pid登録時に送信される値は、いつでも支払い通知で通信されます。

アイテム支給と返金

使用条件purchase_bypass_info決済通知にてtypeお問い合わせpaid領収書を確認し、アイテムを支払います。 お問い合わせPG決済結果通知サービスフィールドを転送する。

返金された請求サイクルは、返金ユーザ再発料金通常の支払によって。

エラーコード

HTTP ステータスコードであっても200、確認しなければなりませんcodeJSON ボディ。 エラーコードとリクエストのステータスを識別します。

コードコード 関連API 原因 取扱方法
0 JSON 応答 共通 成功事例 各 API に対するサクセスレスポンスの処理
10010001 よくある質問 内部エラー リトリート 同じを使用して再試行sequence
10010002 よくある質問 必須値、タイポグラフィエラー、非JSONボディ、非POSTメソッド。 含まれている場合sequence再発費用の1つまたは等しいですplayer_type間違っている リクエスト値とフォーマットを変更する
10010003 支払い方法の表示と登録 アプリや製品が見つかりません。, 製品の中止. ミスリングemail登録時に支払い壁に アプリと製品をチェックします。 販売中のアイテムとして要求し、電子メールを入力すると支払い壁を再要求します
10010003 返金・キャンセル 支払いの再発が見つかりません。 別のアプリまたはユーザーによる非初期注文IDまたは再発支払い 初回注文IDおよび登録済みアプリおよびユーザー情報の確認
10010004 よくある質問 PG は、キャンセル時に PG の支払い方法を削除できないなどのエラーをインターロックします。 リトリート 同じを使用して再試行sequence
10010005 支払い方法の表示と登録 国と製品通貨をマッチングする決済方法の再発はありません リストを見直します。market_pid、および応答に含まれている支払方法と登録して下さい
10010007 チャージ料金 既に支払った時間 それが重複しているとしてこれを無視する
10010022 よくある質問 内部エラー リトリート 同じを使用して再試行sequence
10010023 返金・キャンセル キャンセル、期限切れの登録、不備の登録等により、非アクティブサブスクリプション ユーザをリリストする
10010024 チャージ料金 制限、停止カードなど、PGを承認できない PGの失敗の理由を含んで下さいmessage ユーザーが支払方法の通知を受けた後、同じで再度試みて下さいsequence
スタッフ401 よくある質問 トークン認証失敗 検証X-Access-Token's 認証情報

連携時の注意事項

PG再発決済をリンクする際には、注文番号と注文番号がどのように使用されるか、アイテムが支払われる場合、価格がに基づいているか、キャンセルの範囲を確認してください。

発行注文番号の使用

チャージおよびキャンセルの請求は、発行注文番号で行う必要がありますorder_id最初の支払い通知で。 返品について10010003後2次注文番号で要求された場合のエラー。 お問い合わせ統合フロー注文番号の管理方法

支払い回数と再試行

使用条件sequence2. スタート あなたは同じを転送しなければなりませんsequence二重請求を避けるために、支払いの同じラウンドを再試行するとき。 参照して下さいチャージAPIサイクルステータスと再試行方法による応答

支払い通知に基づくアイテム支給

決済方法type paid支払通知。 支払いは、成功した再発費用に対してのみ行われるべきではありません。 参照して下さい決済通知とアウトカム処理API領収書を検証し、請求サイクルをリンクする方法を学びます。

決済時点の商品価格を適用

各支払額は、支払いが要求された時点での製品料金です。 アイテムの価格を変更する場合は、次のインストールで更新された金額を支払います。 参照して下さいチャージAPI再び支払われているもの、および停止時にどのように処理されるかについて。

Paymentwall購入者メールアドレス

支払い壁に再発支払いを登録するときは、購入者のメールをユーザーに入力し、転送してくださいemail. 参照して下さい支払い登録APIの再発行フィールドとエントリー条件の要求

解約と返金の区別

再発の支払いをキャンセルした場合は、既に支払った時に返金されません。 これらの請求サイクルを返金したい場合は、別の払い戻しを処理する必要があります。 参照して下さいRevocation APIの呼び出しリクエストとレスポンスの受け取り