0

私は自分のアプリでGoogleのアプリ購入を実装しています。Google側からコードをダウンロードして、アプリで実行しました。初めて「署名の検証に失敗しました」というエラーが発生したとき、リリースバージョンでアプリをビルドし、署名して、未公開アプリとしてGoogleAndroidマーケットに公開することで解決しました。その賢者がアプリを購入し、承認ボタンを押して購入すると、応答がありましたが、データはonPurchseStateに保存されていません。また、このアプリは、このアプリをダウンロードするには購入する必要があることを示しています。どんな助けでもありがたいです。詳細コードは次のとおりです

onClickメソッドからrequestPurchase(String productId、Stringpayload)を呼び出しています。

@Override
public void onClick(View view) {
    if(view == requestPurchaseButton) {
        mBillingService.requestPurchase("android.test.purchased", "10");
    }
}

コールバックメソッドonRequestPurchaseResponse(Request、ResponseCode)が呼び出されます。ここでのresponseCodeは、値RESULT_OKを提供します。そのため、リクエストはサーバーに送信されました。

   @Override
   public void onRequestPurchaseResponse(RequestPurchase request,
            ResponseCode responseCode) 
   {
          if(responseCode == ResponseCode.RESULT_OK) {
        Log.d("My APP", "onRequestPurchaseResponse.ResponeCode.RESULT_OK");

      } else if(responseCode == ResponseCode.RESULT_USER_CANCELED) {

      } else { 

      }
   }

しかし、コールバックメソッド

@Override
    public void onPurchaseStateChange(PurchaseState purchaseState,
            String itemId, int quantity, long purchaseTime,
            String developerPayload) {
        Log.d("PucrchedState", "onPurchaseStateChanged");

    }

呼び出されることはありません。

4

1 に答える 1

1

onPurchaseStateChange()は非同期で呼び出され、時間がかかる場合があります(通常は数秒以内)。ただし、デバイスがファイアウォールの背後にある場合、応答が失われたり遅延したりする可能性があります。着信接続をブロックしているものがないことを確認してください(Googleトークが機能するかどうかを確認してください)。BroadcastReceiverまた、マニフェストに対応するものを登録していることを確認してください。

于 2012-12-18T08:30:03.923 に答える