I have a trouble of testing android billing! Someone help me! I do an example:
MainActivity
public class MainActivity extends Activity {
IabHelper mHelper;
IabHelper.QueryInventoryFinishedListener mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result, Inventory inventory){
if (result.isFailure()) {
// handle error
Toast.makeText(getApplicationContext(), "debug: Query occur error!", Toast.LENGTH_SHORT).show();
return;
}
if (result.isSuccess()) {
Toast.makeText(getApplicationContext(), "debug: Query successfully!", Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), "debug: " + inventory.getSkuDetails("product_1").getTitle(), Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), "debug: " + inventory.getSkuDetails("product_2").getTitle(), Toast.LENGTH_SHORT).show();
return;
}
}
};
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
public void onIabPurchaseFinished(IabResult result, Purchase purchase)
{
if (result.isFailure()) {
Toast.makeText(getApplicationContext(), "debug: purcharge failed", Toast.LENGTH_SHORT).show();
Log.d("Purchrge", "Error purchasing: " + result);
return;
}
switch (purchase.getSku()){
case "product_1":
Toast.makeText(getApplicationContext(), "debug: purcharge product 1", Toast.LENGTH_SHORT).show();
break;
case "product_2":
Toast.makeText(getApplicationContext(), "debug: purcharge product 2", Toast.LENGTH_SHORT).show();
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String base64EncodedPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn9zEWzKIvk/hScbZyrZ6HE4y679DUIQPsxfz0mQJmnv3RYCdd7Zcy+peOtnvRyZzmbrAcYmW1FOsH/3dJwuAmdO+Wd9HyDre+vJwAAQ/QI2WA4lbWSl4jVEr7AX9p3J8pBIy3UKRmhjk/PFN8N1jYDUnnPbZJnSkd6eRpiET+MMUsNHIoCxXzmqXvy3bFh/L61gtqUW/acOkWuXnLkn6rVVBzHUL9YLeVRdnN86DnejJySe8DniiAH0sfMP7wxU2y4GoKPjXDeZFNZr4ii22re7ogpIjEfUEb3+FxtxfbjPFz6hONsy/NofkEDznci5fPk8FtulhVbkJ82Rpiq6BXQIDAQAB";
mHelper = new IabHelper(this, base64EncodedPublicKey);
}
public void query(View view){
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
if (!result.isSuccess()) {
// Oh noes, there was a problem.
Log.d("Billing error: ", "Problem setting up In-app Billing: " + result);
Toast.makeText(getApplicationContext(), "debug: IAB is not set up!", Toast.LENGTH_SHORT).show();
}
// Hooray, IAB is fully set up!
Toast.makeText(getApplicationContext(), "debug: Hooray, IAB is fully set up!", Toast.LENGTH_SHORT).show();
List additionalSkuList = new ArrayList();
additionalSkuList.add("product_1");
additionalSkuList.add("product_2");
mHelper.queryInventoryAsync(true, additionalSkuList, mQueryFinishedListener);
}
});
}
public void pay(View view){
mHelper.launchPurchaseFlow(this, "product_1", 10001, mPurchaseFinishedListener, "bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ");
}
@Override
public void onDestroy() {
super.onDestroy();
if (mHelper != null) mHelper.dispose();
mHelper = null;
}
}
activity_main
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Query"
android:onClick="query"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pay"
android:onClick="pay"/>
</LinearLayout>
when deploying the app, I got two buttons (Query, Pay). I click Query button before clicking Pay button.
Then I get the form with:
The item you requested is not available for purchase
I signed the APK in release mode. The app is published and the Products are active. Someone help me with finding our the problem?
Make sure the android:versionCode
in your AndroidManifest.xml
file you are testing, has the same version number as in the .apk
you uploaded as your current active alpha version in the Developer Console.
This at least was my issue as I was getting the same error.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With