決済処理開始(トランザクションの作成)
This page is not available in English.
Please select another language.
処理の概要
purchase.php で表示される「アイテム購入ボタン」が押下されたら、トランザクションを作成します。
以下のようにトランザクションを作成します。
- Client から Game Server へトランザクション作成リクエストを送信する
- Game Server が Mobage Bank Debit API を利用してトランザクションを作成する
- Game Server が Order DB に Order データを作成する
- Game Server から Client へレスポンスを送信する
これらの処理のシーケンス図が下記になります。
Client から Game Server へトランザクション作成リクエストを送信する
ユーザーが「アイテム購入ボタン」を押下すると、 Client から Game Server に決済トランザクション作成リクエストが送信される、といった処理を実装します。
Mobage Connectへのログイン状況の確認
モバコインによるアイテム購入では、ユーザーが Mobage Connect にログインしていることが必須となります。
ユーザーがこの状態であるか確認するために、mobage.oauth.getConnectedStatusメソッドを利用します。
また、「アイテム購入ボタン」がクリックされたら決済トランザクションの作成リクエストを送信するようにイベントリスナーを設定します。
ユーザーが「アイテム購入ボタン」を押下すると、特定のアイテムをいくつ購入するか、Client から Game Server にリクエストを送ります。
Game Server が Mobage Bank Debit API を利用してトランザクションを作成する
Developers Siteにてアイテム情報の登録を行ってない場合、Bank Debit API を呼び出して以下のようなリクエストを送信します。
![]() | imageUrl には、https プロトコルの画像を指定して下さい。http プロトコルを指定するとブラウザで警告が出る場合があります。 |
なお、Bank Debit API の Endpoint は下記になります。
環境 |
Base Endpoint |
---|---|
sandbox |
https://sb-app.mobage.jp/social/api/restful/v2.02 |
service |
https://app.mobage.jp/social/api/restful/v2.02 |
Bank Debit APIの呼び出しを行うにあたり、OAuth 2.0 Bearer Tokenを利用します。
OAuth 2.0のBearer Tokenとしてセッションデータに関連付けたaccess_tokenを利用して、Bank Debit APIを呼び出す準備をします。
決済トランザクション作成のレスポンス受け取り
このチュートリアルではcurlを使ってBank Debit API を呼び出します。
Bank Debit API のレスポンスから、決済トランザクションを取得します。
Game Server が Order DB に Order データを作成する
Game Server では、決済処理に応じてアイテム受注処理を管理する為のデータベースとして、Order DB を作成します。
Order DB の Order データは、Bank Debit API から受け取ったTransaction ID に紐づけ、Order DB に格納します。
このチュートリアルでは、下記のような Order DB を定義して処理を進めます。
なお、このOrder DB の order_state は、下記のようにアイテム受注処理の状態を示しています。
order_state |
状態 |
決済処理の状態 |
---|---|---|
authorized |
アイテム未付与 |
処理途中 |
error |
エラーによりアイテム付与しない |
処理完了 |
canceled |
アイテム付与処理はキャンセル済み |
処理完了 |
closed |
アイテム付与済み |
処理完了 |
![]() | 上記に定義した Order DB は、あくまでこのチュートリアル用のサンプルであり、一例です。実際にゲームに実装する際には、ゲームの要件に従ったテーブルを定義してください。 |
Order IDを発行する
Platform から受け取った Transaction ID と紐付ける、Order データの識別子を Order ID と呼びます。
このチュートリアルではOrder ID が Unique となるように連番で発行しました。
Order 情報を Order DB に格納する
Transaction ID と紐付く Order データを、Order DB に保存します。
Game Server から Client へレスポンスを送信する
Transaction ID と Order ID のレスポンス
Transaction ID の発行と、Order データの作成が完了したら、Clientに下記のようなレスポンスを返します。
開発したコード
このチュートリアルで開発したコードは Github から clone できます。
更新履歴
- 2015/06/30
- 画像 URL に https の画像を設定するのがすいしょ