-
Notifications
You must be signed in to change notification settings - Fork 58
How to use OpenIAB Unity Plugin with Google Play
The purpose of this page is to guide you through setting in-app purchases on Google Play store, with Unity and the OpenIAB plugin.
We'll use the OpenIAB demo and modify code for a real product use.
You need to have :
-
a version of Unity (the free version is OK)
-
the Android SDK up-to-date
-
a Java JDK correctly installed on your computer ("visible" by Unity)
-
and an Android Device for testing, with Internet access
For instance, the following set up works with these instructions : Unity 4.5.2, Java 1.7.0_65 64 bits on Windows 7, with a Google Nexus 7 on Android 4.4.4.
You'll also need a Google Developer account, with a bank account verified (Google Wallet > Payment settings). Besides that, to have a second Gmail account is more convenient for testing purposes. For instance, on the Nexus 7, you can create an additional user account with a different Gmail address for that.
You're supposed to be familiar with the Google Play Developer Console (GPDC) uploads, and the terms of in-app billing, by reading Official Google Play In-app Billing. You don't need to run all the Java code (OpenIAB-Unity-Plugin is a convenient C# wrapper of these Java functions) but at least to be aware of definition of SKU, License Key, in-app product prices, etc.
-
In the GPDC, create a new application (All applications > Add new application).
-
In "Store Listing", fill all needed fields (descriptions, icons, etc.)
-
Grab the License Key, to put it in your code later (> Services & APIs). It's a string like "MIIBIjANBg...(lots of characters)...E1rQIDAQAB" without a space.
-
Run a new Unity Project, you can also use an existing project but maybe it's safer to start from blank to understand the mechanics first. Grab the last version for Unity here : OpenIAB - Open In-App Billing
-
Open the scene OpenIAB-demo (Assets > OpenIAB-demo).
-
Set it for Android Platform, if needed. Set correctly the Bundle Identifier
- Modify the AndroidManifest.xml (in Assets/Plugins/Android), be sure to have the following permissions:
...
</application>
<!--all-->
<uses-permission android:name="android.permission.INTERNET"/>
<!--Google Play-->
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="org.onepf.openiab.permission.BILLING" />
<!-- for tablets, important ! -->
<uses-feature android:name="android.hardware.telephony" android:required="false" />
<permission android:name="com.tmoney.vending.INBILLING"/>
</manifest>
-
Make a new Keystore and a Key with password.
-
Build & Run on your device. All the tests functions must work (check the connection !), the "Test Purchase" works only once because the consumable product bought is not consumed. The "Purchase Real Product" should tell "The item you were attempting to purchase could not be found".
-
Open the OpenIABTest.cs
-
Set a name of a real product (remember : "An ID should be composed of lower-case letters(a-z), numbers(0-9), underline(_) and dot(.). It should also start with lower-case letters or numbers"). You will reuse it later to declare it in GPDC.
private void Start() {
// Map skus for different stores
OpenIAB.mapSku(SKU, OpenIAB_Android.STORE_GOOGLE, "real_test_openiab_50_cents");
- Replace the license key with yours (step 3)
var public_key = "MIIBIjANBg...pUkwIDAQAB";
- (Optional) If you wish to re-test the billing several times, add code to consume the products :
private void queryInventorySucceededEvent(Inventory inventory) {
Debug.Log("queryInventorySucceededEvent: " + inventory);
if (inventory != null)
{
_label = inventory.ToString();
List<Purchase> prods = inventory.GetAllPurchases();
foreach(Purchase p in prods) OpenIAB.consumeProduct(p);
}
}
private void purchaseSucceededEvent(Purchase purchase) {
Debug.Log("purchaseSucceededEvent: " + purchase);
_label = "PURCHASED:" + purchase.ToString();
OpenIAB.consumeProduct(purchase);
}
- Build the APK.
- Add a new product (GPDC > In-app products > Add new product)
-
Choose "Continue"
-
Set the prices and don't forget to Activate & Save the Product !
-
Upload the APK.
-
Finally, in "Pricing & Distribution" don't forget to check "Content guidelines" and "US export laws"
-
Publish your game !
All you have to do now is wait (about 1h and 1/2) and then test on your Android device after downloaded the game through Google Play. If you cannot find your game after searching, try to access to it on the GPDC interface "View in Google Play store" on the browser of your device. It's because your game is not indexed by the search engine yet or your description is not accurate.