| page.title=In-app Billing Overview |
| parent.title=In-app Billing |
| parent.link=index.html |
| @jd:body |
| |
| <div id="qv-wrapper"> |
| <div id="qv"> |
| <h2>Quickview</h2> |
| <ul> |
| <li>Use In-app Billing to sell digital goods, including one-time items and |
| recurring subscriptions.</li> |
| <li>Supported for any app published on Google Play. You only need a Google |
| Play Developer Console account and a Google Wallet merchant account.</li> |
| <li>Checkout processing is automatically handled by Google Play, with the |
| same look-and-feel as for app purchases.</li> |
| </ul> |
| <h2>In this document</h2> |
| <ol> |
| <li><a href="#api">In-app Billing API</a></li> |
| <li><a href="#products">In-app Products</a> |
| <ol> |
| <li><a href="#prodtypes">Product Types</a> |
| </ol> |
| </li> |
| <li><a href="#console">Google Play Developer Console</a></li> |
| <li><a href="#checkout">Google Play Purchase Flow</a></li> |
| <li><a href="#samples">Sample App</a></li> |
| <li><a href="#migration">Migration Considerations</a></li> |
| </ol> |
| <h2>Related Samples</h2> |
| <ol> |
| <li><a href="{@docRoot}training/in-app-billing/preparing-iab-app.html#GetSample">Sample Application (V3)</a></li> |
| </ol> |
| </div> |
| </div> |
| |
| <p>This documentation describes the fundamental In-app Billing components and |
| features that you need to understand in order to add In-app |
| Billing features into your application.</p> |
| |
| <h2 id="api">In-app Billing API</h2> |
| <p>Your application accesses the In-app Billing service using an API that is |
| exposed by the Google Play app that is installed on the device. The Google Play |
| app then conveys billing requests and responses between your |
| application and the Google Play server. In practice, your application never |
| directly communicates with the Google Play server. Instead, your application |
| sends billing requests to the Google Play application over interprocess |
| communication (IPC) and receives responses from the Google Play app. |
| Your application does not manage any network connections between itself and |
| the Google Play server.</p> |
| <p>In-app Billing can be implemented only in applications that you publish |
| through Google Play. To complete in-app purchase requests, the Google Play app |
| must be able to access the Google Play server over the network.</p> |
| |
| <p>In-app billing Version 3 is the latest version, and maintains very broad |
| compatibility across the range of Android devices. In-app Billing Version 3 is |
| supported on devices running Android 2.2 or higher that have the latest version |
| of the Google Play store installed (<a href="{@docRoot}about/dashboards/index.html">a vast majority</a> of active devices).</p> |
| |
| <h4>Version 3 features</h4> |
| <ul> |
| <li>Requests are sent through a streamlined API that allows you to easily request |
| product details from Google Play, order in-app products, and quickly restore |
| items based on users' product ownership</li> |
| <li>Order information is synchronously propagated to the device on purchase |
| completion</li> |
| <li>All purchases are “managed” (that is, Google Play keeps track of the user's |
| ownership of in-app products). The user cannot own multiple copies of an in-app |
| item; only one copy can be owned at any point in time</li> |
| <li>Purchased items can be consumed. When consumed, the item reverts to the |
| "unowned" state and can be purchased again from Google Play</li> |
| <li>Provides support for <a |
| href="{@docRoot}google/play/billing/billing_subscriptions.html">subscriptions</a></li> |
| </ul> |
| <p>For details about other versions of In-app Billing, see the |
| <a href="{@docRoot}google/play/billing/versions.html">Version Notes</a>.</p> |
| |
| <h2 id="products">In-app Products</h2> |
| <p>In-app products are the digital goods that you offer for sale from inside your |
| application to users. Examples of digital goods includes in-game currency, |
| application feature upgrades that enhance the user experience, and new content |
| for your application.</p> |
| <p>You can use In-app Billing to sell only digital content. |
| You cannot use In-app Billing to sell physical goods, personal services, or |
| anything that requires physical delivery. Unlike with priced applications, once |
| the user has purchased an in-app product there is no refund window.</p> |
| <p>Google Play does not provide any form of content delivery. You are |
| responsible for delivering the digital content that you sell in your |
| applications. In-app products are always explicitly associated with one and |
| only one app. That is, one application cannot purchase an in-app product |
| published for another app, even if they are from the same developer.</p> |
| |
| <h3 id="prodtypes">Product types</h3> |
| <p>In-app Billing supports different product types to give you flexibility in |
| how you monetize your application. In all cases, you define your products using |
| the Google Play Developer Console.</p> |
| <p>You can specify these types of products for your In-app Billing application |
| — <em>managed in-app products</em> and <em>subscriptions</em>. Google Play |
| handles and tracks ownership for in-app products and subscriptions on your |
| application on a per user account basis. <a href="{@docRoot}google/play/billing/api.html#producttypes">Learn more about the product types supported by In-app Billing Version 3</a>.</p> |
| |
| <h2 id="console">Google Play Developer Console</h2> |
| <p>The Developer Console is where you can publish your |
| In-app Billing application, and manage the various in-app products that are |
| available for purchase from your application.</p> |
| <p>You can create a product list of |
| digital goods that are associated with your application, including items for |
| one-time purchase and recurring subscriptions. For each item, you can define |
| information such as the item’s unique product ID (also called its SKU), product |
| type, pricing, description, and how Google Play should handle and track |
| purchases for that product.</p> |
| <p>You can also create test accounts to authorize |
| access for testing applications that are unpublished.</p> |
| <p>To learn how to use the Developer Console to configure your in-app |
| products and product list, see |
| <a href="{@docRoot}google/play/billing/billing_admin.html">Administering |
| In-app Billing</a>.</p> |
| |
| <h2 id="checkout">Google Play Purchase Flow</h2> |
| <p>Google Play uses the same checkout backend service as is used for application |
| purchases, so your users experience a consistent and familiar purchase flow.</p> |
| <p class="note"><strong>Important:</strong> You must have a Google Wallet |
| merchant account to use the In-app Billing service on Google Play.</p> |
| <p>To initiate a purchase, your application sends a billing request for a |
| specific in-app product. Google Play then handles all of the checkout details for |
| the transaction, including requesting and validating the form of payment and |
| processing the financial transaction.</p> |
| <p>When the checkout process is complete, |
| Google Play sends your application the purchase details, such as the order |
| number, the order date and time, and the price paid. At no point does your |
| application have to handle any financial transactions; that role is provided by |
| Google Play.</p> |
| |
| <h2 id="samples">Sample Application</h2> |
| <p>To help you integrate In-app Billing into your application, the Android SDK |
| provides a sample application that demonstrates how to sell in-app products and subscriptions |
| from inside an app.</p> |
| |
| <p>The <a href="{@docRoot}training/in-app-billing/preparing-iab-app.html#GetSample">TrivialDrive sample for the Version 3 API</a> sample shows how to use the In-app Billing Version 3 API |
| to implement in-app product and subscription purchases for a driving game. The |
| application demonstrates how to send In-app Billing requests, and handle |
| synchronous responses from Google Play. The application also shows how to record |
| item consumption with the API. The Version 3 sample includes convenience classes |
| for processing In-app Billing operations as well as perform automatic signature |
| verification.</p> |
| |
| <p class="caution"><strong>Recommendation</strong>: Make sure to obfuscate the |
| code in your application before you publish it. For more information, see |
| <a href="{@docRoot}google/play/billing/billing_best_practices.html">Security |
| and Design</a>.</p> |
| |
| <h2 id="migration">Migration Considerations</h2> |
| <p>If you have an existing In-app Billing implementation that uses Version 2 or |
| earlier, it is strongly recommended that you migrate to <a href="{@docRoot}google/play/billing/api.html">In-app Billing Version 3</a> at your earliest convenience.</p> |
| |
| <p>If you have published apps selling in-app products, note that:</p> |
| <ul> |
| <li>Managed items and subscriptions that you have previously defined in the Developer Console will |
| work with Version 3 as before.</li> |
| <li>Unmanaged items that you have defined for existing applications will be |
| treated as managed products if you make a purchase request for these items using |
| the Version 3 API. You do not need to create a new product entry in Developer |
| Console for these items, and you can use the same product IDs to purchase these |
| items. They will still continue to be treated as unmanaged items if you make a |
| purchase request for them using the Version 2 or earlier API. |
| </ul> |
| |
| |
| |
| |
| |