안녕하세요 초보개발자입니다. 이번에 inapp 결제를 추가로 개발하게 되었는데 구형방법이 몇개 있어서
헷갈리고 어렵네요 ㅠㅠ sdk 추가가 없어서 build.gradle에 코드 따로추가하고 코드작성했는데 한번 봐주시면 감사하겠습니다.
인터넷에서 보면서 한거여서 오류를 못잡겠고 이렇게하면 실행이 될지 의문이네요ㅠ조언좀 부탁드립니다.
package com.botosysgolf.goooodholeinone;
public class InAppActivity extends Activity implements BillingProcessor.IBillingHandler {
private PurchaseHeartsAdapter skusAdapter;
private BillingProcessor bp;
public static ArrayList<SkuDetails> products;
private MaterialDialog purchaseDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_in_app);
bp = new BillingProcessor(this, 2zWpWEfRhPIubc+ik2jgju2xG/qUryBwb7oRkD1L246+nqLl816eqkAtF4/FRVQIDAQAB", this);
}
@Override
public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details) {
}
@Override
public void onPurchaseHistoryRestored() {
}
@Override
public void onBillingError(int errorCode, @Nullable Throwable error) {
if (errorCode != Constants.BILLING_RESPONSE_RESULT_USER_CANCELED) {
String errorMessage = getString(R.string.purchase_error) + " (" + errorCode + ")";
Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT).show();
}
}
@Override
public void onBillingInitialized() {
products = (ArrayList<SkuDetails>) bp.getPurchaseListingDetails(new InAppPurchaseItems.getIds());
// Sort ascending order
Collections.sort(products, new Comparator<SkuDetails>() {
@Override
public int compare(SkuDetails o1, SkuDetails o2) {
if (o1.priceLong > o2.priceLong) {
return 1;
} else if (o1.priceLong < o2.priceLong) {
return -1;
} else return 0;
}
});
// 결제 아이템 다이얼로그 설정
purchaseDialog = new MaterialDialog.Builder(getContext())
.customView(purchaseView, false)
.negativeText(R.string.cancel)
.onNegative(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
dialog.dismiss();
}
})
.build();
skusAdapter.update(products);
}
public void purchaseProduct(final String productId) {
if (bp.isPurchased(productId)) {
bp.consumePurchase(productId);
}
bp.purchase(this, productId);
}
}