마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 inapp 결제 관련된 개발중 오류랑 조언

0 추천

안녕하세요 초보개발자입니다. 이번에 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);
    }
}
익명사용자 님이 2018년 6월 12일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...