diff --git a/docs/html/google/play/billing/api.jd b/docs/html/google/play/billing/api.jd index 3d467150991f6..bc710f99a8f28 100644 --- a/docs/html/google/play/billing/api.jd +++ b/docs/html/google/play/billing/api.jd @@ -1,6 +1,7 @@ -page.title=In-app Billing Version 3 +page.title=In-app Billing API parent.title=In-app Billing parent.link=index.html +page.tags="billing, inapp, iap" @jd:body
diff --git a/docs/html/google/play/billing/billing_integrate.jd b/docs/html/google/play/billing/billing_integrate.jd index dba43cd1b8645..052cf7519bacc 100644 --- a/docs/html/google/play/billing/billing_integrate.jd +++ b/docs/html/google/play/billing/billing_integrate.jd @@ -1,6 +1,7 @@ -page.title=Implementing In-app Billing (IAB Version 3) +page.title=Implementing In-app Billing parent.title=In-app Billing parent.link=index.html +page.tags="inapp, billing, iap" @jd:body
@@ -141,15 +142,17 @@ ServiceConnection mServiceConn = new ServiceConnection() { }; -

In your activity’s {@link android.app.Activity#onCreate onCreate} method, perform the binding by calling the {@link android.content.Context#bindService bindService} method. Pass the method an {@link android.content.Intent} that references the In-app Billing service and an instance of the {@link android.content.ServiceConnection} that you created.

-
-@Override
-public void onCreate(Bundle savedInstanceState) {    
-    super.onCreate(savedInstanceState);
-    setContentView(R.layout.activity_main);        
-    bindService(new 
-        Intent("com.android.vending.billing.InAppBillingService.BIND"),
-                mServiceConn, Context.BIND_AUTO_CREATE);
+

In your activity’s {@link android.app.Activity#onCreate onCreate} method, perform the binding by calling the {@link android.content.Context#bindService bindService} method. Pass the method an {@link android.content.Intent} that references the In-app Billing service and an instance of the {@link android.content.ServiceConnection} that you created, and explicitly set the Intent's target package name to com.android.vending — the package name of Google Play app.

+ +

Caution: To protect the security of billing transactions, always make sure to explicitly set the intent's target package name to com.android.vending, using {@link android.content.Intent#setPackage(java.lang.String) setPackage()} as shown in the example below. Setting the package name explicitly ensures that only the Google Play app can handle billing requests from your app, preventing other apps from intercepting those requests.

+ +
@Override
+public void onCreate(Bundle savedInstanceState) {
+  super.onCreate(savedInstanceState);
+  setContentView(R.layout.activity_main);
+  Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND");
+  serviceIntent.setPackage("com.android.vending");
+  bindService(serviceIntent, mServiceConn, Context.BIND_AUTO_CREATE);
 

You can now use the mService reference to communicate with the Google Play service.

Important: Remember to unbind from the In-app Billing service when you are done with your {@link android.app.Activity}. If you don’t unbind, the open service connection could cause your device’s performance to degrade. This example shows how to perform the unbind operation on a service connection to In-app Billing called {@code mServiceConn} by overriding the activity’s {@link android.app.Activity#onDestroy onDestroy} method.

@@ -269,7 +272,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { } }
-

Security Recommendation: When you send a purchase request, create a String token that uniquely identifies this purchase request and include this token in the {@code developerPayload}.You can use a randomly generated string as the token. When you receive the purchase response from Google Play, make sure to check the returned data signature, the {@code orderId}, and the {@code developerPayload} String. For added security, you should perform the checking on your own secure server. Make sure to verify that the {@code orderId} is a unique value that you have not previously processed, and the {@code developerPayload} String matches the token that you sent previously with the purchase request.

+

Security Recommendation: When you send a purchase request, create a String token that uniquely identifies this purchase request and include this token in the {@code developerPayload}.You can use a randomly generated string as the token. When you receive the purchase response from Google Play, make sure to check the returned data signature, the {@code orderId}, and the {@code developerPayload} String. For added security, you should perform the checking on your own secure server. Make sure to verify that the {@code orderId} is a unique value that you have not previously processed, and the {@code developerPayload} String matches the token that you sent previously with the purchase request.

Querying for Purchased Items

To retrieve information about purchases made by a user from your app, call the {@code getPurchases} method on the In-app Billing Version 3 service. Pass in to the method the In-app Billing API version (“3”), the package name of your calling app, and the purchase type (“inapp” or "subs").

diff --git a/docs/html/google/play/billing/billing_reference.jd b/docs/html/google/play/billing/billing_reference.jd index 4f5e65c741b15..4d80964d6cfba 100644 --- a/docs/html/google/play/billing/billing_reference.jd +++ b/docs/html/google/play/billing/billing_reference.jd @@ -1,4 +1,4 @@ -page.title=In-app Billing Reference (IAB Version 3) +page.title=In-app Billing Reference parent.title=In-app Billing parent.link=index.html @jd:body diff --git a/docs/html/google/play/billing/billing_subscriptions.jd b/docs/html/google/play/billing/billing_subscriptions.jd index 3c72da1953c86..2b78ab36c1629 100644 --- a/docs/html/google/play/billing/billing_subscriptions.jd +++ b/docs/html/google/play/billing/billing_subscriptions.jd @@ -1,9 +1,9 @@ -page.title=Google Play In-App Subscriptions +page.title=In-App Subscriptions parent.title=In-app Billing parent.link=index.html page.metaDescription=Subscriptions let you sell content or features in your app with automated, recurring billing. page.image=/images/play_dev.jpg -page.tags="inapp, iap, billing" +page.tags="subscriptions, billing, inapp, iap" meta.tags="monetization, inappbilling, subscriptions" @jd:body diff --git a/docs/html/google/play/billing/billing_testing.jd b/docs/html/google/play/billing/billing_testing.jd index 8a49433714301..10f5326411dc5 100644 --- a/docs/html/google/play/billing/billing_testing.jd +++ b/docs/html/google/play/billing/billing_testing.jd @@ -1,6 +1,7 @@ page.title=Testing In-app Billing parent.title=In-app Billing parent.link=index.html +page.tags="inapp, billing, iap" @jd:body
diff --git a/docs/html/google/play/billing/index.jd b/docs/html/google/play/billing/index.jd index 18b15233029f4..875271fe8fdee 100644 --- a/docs/html/google/play/billing/index.jd +++ b/docs/html/google/play/billing/index.jd @@ -2,7 +2,7 @@ page.title=Google Play In-app Billing page.metaDescription=In-app Billing lets you sell digital content as one-time purchases or subscriptions. page.image=/images/play_dev.jpg meta.tags="monetizing, inappbilling, subscriptions" -page.tags="inapp, iap, subscriptions" +page.tags="billing, inapp, iap" @jd:body

In-app Billing is a Google Play service that lets you sell digital content from inside diff --git a/docs/html/google/play/billing/versions.jd b/docs/html/google/play/billing/versions.jd index 1271a1578cc19..dbe3ea33bbcbc 100644 --- a/docs/html/google/play/billing/versions.jd +++ b/docs/html/google/play/billing/versions.jd @@ -1,3 +1,4 @@ +excludeFromSuggestions=true page.title=In-app Billing Version Notes @jd:body