記事一覧

Xamarin.InAppBillingでAndroid用の課金アプリを作る (決済機能) | Xamarin.Forms


Android用のアプリに決済機能を構築する手順を以下に説明します。
今回はXamarin.formsを用いての開発に基づき、Xamarin.InAppBillingを導入します。


前提条件
・Windows10
・Visual Studio 2015 Community Update3
・Xamarin.forms 4.2.0.695
・Google Play Developer Consol への登録


1.Google Play Billing Libraryをインストール

vs2015のメニュー「ツール」→「Android」→「Android SDK Manager」からGoogle Play Billing Libraryにチェックをつけてインストールします。

appbilling5.png


2.パーミッションの追加

AndroidManifest.xmlに以下の1文を追加します。
<uses-permission android:name="com.android.vending.BILLING" />


3.Google Play Developer Consoleでアプリ内アイテムを追加する

Google Play Developer Consoleにパーミッションを追加したapkをアップロードします。
アプリ内アイテムから新しいアイテムを追加します。

appbilling6.png


アイテムIDは後程コーディングにて使用する文字列になり、一意のIDを半角小文字英数記号で入力する必要があります。

appbilling7.png


4.Xamarin.InAppBillingをコンポーネントに追加します

AndroidプロジェクトのCompornentを右クリックして
「Get More Compornents...」をクリック

inappbilling_1.png


左上の検索欄に 「inappbilling」 と入力すると Xamarin.InAppBilling が表示されます。

inappbilling_2.png

Xamarin.InAppBillingをクリックすると、Xamarinのホームページが表示され、「Add To App」ボタンが表示されますので、
バージョンだけ確認して、ボタンを押下します。

inappbilling_3.png

Compornentに追加されると同時に、参照設定にも追加されていることが確認できます。

inappbilling_4.png


5.PublicKeyについて

コーディングでGooglePlayサービスとのコネクションを作る際に必要なPublicKeyを取得します。
Google Play Developer Consolの「サービスとAPI」→「ライセンスとアプリ内課金」 からコピーします。

appbilling8.png


次にメモリ上のデータ暗号化して保護します。
Xamarin.InAppBilling.Utilities の Security.Unify を使用します。
string publicKey = Security.Unify(
                        new string[] { "分割したキー1/4", 
"分割したキー2/4",
"分割したキー3/4",
"分割したキー4/4"
}, new int[] { 0,1,2,3 });


6.コーディング

コーディングのサンプルは以下のURLからダウンロードしたXamarin.InAppBillingのフォルダにありますので、参考にしてください。
https://components.xamarin.com/view/xamarin.inappbilling

保存ディレクトリ\xamarin.inappbilling-2.2\samples\InAppBillingTesting\InAppBillingTesting.sln


ポイントは
InAppBilling の InAppBillingServiceConnection.Connect() は コンストラクタなどに記述し、
InAppBillingServiceConnection.BillingHandler.BuyProduct() はボタンイベントなどに記述することで、
一連の処理を分離することが重要です。
※もしも同じスレッド処理内に記述した場合、BillingHandler が null だという Excepitonになります。
Obejct reference not set to an instance of an object.

※2016/10/08 購入履歴処理の記述注意点について追記のブログを掲載しました。
http://itblogdsi.blog.fc2.com/blog-entry-58.html


7.デバッグ

Google Play Developer Consol にAPKをベータ版にアップし、
設定ボタン→「テスト用のアクセス権がある Gmail アカウント」にテスト用アカウントを追加します。
テスト用アカウントでアプリを起動します。


8.実行結果

inappbilling_5.png

※テスト用アカウントは購入ボタンを押下しても実際に請求は来ません。そのかわり、そのアカウントでは、他のアプリの購入もできなくなります。




当ブログの内容をまとめた Xamarin逆引きメニュー は以下のURLからご覧になれます。
http://itblogdsi.blog.fc2.com/blog-entry-81.html


関連記事

コメント

コメントの投稿

アルバム

広告

プロフィール

石河 純


著者名 :石河 純
自己紹介:素人上がりのIT技術者。趣味は卓球・車・ボウリング

IT関連の知識はざっくりとこんな感じです。
【OS関連】
WindowsServer: 2012/2008R2/2003/2000/NT4
Windows: 10/8/7/XP/2000/me/NT4/98
Linux: CentOS RedHatLinux9
Mac: macOS Sierra 10.12 / OSX Lion 10.7.5 / OSX Snow Leopard 10.6.8
【言語・データベース】
VB.net ASP.NET C#.net Java VBA
Xamarin.Forms
Oracle10g SQLServer2008R2 SQLAnywhere8/11/16
ActiveReport CrystalReport ReportNet(IBM)
【ネットワーク関連】
CCNP シスコ技術者認定
Cisco Catalyst シリーズ
Yamaha RTXシリーズ
FireWall関連
【WEB関連】
SEO SEM CSS IIS6/7 apache2

休みの日は卓球をやっています。
現在、卓球用品通販ショップは休業中です。