diff --git a/docs/html/google/google_toc.cs b/docs/html/google/google_toc.cs index b6e26e35333e0..b2051d15074ba 100644 --- a/docs/html/google/google_toc.cs +++ b/docs/html/google/google_toc.cs @@ -45,32 +45,47 @@ + @@ -86,11 +101,9 @@
  • Multiple APK Support
  • -
  • APK Expansion Files
  • -
  • Log in to your publisher account.
  • In the All Google Play listings panel, under the application name, click In-app Products.
  • -
  • On the In-app Products List page, click Add in-app product.
  • -
  • On the Create New In-app Product page (see figure 3), provide details about the item you are +
  • Click Add new product (see figure 2) and provide details about the item you are selling and then click Save or Publish.
  • - -

    - Figure 3. The Create New In-app Product page lets you add items to an +

    + +

    + Figure 2. The Add New Product page lets you add items to an application's product list.

    +

    You must enter the following information for each item in a product list:

    - -

    - Figure 4. Specifying additional currencies and additional languages for the - item title and description. + +

    + +

    + Figure 3. Specifying additional currencies for an in-app product.

    +

    For more information about product IDs and product lists, see Creating In-App Product +href="http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=1072599">Creating In-App Product IDs. For more information about pricing, see In-App Billing +href="http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=1153485">In-App Billing Pricing.

    Note: Be sure to plan your product ID namespace. You cannot reuse @@ -231,7 +222,7 @@ example, the syntax for the CSV file is as follows:

    published or unpublished.

  • purchase_type -

    This is equivalent to the Purchase Type setting in the In-app Products UI. Can be +

    This is equivalent to the Product Type setting in the In-app Products UI. Can be managed_by_android, which is equivalent to Managed per user account in the In-app Products UI, or managed_by_publisher, which is equivalent to Unmanaged in the In-app Products UI.

    @@ -393,41 +384,18 @@ file. on the In-app Product List page. This is useful if you have manually added items to a product list and you want to start managing the product list through a CSV file.

    -

    Choosing a Purchase Type

    +

    Choosing a Product Type

    -

    An item's purchase type controls how Google Play manages the purchase of the item. There are -two purchase types: "managed per user account" and "unmanaged."

    +

    An item's product type controls how Google Play manages the purchase of the item. There are +several product types, including "managed per user account", "unmanaged," and "subscription." However, +note that the product types supported vary +across In-app Billing Version, so you should always choose a product type that's valid for the +version of In-app BIlling that your app uses.

    -

    Items that are managed per user account can be purchased only once per user account. When an item -is managed per user account, Google Play permanently stores the transaction information for each -item on a per-user basis. This enables you to query Google Play with the -RESTORE_TRANSACTIONS request and restore the state of the items a specific user has -purchased.

    - -

    If a user attempts to purchase a managed item that has already been purchased, Google Play -displays an "Item already purchased" error. This occurs during checkout, when Google Play -displays the price and description information on the checkout page. When the user dismisses the -error message, the checkout page disappears and the user returns to your user interface. As a best -practice, your application should prevent the user from seeing this error. The sample application -demonstrates how you can do this by keeping track of items that are managed and already purchased -and not allowing users to select those items from the list. Your application should do something -similar—either graying out the item or hiding it so that it cannot be selected.

    - -

    The "manage by user account" purchase type is useful if you are selling items such as game levels -or application features. These items are not transient and usually need to be restored whenever a -user reinstalls your application, wipes the data on their device, or installs your application on a -new device.

    - -

    Items that are unmanaged do not have their transaction information stored on Google Play, -which means you cannot query Google Play to retrieve transaction information for items whose -purchase type is listed as unmanaged. You are responsible for managing the transaction information -of unmanaged items. Also, unmanaged items can be purchased multiple times as far as Google Play -is concerned, so it's also up to you to control how many times an unmanaged item can be -purchased.

    - -

    The "unmanaged" purchase type is useful if you are selling consumable items, such as fuel or -magic spells. These items are consumed within your application and are usually purchased multiple -times.

    +

    For details, refer to the documentation for In-app Billing Version +3 or In-app +Billing Version 2.

    Handling Refunds

    @@ -436,13 +404,13 @@ in-app purchases must be directed to you (the application developer). You can th refund through your Google Checkout merchant account. When you do this, Google Play receives a refund notification from Google Checkout, and Google Play sends a refund message to your application. For more information, see Handling +href="{@docRoot}google/play/billing/v2/api.html#billing-action-notify">Handling IN_APP_NOTIFY messages and In-app Billing +href="http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=1153485">In-app Billing Pricing.

    Important: You cannot use the Google Checkout API to issue -refunds or cancel in-app billing transactions. You must do this manually through your Google +refunds or cancel In-app Billing transactions. You must do this manually through your Google Checkout merchant account. However, you can use the Google Checkout API to retrieve order information.

    @@ -478,13 +446,13 @@ Google Order Number:

    Setting Up Test Accounts

    -

    The Google Play publisher site lets you set up one or more test accounts. A test account is a -regular Google account that you register on the publisher site as a test account. Test accounts are +

    The Google Play Developer Console lets you set up one or more test accounts. A test account is a +regular Google account that you register on the Developer Console as a test account. Test accounts are authorized to make in-app purchases from applications that you have uploaded to the Google Play -site but have not yet published.

    +Developer Console but have not yet published.

    You can use any Google account as a test account. Test accounts are useful if you want to let -multiple people test in-app billing on applications without giving them access to your publisher +multiple people test In-app Billing on applications without giving them access to your publisher account's sign-in credentials. If you want to own and control the test accounts, you can create the accounts yourself and distribute the credentials to your developers or testers.

    @@ -503,28 +471,39 @@ accounts yourself and distribute the credentials to your developers or testers.<
    1. Log in to your publisher account.
    2. -
    3. On the upper left part of the page, under your name, click Edit profile.
    4. -
    5. On the Edit Profile page, scroll down to the Licensing & In-app Billing panel (see figure - 5).
    6. -
    7. In Test Accounts, add the email addresses for the test accounts you want to register, +
    8. Click the Settings icon. (If you are using the old Developer Console UI, click + Edit profile in the upper left part of the page, under your name,)
    9. +
    10. Locate the License Testing panel. (In the old UI, scroll down to the Licensing & In-app Billing panel.)
    11. +
    12. Add the email addresses for the test accounts you want to register, separating each account with a comma.
    13. Click Save to save your profile changes.
    - -

    - Figure 5. The Licensing and In-app Billing panel of your account's Edit Profile - page lets you register test accounts. +

    Getting an app's license key

    + +

    The Google Play Developer Console provides a public licensing key for each app. To get the key for an app, +load the app's publishing details in the Developer Console and click the Settings icon. The key +for the app is available for copy/paste in License Key for this Application field, as shown in the figure below.

    + +

    Previously, the Developer Console provided a single public key per developer account. To transition apps to the +new per-app public key, the Developer Console set the app-specific key as the former developer key. This ensures +compatibility for apps that depend on the (former) developer key.

    + +
    + +

    + Figure 4. You can find the license key for each app in the Services & APIs panel.

    +

    Where to Get Support

    -

    If you have questions or encounter problems while implementing in-app billing, contact the +

    If you have questions or encounter problems while implementing In-app Billing, contact the support resources listed in the following table (see table 2). By directing your queries to the correct forum, you can get the support you need more quickly.

    Table 2. Developer support resources -for Google Play in-app billing.

    +for Google Play In-app Billing.

    @@ -549,7 +528,7 @@ android - +
    Billing issue tracker Billing project issue trackerBug and issue reports related specifically to in-app billing sample code.Bug and issue reports related specifically to In-app Billing sample code.
    diff --git a/docs/html/google/play/billing/billing_best_practices.jd b/docs/html/google/play/billing/billing_best_practices.jd index dbf10574a2cf9..015e7c3d63c25 100755 --- a/docs/html/google/play/billing/billing_best_practices.jd +++ b/docs/html/google/play/billing/billing_best_practices.jd @@ -7,42 +7,40 @@ parent.link=index.html -

    As you design your in-app billing implementation, be sure to follow the security and design +

    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 Google Play's in-app billing service.

    +anyone who is using Google Play's In-app Billing service.

    Security Best Practices

    -

    Perform signature verification tasks on a server

    +

    Perform signature verification tasks on a server

    If practical, you should perform signature verification on a remote server and not on a device. Implementing the verification process on a server makes it difficult for attackers to break the verification process by reverse engineering your .apk file. If you do offload security processing to a remote server, be sure that the device-server handshake is secure.

    -

    Protect your unlocked content

    +

    Protect your unlocked content

    To prevent malicious users from redistributing your unlocked content, do not bundle it in your .apk file. Instead, do one of the following: