Xamarin just released a new component that makes it easy to include Google Play In-App Billing support into a Xamarin.Android mobile application. Get a copy of the component here: http://components.xamarin.com/view/xamarin.inappbilling
About Xamarin.InAppBilling
In-app Billing is a Google Play service that lets you sell a wide range digital content such as new game levels, downloadable media, or premium features directly from inside your Xamarin.Android mobile application. These purchases can either be standard, one-time billed products or recurring, automatically billed subscriptions.
The Xamarin.InAppBilling
component simplifies the process of supporting In-App Billing (Version 3 API) by reducing the amount of common, repetitive code required and by adding several useful, helper functions.
About Xamarin.InAppBilling
In-app Billing is a Google Play service that lets you sell a wide range digital content such as new game levels, downloadable media, or premium features directly from inside your Xamarin.Android mobile application. These purchases can either be standard, one-time billed products or recurring, automatically billed subscriptions.
The Xamarin.InAppBilling
component simplifies the process of supporting In-App Billing (Version 3 API) by reducing the amount of common, repetitive code required and by adding several useful, helper functions.
Features
Xamarin.InAppBilling
supports the following features:
-
Connect – Attaches your Xamarin.Android app to Google Play to process In-App Purchases.
-
QueryInventoryAsync – Given a list of product IDs, this routine will return all available products matching those IDs not already purchased by the current user.
-
GetPurchases – Returns a list of all purchases made by the current user.
-
BuyProduct – Calls Google Play to purchase the given product.
-
ConsumePurchase – Given a purchased product, this routine informs Google Play that the given product has been consumed and is available for purchase again.
-
Disconnect – Unbinds from Google Play when your Activity ends.
Events
Xamarin.InAppBilling
defines the following events that you can monitor and respond to:
-
OnConnected – Raised when the component attaches to Google Play.
-
OnDisconnected – Raised when the component detaches from Google Play.
-
OnInAppBillingError – Raised when an error occurs inside the component.
-
OnProductPurchasedError – Raised when there is an error purchasing a product or subscription.
-
OnProductPurchase – Raised when a product is successfully purchased.
-
OnPurchaseConsumedError – Raised when there is an error consuming a purchase.
-
OnPurchaseConsumed – Raised when a purchase is successfully consumed.
Secure Transactions
When developing Xamarin.Android applications that support In-App Billing there are several steps that must be taken to protect your app from being hacked by a malicious user and keep unlocked content safe (See Google’s Security and Design for more details).
While the best practice is to perform signature verification on a remote server and not on a device, this might not always be possible. Another technique is to obfuscate your Google Play public key and never store the assembled key in memory.
Xamarin.InAppBilling
provides a quick and simple method to break your public key into a several pieces and to obfuscate those pieces. Once a public key has been provided to Xamarin.InAppBilling
it is never stored as plain text, it is always encrypted in memory.