決済
決済モジュールでは、ゲーム内アイテムの購入決済および买断決済(バイアウト)に関連する機能を提供しています。JOGOS_SDK 概要
ページ内の該当エンジンセクションを読んだうえで、以下のように機能を利用してください。
javascript
window.JOGOS_SDK.payment;
アプリ内購入
ステップ1:商品IDを作成
- デベロッパーダッシュボードの「Information / Purchase」ページで商品を作成します。
- 同一ゲーム内で商品IDが重複しないよう注意してください。
ステップ2:注文を発行
- プレイヤーがゲーム内アイテムを購入する際、商品購入ボタンから本APIを呼び出すことでJogos決済ウィンドウが開きます。
- 商品IDを渡し、決済ウィンドウが正常に開かれると注文番号が返却されます。後続の処理でこの番号を使って注文情報を照会できます。
- goodsIdはデベロッパーダッシュボードで作成した商品IDです。
javascript
// 成功時に注文番号を返す
let orderNo = await window.JOGOS_SDK.payment.buyGoods(goodsId: string);
ステップ3:ユーザー決済を待つ
クライアント側で注文決済完了通知を購読
注文〜決済完了まで時間がかかる場合があります。
本APIを通じて決済成功通知を購読しておくと、決済完了時にプラットフォームからコールバックが呼ばれ、注文が支払われたことを開発者に伝え、最新の注文情報が渡されます。
javascript
window.JOGOS_SDK.payment.subscribeOrderPaid(callbackFn: (order: PaymentOrder) => void);
ステップ4:発送し、プラットフォームに注文発送済みを通知
クライアント側で発送処理を行う(オフラインゲーム)
プレイヤーの決済成功を検知したら、クライアントが自動で報酬を付与し、本APIを呼んでプラットフォームに発送完了を通知します。
javascript
await window.JOGOS_SDK.payment.deliverGoods(orderNo: string);
「ゲームサーバー」経由で接続する場合:
サーバー側APIはページ サーバーサイド接続インターフェース
を参照してください。
その他のインターフェース
注文情報
注文番号を基に詳細を取得。構造は以下の通り:
javascript
// 決済注文
export interface PaymentOrder {
// ゲームID
gameId: number;
// ゲーム名
gameName: string;
// ユーザーID
userId: number;
// 注文番号
orderNo: string;
// 商品ID
productId: string;
// 商品名
productName: string;
// 通貨
currency: string;
// 国
country: string;
// 割引額
discount: number;
// Jogosコイン消費数
calorcoin: number;
// 支払い金額
paid: number;
// 決済チャネル
channel: string;
// 決済タイプ
paymentType: string;
// 決済番号
paymentNo: string;
// 発送済みか
deliverGoods: boolean;
// 注文ステータス pending: 未決済 fail: 失敗 cancel: キャンセル expire: 期限切れ success: 成功 refunding: 返金処理中 refunded: 返金完了 refund-fail: 返金失敗
status: 'pending' | 'fail' | 'cancel' | 'expire' | 'success' | 'refunding' | 'refunded' | 'refund-fail';
// 注文作成時刻
createTime: String;
// 返金番号
refundNo: String;
// 返金説明
refundDescription: String;
// 返金申請時刻
refundTime: String;
// 返金完了時刻
refundedTime: String;
}
注文情報を取得
javascript
// 成功時に注文情報を返す
let order = await window.JOGOS_SDK.payment.getOrderDetail(orderNo: string);
注文一覧を取得
ステータスを条件に注文一覧を取得。成功時は注文オブジェクトの配列が返却され、構造は詳細照合と同一です。
javascript
// 成功時に注文リストを返す
let orderList = await window.JOGOS_SDK.payment.getOrderList(
status?: 'pending' | 'fail' | 'cancel' | 'expire' | 'success' | 'refunding' | 'refunded',
pageNo?: number, // ページ番号:デフォルト1
pageSize?: number // 1ページ件数:デフォルト20
);
javascript
// 成功時に注文番号を返す
let orderNo = await window.JOGOS_SDK.payment.buyOut();