android studioを使用しています。
Google play developer consoleにおいて、アイテム課金の値段を税引きで200円と設定したのに、アプリ上では税引きで100円と表示されていて困っています。
価格の表示はhttp://y-anz-m.blogspot.jp/2013/02/android-api-version3.htmlを参考にしており、変数名の間違いなどはないのですが、インテントで表示させたダイアログも間違っています。
なぜ設定と異なるのでしょうか。
現状の、アイテム情報を取得し表示させるコードは以下の通りです。アイテムidは、item1,item2,item3の3種類で、それぞれ、100円、130円、200円としてdeveloper consoleに登録しましたが、200円のアイテムが100円と表示されています。これ以外は正常に表示されます。
new AsyncAppTask().execute();を実行すると、サブスレッドが立ち上がり、下記コードが実行します。
class AsyncAppTask extends AsyncTask<Void, Void, String> { private String[] BuyPrice=new String[3]; private String[] BuyDes=new String[3]; private String[] BuyTitle=new String[3]; @Override protected void onPreExecute() { } @Override protected String doInBackground(Void... arg0) { // バックグランド処理をここに記述します ArrayList<String> request_id_list = new ArrayList<String>(); request_id_list.add("item1"); request_id_list.add("item2"); request_id_list.add("item3"); Bundle query = new Bundle(); query.putStringArrayList("ITEM_ID_LIST", request_id_list); // リクエストに対するレスポンスを取得する try { Bundle details = billingService.getSkuDetails(3, getPackageName(), "inapp", query); // レスポンスコードを取得する int responseCode = details.getInt("RESPONSE_CODE"); // 成功 if (responseCode == 0) { // 商品リストを取得する ArrayList<String> response_list = details.getStringArrayList("DETAILS_LIST"); int num; for (String row : response_list) { try { // JSONオブジェクトへ変換する JSONObject object = new JSONObject(row); // 商品情報をログに出力する String pid=object.getString("productId"); num=pid.charAt(pid.length()-1)-'0'-1; BuyPrice[num]=object.getString("price"); BuyDes[num]= object.getString("description"); BuyTitle[num]=object.getString("title"); } catch (JSONException e) { } } } } catch (RemoteException e) { } return "Thread Samples"; } @Override protected void onPostExecute(String result) { TextView item1title=(TextView)findViewById(R.id.textItem1Title); item1title.setText(BuyTitle[0]); TextView item2title=(TextView)findViewById(R.id.textItem2Title); item2title.setText(BuyTitle[1]); TextView item3title=(TextView)findViewById(R.id.textItem3Title); item3title.setText(BuyTitle[2]); TextView item1price=(TextView)findViewById(R.id.textItem1Price); item1price.setText("税抜き"+BuyPrice[0]); TextView item2price=(TextView)findViewById(R.id.textItem2Price); item2price.setText("税抜き"+BuyPrice[1]); TextView item3price=(TextView)findViewById(R.id.textItem3Price); item3price.setText("税抜き"+BuyPrice[2]); TextView item1desc=(TextView)findViewById(R.id.textItem1); item1desc.setText(BuyDes[0]); TextView item2desc=(TextView)findViewById(R.id.textItem2); item2desc.setText(BuyDes[1]); TextView item3desc=(TextView)findViewById(R.id.textItem3); item3desc.setText(BuyDes[2]); Button buttonItem1Buy=(Button)findViewById(R.id.ButtonBuyItem1); buttonItem1Buy.setText(BuyTitle[0]+"を購入"); Button buttonItem2Buy=(Button)findViewById(R.id.ButtonBuyItem2); buttonItem2Buy.setText(BuyTitle[1]+"を購入"); Button buttonItem3Buy=(Button)findViewById(R.id.ButtonBuyItem3); buttonItem3Buy.setText(BuyTitle[2]+"を購入"); } }
なお、JSONObject object = new JSONObject(row);箇所でブレークポイントを張り、デバッグモードでこの場所で止めて、item3の値段を確認したことろ、設定されていない100円でした。
よろしくお願い申し上げます。
あなたの回答
tips
プレビュー