在应用程序结算 - onIabPurchaseFinished从未调用,但购买成功

时间:2016-01-15 19:24:24

标签: android in-app-purchase google-play-services in-app-billing

我在使用Google App结算服务时遇到问题。当我为某个项目进行采购申请时:

btn10.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            ITEM_SKU = Constants.ITENS[0].getCod();

            try {

                    token = getToken();

                    mHelper.launchPurchaseFlow(getActivity(), ITEM_SKU,RC_REQUEST,
                            FragmentPurchase.this, token);


            } catch (Exception e) {
                Toast.makeText(view.getContext(), "...", Toast.LENGTH_LONG).show();
            }

        }
    });

它已被购买并显示成功的付款消息,但该服务未调用完成请求,因此我无法向用户提供状态。

这部分从未被称为:

 @Override
public void onIabPurchaseFinished(IabResult result, Purchase info) {

    if (result.isFailure()) {
        ...
        return;
    }
    else if(info.getDeveloperPayload().equals(token)){
        ...
        mHelper.consumeAsync(info,
                FragmentPurchase.this);
    }
}

我已经阅读了其他答案,我已经注意到并实施了所有提示,但它仍然没有打电话给听众。

我的班级也在打电话:

 @Override
public void onActivityResult(int requestCode, int resultCode,
                             Intent data)
{
    if (mHelper != null && !mHelper.handleActivityResult(requestCode,
            resultCode, data)) {
        super.onActivityResult(requestCode, resultCode, data);
    }
}

这是我的onConsumeFinished:

@Override
public void onConsumeFinished(Purchase purchase, IabResult result) {
    Person person = func.getUser(view.getContext());
    Log.d(TAG, "Consumo do item.");
    if (result.isSuccess()) {
        String menssage =  result.getMessage();
        int resultCode = result.getResponse();
        String sku = purchase.getSku();
        String tokenLocal = purchase.getDeveloperPayload();
        String[] params = {person.getId(),person.getAuth_token(),sku, String.valueOf(resultCode),menssage,tokenLocal};
        consumeItemWS(params);

    } else {
         Toast.makeText(view.getContext(), "... " , Toast.LENGTH_LONG).show();             

    }

我不知道出了什么问题,我根据文档做了,但是没有用。

0 个答案:

没有答案