Services 概要

Sce.PlayStation.Core.Services はネットワークサービスのための機能を提供します。

アカウント情報

AccountInformation はネットワークアカウントに関する情報をあらわす static クラスです。

AccountInformation は各アカウントに対してユニークな 16 バイトの数字を保持しています。この値はアカウントの識別やセーブデータの暗号化などに利用することができます。なお PC シミュレータではユーザー名をベースにしたダミーの値が返されますのでご注意ください。

アプリ内課金ダイアログ

InAppPurchaseDialog はアプリ内課金を処理するダイアログクラスであり、ICommonDialog インターフェースを継承しています。アプリ内課金は主にサーバーへのアクセスによって処理されますが、必要に応じて課金内容の表示やユーザー入力の処理もおこないます。

InAppPurchaseDialog はプロダクトのリストを保持します。これはメタデータ(app.xml)から読み込まれますが、価格やチケットなどapp.xmlに含まれない情報は読み込まれません。それらの情報はサーバーから取得する必要があります。

InAppPurchaseDialog はダイアログを開くことでサーバーにアクセスすることができます。ダイアログを開くには GetProductInfo(), GetTicketInfo(), Purchase(), Consume() 関数を使用してください。なお Open() 関数は使用できませんのでご注意ください。

  • GetProductInfo() : プロダクト情報を取得します (購入前に必要)
  • GetTicketInfo() : チケット情報を取得します (購入前と消費前に必要)
  • Purchase() : プロダクトを購入します
  • Consume() : チケットを消費します

ダイアログ処理が完了するのを待ち、ダイアログ処理が成功したかどうか確認するなど、基本的な使用方法は ICommonDialog インターフェースと同じです。ダイアログ処理が成功すると、プロダクトのリストに格納された情報が更新されます。

もしダイアログ処理の結果が Error または Aborted であっても、購入や消費はサーバーに処理されている可能性があります。これは、たとえばリクエスト送信後のネットワーク切断などによって発生します。そのため、ダイアログ処理の結果が Error または Aborted の場合、あらためて GetTicketInfo() でチケット情報を取得して、購入や消費がサーバーに処理されたかどうかを確認してください。

開発者環境について

InAppPurchaseDialog は、開発者環境ではエンドユーザー環境と異なる挙動をおこないます。

  • サーバーに接続されない。
  • 購入情報がローカルファイルに記録される。
  • API が呼び出されるたびにユーザー入力が求められる。
  • ダイアログのエラーボタンでエラーを発生させることができる。
  • プロダクト価格文字列にプロダクトラベル文字列が格納される。

開発者環境では、アプリ内課金は擬似的なエミュレーションとして動作します。サーバー接続はおこなわれず、ローカルファイルに状態が記録されます。開発者環境において購入情報をクリアするためには、次の操作を実行してください。

  • PC シミュレータ : APIが呼び出されたときに表示されるダイアログの[Reset]ボタンを押してください。
  • PlayStation(R)Vita : PlayStation(R)Mobile Development Assistantのメニューを使用してください。

さらに、開発者環境では API が呼び出されるたびにユーザー入力が求められます。ダイアログのエラーボタンを押すことで、ネットワークエラー発生時のアプリケーションの挙動を確認することができます。なお、エンドユーザー環境では必要な場合のみユーザー入力が求められます。

また、開発者環境では価格表示の間違いを避けるため、プロダクト価格文字列にプロダクトラベル文字列が格納されます。