나는이 문서 http://developer.android.com/google/play/billing/billing_integrate.html을 따라 버튼을 누른 후 인앱 구매 절차를 시작하는 테스트 응용 프로그램을 만들었습니다.
알파 버전으로 응용 프로그램을 게시하고 인앱 구매를 테스트 한 결과 작동합니다.InApp 구매시 IabHelper 클래스는 언제 필요합니까?
내 문제는 다른 인앱 구매 사례에 혼란스러워한다는 것입니다. 그들은 모두 "IabHelper"라는 클래스를 사용하여 인앱 구매를 수행합니다. 하지만 인앱 구매를하려면이 클래스가 필요하지 않은 것 같습니다. 클래스는 공식적인 In-App-Billing V3 "TrivalDrive"예에서도 사용되었지만 위에 게시 된 인앱 결제 가이드에는 언급되지 않았습니다.
누군가가 설명해 주시겠습니까? 왜 IabHelper 클래스를 사용해야합니까?
미리 감사드립니다.
private void doPurchase() {
try {
Bundle buyIntentBundle = mService.getBuyIntent(3, getPackageName(), "premium.upgrade",
"inapp", "");
if (buyIntentBundle != null && buyIntentBundle.getInt("RESPONSE_CODE") == 0) {
PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT");
startIntentSenderForResult(pendingIntent.getIntentSender(), 1001, new Intent(),
Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0));
}
} catch (SendIntentException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1001) {
String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA");
if (resultCode == RESULT_OK) {
try {
JSONObject jo = new JSONObject(purchaseData);
String sku = jo.getString("productId");
Log.i(">>>", "You have bought the "
+ sku
+ ". Excellent choice, "
+ "adventurer!");
} catch (JSONException e) {
Log.e(">>>", "Failed to parse purchase data.");
e.printStackTrace();
}
}
}
}
Dang. Google이 버그없는 앱내 구매 구현을 작성조차하지 못하는 것은 매우 불쌍한 것입니다. – trans
@trans 그래, 플랫폼의 근본적인 부분이기 때문에 다소 이상해. 그럼에도 불구하고 나는 눈에 띄는 문제가 발생하지 않고 [Checkout] (https://github.com/serso/android-checkout)이라는 라이브러리를 꽤 오랫동안 사용 해왔다. IAB와 관련된 모든 것에 대해 적극 추천합니다. – reVerse