Sce.PlayStation.Core.Services はネットワークサービスのための機能を提供します。
Contents
AccountInformation はネットワークアカウントに関する情報をあらわす static クラスです。
AccountInformation は各アカウントに対してユニークな 16 バイトの数字を保持しています。この値はアカウントの識別やセーブデータの暗号化などに利用することができます。なお PC シミュレータではユーザー名をベースにしたダミーの値が返されますのでご注意ください。
InAppPurchaseDialog はアプリ内課金を処理するダイアログクラスであり、ICommonDialog インターフェースを継承しています。アプリ内課金は主にサーバーへのアクセスによって処理されますが、必要に応じて課金内容の表示やユーザー入力の処理もおこないます。
InAppPurchaseDialog はプロダクトのリストを保持します。これはメタデータ(app.xml)から読み込まれますが、価格やチケットなどapp.xmlに含まれない情報は読み込まれません。それらの情報はサーバーから取得する必要があります。
InAppPurchaseDialog はダイアログを開くことでサーバーにアクセスすることができます。ダイアログを開くには GetProductInfo(), GetTicketInfo(), Purchase(), Consume() 関数を使用してください。なお Open() 関数は使用できませんのでご注意ください。
ダイアログ処理が完了するのを待ち、ダイアログ処理が成功したかどうか確認するなど、基本的な使用方法は ICommonDialog インターフェースと同じです。ダイアログ処理が成功すると、プロダクトのリストに格納された情報が更新されます。
もしダイアログ処理の結果が Error または Aborted であっても、購入や消費はサーバーに処理されている可能性があります。これは、たとえばリクエスト送信後のネットワーク切断などによって発生します。そのため、ダイアログ処理の結果が Error または Aborted の場合、あらためて GetTicketInfo() でチケット情報を取得して、購入や消費がサーバーに処理されたかどうかを確認してください。
InAppPurchaseDialog は、開発者環境ではエンドユーザー環境と異なる挙動をおこないます。
開発者環境では、アプリ内課金は擬似的なエミュレーションとして動作します。サーバー接続はおこなわれず、ローカルファイルに状態が記録されます。開発者環境において購入情報をクリアするためには、次の操作を実行してください。
さらに、開発者環境では API が呼び出されるたびにユーザー入力が求められます。ダイアログのエラーボタンを押すことで、ネットワークエラー発生時のアプリケーションの挙動を確認することができます。なお、エンドユーザー環境では必要な場合のみユーザー入力が求められます。
また、開発者環境では価格表示の間違いを避けるため、プロダクト価格文字列にプロダクトラベル文字列が格納されます。