Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e002734d authored by Bill Gruber's avatar Bill Gruber Committed by Android (Google) Code Review
Browse files

Merge "IAB doc updates for final launch plus bug fixes Bug: 3491550 Bug:...

Merge "IAB doc updates for final launch plus bug fixes Bug: 3491550 Bug: 3491426 Bug: 3407948" into honeycomb
parents ef6b305b dd8ea580
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -364,7 +364,7 @@
      <li class="toggle-list">
        <div><a href="<?cs var:toroot?>guide/market/billing/index.html">
            <span class="en">In-app Billing</span></a>
          <span class="new">new!</span>
          <span class="new">updated</span>
        </div>
        <ul>
          <li><a href="<?cs var:toroot?>guide/market/billing/billing_about.html">
+39 −24
Original line number Diff line number Diff line
@@ -3,12 +3,6 @@ parent.title=In-app Billing
parent.link=index.html
@jd:body

<style type="text/css">
  #jd-content {
    background:transparent url({@docRoot}assets/images/preliminary.png) repeat scroll 0 0;
  }
</style>

<div id="qv-wrapper">
<div id="qv">
  <h2>In this document</h2>
@@ -31,15 +25,9 @@ parent.link=index.html
</div>
</div>

<div class="special" style="margin-right:345px">
  <p>This documentation provides an early look at the Android Market In-app Billing service. The documentation may change without notice.</p>
</div>

<p>This documentation gives you an early look at the Android Market In-app Billing service. We are providing this documentation to help you get started designing your in-app billing implementation. </p>
<p>The in-app billing release has now entered the testing phase. During this phase we are providing <a href="{@docRoot}guide/market/billing/index.html">documentation</a> and a <a href="{@docRoot}guide/market/billing/billing_integrate.html#billing-download">sample application</a> that shows you how to implement in-app billing. You can use these resources to start designing and testing your in-app billing implementations.</p>

<p>In addition to this documentation, we are providing a <a href="{@docRoot}guide/market/billing/billing_integrate.html#billing-download">sample application</a> that shows you how to implement in-app billing. Although you can compile the sample application, load it on a device, and run it, you cannot use it to make purchases at this time. In-app billing relies on version 2.3.0 (and higher) of the Android Market application, which may not be available yet.</p>

<p>In the coming weeks we plan to launch the testing phase of the in-app billing release. Following the testing phase we will launch in-app billing to the general public (see table 1 for a summary of upcoming launch milestones).
<p>Following the testing phase we will launch in-app billing to the general public (see table 1 for a summary launch milestones).

<p class="table-caption"><strong>Table 1.</strong> Summary of launch milestones for in-app billing.</p>

@@ -47,29 +35,56 @@ parent.link=index.html

<tr>
<th>Release Phase</th>
<th>Android Market Application</th>
<th>Status</th>
<th>Description</th>
</tr>
<tr>
  <td>Early Development</td>
  <td>Version 2.3.0 not available</td>
  <td>Provides an early look at documentation and sample application.</td>
  <td>Completed</td>
  <td>Provided an early look at the documentation and the sample application.</td>
</tr>
<tr>
  <td>Test Development</td>
  <td>Version 2.3.0 available to developers and users</td>
  <td>In-app billing service allows static testing with reserved product IDs. You cannot publish applications that use in-app billing.</td>
  <td>In process</td>
  <td>You can perform static testing with reserved product IDs and end-to-end testing with real product IDs. You cannot publish applications that use in-app billing.</td>
</tr>
<tr>
  <td>Final Release</td>
  <td>Version 2.3.0 available to developers and users</td>
  <td>In-app billing service allows end-to-end testing of in-app billing. You can publish applications that use in-app billing.</td>
  <td>Coming soon</td>
  <td>You can perform static testing with reserved product IDs and end-to-end testing with real product IDs. You can publish applications that use in-app billing.</td>
</tr>

</table>

<p>During the testing phase we are releasing version 2.3.4 of the Android Market application and version 5.0.12 of the MyApps application. To support in-app billing, devices running Android 3.0 must have version 5.0.12 (or higher) of the MyApps application. Devices running all other versions of Android must have version 2.3.4 (or higher) of the Android Market application. Table 2 summarizes these requirements.</p>

<p class="table-caption"><strong>Table 2.</strong> Summary of in-app billing requirements.</p>

<table>

<tr>
<th>If your device is running this...</th>
<th>In-app billing requires this</th>
</tr>
<tr>
  <td>Android 1.6</td>
  <td>Android Market 2.3.4 (or higher)</td>
</tr>
<tr>
  <td>Android 2.x</td>
  <td>Android Market 2.3.4 (or higher)</td>
</tr>
<tr>
  <td>Android 3.0</td>
  <td>MyApps 5.0.12 (or higher)</td>
</tr>

</table>

<p>During the testing phase we will release version 2.3.0 of the Android Market application. This will allow you to test your in-app billing implementation using the <a href="{@docRoot}guide/market/billing/billing_testing.html#billing-testing-static">reserved product IDs and test responses</a>. However, you will not be able to test end-to-end in-app purchases during the testing phase, and you will not be able to publish an application that uses in in-app billing. </p>
<p class="note"><strong>Note:</strong> To learn how to check the version of the Android Market application, see <a href="http://market.android.com/support/bin/answer.py?answer=190860">Updating Android Market</a>. To learn about other requirements for in-app billing, see <a href="{@docRoot}guide/market/billing/billing_overview.html#billing-limitations">Requirements and Limitations.</a></p>

<p>You can test your in-app billing implementation two ways during the testing phase: you can use the <a href="{@docRoot}guide/market/billing/billing_testing.html#billing-testing-static">reserved product IDs</a> to test static responses or you can use <a href="{@docRoot}guide/market/billing/billing_testing.html#billing-testing-real">your own product IDs</a> to test end-to-end in-app purchases. To perform end-to-end testing you need to upload your application as a draft application and add products to the application's product list.</p>

<p>After the testing phase is complete, we will release in-app billing to the general public. This will enable you to perform end-to-end tests of your in-app billing implementation using your actual in-app products. You will also be able to publish applications that use in-app billing.</p>
<p>During the testing phase, you cannot publish applications that use in-app billing; you can only upload the applications as draft applications. After the testing phase is complete, we will launch in-app billing to the general public and you will be able to publish applications that use in-app billing.</p>

<p>This documentation may change in the coming weeks as we move from the preview phase to the testing phase of this beta release. Be sure to check this documentation frequently for updates.</p>
 No newline at end of file
<p>This documentation may change as we move from the testing phase to the final release. Be sure to check this documentation frequently for updates.</p>
+34 −31
Original line number Diff line number Diff line
@@ -3,12 +3,6 @@ parent.title=In-app Billing
parent.link=index.html
@jd:body

<style type="text/css">
  #jd-content {
    background:transparent url({@docRoot}assets/images/preliminary.png) repeat scroll 0 0;
  }
</style>

<div id="qv-wrapper">
<div id="qv">
  <h2>In this document</h2>
@@ -35,25 +29,32 @@ parent.link=index.html
</div>

<div class="special" style="margin-right:345px">
  <p>This documentation provides an early look at the Android Market In-app Billing service. The documentation may change without notice.</p>
  <p>During the testing phase of the in-app billing release you cannot publish applications that implement in-app billing. You can only upload in-app billing applications as draft applications. For more information, see <a href="{@docRoot}guide/market/billing/billing_about.html">About this Release</a></p>
</div>

<p>In-app billing frees you from processing financial transactions, but you still need to perform a few administrative tasks, including setting up and maintaining your product list on the publisher site, registering test accounts, and handling refunds when necessary.</p>

<p>You must have an Android Market publisher account to set up a product list and register test accounts. And you must have a Google Checkout merchant account to issue refunds to your users. If you already have a publisher account on Android Market, you can use your existing account. You do not need to register for a new account to support in-app billing. If you do not have a publisher account, you can register as an Android Market developer and set up a publisher account at the Android Market <a href="http://market.android.com/publish">publisher site</a>. If you do not have a Google Checkout merchant account, you can register for one at the <a href="http://checkout.google.com">Google Checkout site</a>.</p>
<p>You must have an Android Market publisher account to register test accounts. And you must have a Google Checkout Merchant account to create a product list and issue refunds to your users. If you already have a publisher account on Android Market, you can use your existing account. You do not need to register for a new account to support in-app billing. If you do not have a publisher account, you can register as an Android Market developer and set up a publisher account at the Android Market <a href="http://market.android.com/publish">publisher site</a>. If you do not have a Google Checkout Merchant account, you can register for one at the <a href="http://checkout.google.com">Google Checkout site</a>.</p>

<h2 id="billing-list-setup">Creating a Product List</h2>

<p>The Android Market publisher site provides a product list for each of your published applications. You can sell an item using the in-app billing feature only if the item is listed on an application's product list. Each application has its own product list; you cannot sell items that are listed in another application's product list.</p>

<p>A product list contains information about the items you are selling, such as a product id, product description, and price (see figure 1). The product list stores only metadata about the items you are selling in your application. It does not store any digital content. You are responsible for storing and delivering the digital content that you sell in your applications.</p>
<p>You can access an application's product list by clicking the <strong>In-App Products</strong> link that appears under each of the applications that are listed for your publisher account (see figure 1). The <strong>In-App Products</strong> link appears only if you have a Google Checkout Merchant account and an application's manifest includes the <code>com.android.vending.BILLING</code> permission.</p>

<div style="margin-bottom:2em;">
<img src="{@docRoot}images/billing_product_list.png" style="text-align:left;margin-bottom:0;" />
<div style="margin:0 2em;padding:0"><strong>Figure 1.</strong> An application's product list.</div>
</div>
<img src="{@docRoot}images/billing_product_list_entry.png" height="540" id="figure1" />
<p class="img-caption">
  <strong>Figure 1.</strong> You can access an application's product list by clicking the <strong>In-App Products</strong> link.
</p>

<p>A product list contains information about the items you are selling, such as a product id, product description, and price (see figure 2). The product list stores only metadata about the items you are selling in your application. It does not store any digital content. You are responsible for storing and delivering the digital content that you sell in your applications.</p>

<img src="{@docRoot}images/billing_product_list.png" height="742" id="figure2" />
<p class="img-caption">
  <strong>Figure 2.</strong> An application's product list.
</p>

<p>You can create a product list for a published application or a draft application that's been uploaded and saved to the Android Market site. However, the application's manifest must include the com.android.vending.BILLING permission. If an application's manifest does not include this permission, you will be able to edit existing items in the product list but you will not be able to add new items to the list. For more information, see <a href="#billing-permission">Modifying your application's AndroidManifest.xml file</a>.</p>
<p>You can create a product list for a published application or a draft application that's been uploaded and saved to the Android Market site. However, you must have a Google Checkout Merchant account and the application's manifest must include the <code>com.android.vending.BILLING</code> permission. If an application's manifest does not include this permission, you will be able to edit existing items in the product list but you will not be able to add new items to the list. For more information, see <a href="#billing-permission">Modifying your application's AndroidManifest.xml file</a>.</p>

<p>To create a product list for an application, follow these steps:</p>

@@ -61,13 +62,13 @@ parent.link=index.html
  <li><a href="http://market.android.com/publish">Log in</a> to your publisher account.</li>
  <li>In the <strong>All Android Market listings</strong> panel, under the application name, click <strong>In-app Products</strong>.</li>
  <li>On the In-app Products List page, click <strong>Add in-app product</strong>.</li>
  <li>On the Create New In-app Product page (see figure 2), provide details about the item you are selling and then click <strong>Save</strong>.</li>
  <li>On the Create New In-app Product page (see figure 3), provide details about the item you are selling and then click <strong>Save</strong>.</li>
</ol>

<div style="margin-bottom:2em;">
<img src="{@docRoot}images/billing_list_form.png" style="text-align:left;margin-bottom:0;" />
<div style="margin:0 2em;padding:0"><strong>Figure 2.</strong> The Create New In-app Product page lets you add items to an application's product list.</div>
</div>
<img src="{@docRoot}images/billing_list_form.png" height="854" id="figure3" />
<p class="img-caption">
  f<strong>Figure 3.</strong> The Create New In-app Product page lets you add items to an application's product list.
</p>

<p>You must enter the following information for each item in a product list:</p>
<ul>
@@ -79,22 +80,25 @@ parent.link=index.html
    <p>The purchase type can be "managed per user account" or "unmanaged." You can specify an item's purchase type only through the publisher site and you can never change an item's purchase type once you specify it. For more information, see <a href="#billing_purchase_type">Choosing a purchase type</a> later in this document.</p>
  </li>
  <li><strong>Publishing State</strong>
    <p>An item's publishing state can be "published" or "unpublished." However, to be visible to a user during checkout, an item's publishing state must be set to "published" and the item's application must be published on Android Market. (Note: This is not true for test accounts: that is, an item is visible to a trusted tester if the application is not published and the item is published. See <a href="{@docRoot}guide/market/billing/billing_testing.html#billing-testing-real">Testing In-app Billing</a> for more information.)</p>
    <p>An item's publishing state can be "published" or "unpublished." However, to be visible to a user during checkout, an item's publishing state must be set to "published" and the item's application must be published on Android Market.</p>
    <p class="note"><strong>Note:</strong> This is not true for test accounts. An item is visible to a test account if the application is not published and the item is published. See <a href="{@docRoot}guide/market/billing/billing_testing.html#billing-testing-real">Testing In-app Billing</a> for more information.</p>
  </li>
  <li><strong>Language</strong>
    <p>A product list inherits its language from the parent application.</p>
  </li>
  <li><strong>Title</strong>
    <p>The title is a short descriptor for the item. For example, "sleeping potion." Titles must be unique across an application's namespace. Every item must have a title. The title is visible to users during checkout.</p>
    <p>The title is a short descriptor for the item. For example, "Sleeping potion." Titles must be unique across an application's namespace. Every item must have a title. The title is visible to users during checkout. For optimum appearance, titles should be no longer than 25 characters; however, titles can be up to 55 characters in length.</p>
  </li>
  <li><strong>Description</strong>
    <p>The description is a long descriptor for the item. For example, "Instantly puts creatures to sleep. Does not work on angry elves." Every item must have a description. The description is visible to users during checkout.</p>
    <p>The description is a long descriptor for the item. For example, "Instantly puts creatures to sleep. Does not work on angry elves." Every item must have a description. The description is visible to users during checkout. Descriptions can be up to 80 characters in length.</p>
  </li>
  <li><strong>Price</strong>
    <p>Every item must have a price greater than zero; you cannot sell free items.</p>
    <p>Every item must have a price greater than zero; you cannot set a price of "0" (free).</p>
  </li>
</ul>

<p>For more information about product IDs and product lists, see <a href="http://market.android.com/support/bin/answer.py?answer=1072599">Creating In-App Product IDs</a>. For more information about pricing, see <a href="http://market.android.com/support/bin/answer.py?answer=1153485">In-App Billing Pricing</a>.</p>

<p class="note"><strong>Note</strong>: Be sure to plan your product ID namespace. You cannot reuse or modify product IDs after you save them.</p>

<h3 id="billing-purchase-type">Choosing a Purchase Type</h3>
@@ -113,7 +117,7 @@ parent.link=index.html

<h2 id="billing-refunds">Handling Refunds</h2>

<p>The in-app billing feature does not allow users to send a refund request to Android Market. Refunds for purchases that were made with the in-app billing feature must be directed to you (the application developer). You can then process the refund through your Google Checkout merchant account. When you do this, Android Market receives a refund notification from Google Checkout, and Android Market sends a refund message to your application. Your application can handle this message the same way it handles the response from an application-initiated <code>REQUEST_PURCHASE</code> message so that ultimately your application receives a purchase state change message that includes information about the item that's been refunded.</p>
<p>The in-app billing feature does not allow users to send a refund request to Android Market. Refunds for purchases that were made with the in-app billing feature must be directed to you (the application developer). You can then process the refund through your Google Checkout Merchant account. When you do this, Android Market receives a refund notification from Google Checkout, and Android Market sends a refund message to your application. For more information, see <a href="{@docRoot}guide/market/billing/billing_overview.html#billing-action-notify">Handling IN_APP_NOTIFY messages</a> and <a href="http://www.google.com/support/androidmarket/bin/answer.py?answer=1153485">In-app Billing Pricing</a>.</p>

<h2 id="billing-testing-setup">Setting Up Test Accounts</h2>

@@ -134,16 +138,15 @@ parent.link=index.html
<ol>
  <li><a href="http://market.android.com/publish">Log in</a> to your publisher account.</li>
  <li>On the upper left part of the page, under your name, click <strong>Edit profile</strong>.</li>
  <li>On the Edit Profile page, scroll down to the Licensing &amp; In-app Billing panel (see figure 3).</li>
  <li>On the Edit Profile page, scroll down to the Licensing &amp; In-app Billing panel (see figure 4).</li>
  <li>In Test Accounts, add the email addresses for the test accounts you want to register, separating each account with a comma.</li>
  <li>Click <strong>Save</strong> to save your profile changes.</li>
</ol>

<div style="margin-bottom:2em;">
<img src="{@docRoot}images/billing_public_key.png" style="text-align:left;margin-bottom:0;" />
<div style="margin:0 2em;padding:0"><strong>Figure 3.</strong> The Licensing and In-app Billing
panel of your account's Edit Profile page lets you register test accounts.</div>
</div>
<img src="{@docRoot}images/billing_public_key.png" height="510" id="figure4" />
<p class="img-caption">
  <strong>Figure 4.</strong> The Licensing and In-app Billing panel of your account's Edit Profile page lets you register test accounts.
</p>

<h2 id="billing-support">Where to Get Support</h2>

+4 −9
Original line number Diff line number Diff line
@@ -3,12 +3,6 @@ parent.title=In-app Billing
parent.link=index.html
@jd:body

<style type="text/css">
  #jd-content {
    background:transparent url({@docRoot}assets/images/preliminary.png) repeat scroll 0 0;
  }
</style>

<div id="qv-wrapper">
<div id="qv">
  <h2>In this document</h2>
@@ -31,9 +25,10 @@ parent.link=index.html
</div>

<div class="special" style="margin-right:345px">
  <p>This documentation provides an early look at the Android Market In-app Billing service. The documentation may change without notice.</p>
  <p>During the testing phase of the in-app billing release you cannot publish applications that implement in-app billing. You can only upload in-app billing applications as draft applications. For more information, see <a href="{@docRoot}guide/market/billing/billing_about.html">About this Release</a></p>
</div>
<p>As you design your in-app billing implementation, be sure to follow the security and design guidelines that are discussed in this document. These guidelines are recommended best practices for anyone who is using the Android Market In-app Billing service and can be incorporated into any in-app billing implementation.</p>

<p>As you design your in-app billing implementation, be sure to follow the security and design guidelines that are discussed in this document. These guidelines are recommended best practices for anyone who is using the Android Market in-app billing service and can be incorporated into any in-app billing implementation.</p>

<h2>Security Best Practices</h2>

+140 −58

File changed.

Preview size limit exceeded, changes collapsed.

Loading