From 555439ca97b2a0e796c13b0718b1bea60593c7a0 Mon Sep 17 00:00:00 2001 From: Dirk Dougherty Date: Mon, 4 Aug 2014 17:33:25 -0700 Subject: [PATCH] Doc change: Add note to use explicit intent when binding to billing service. Change-Id: I820d7aa88b5951736224d358a3a9d3f0caac6956 --- docs/html/google/play/billing/api.jd | 3 ++- docs/html/google/play/billing/billing_integrate.jd | 25 ++++++++++++---------- docs/html/google/play/billing/billing_reference.jd | 2 +- .../google/play/billing/billing_subscriptions.jd | 4 ++-- docs/html/google/play/billing/billing_testing.jd | 1 + docs/html/google/play/billing/index.jd | 2 +- docs/html/google/play/billing/versions.jd | 1 + 7 files changed, 22 insertions(+), 16 deletions(-) diff --git a/docs/html/google/play/billing/api.jd b/docs/html/google/play/billing/api.jd index 3d467150991f..bc710f99a8f2 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 dba43cd1b864..052cf7519bac 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 4f5e65c741b1..4d80964d6cfb 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 3c72da1953c8..2b78ab36c162 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 8a4943371430..10f5326411dc 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 18b15233029f..875271fe8fde 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 1271a1578cc1..dbe3ea33bbcb 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 -- 2.11.0