質問するログイン新規登録

質問編集履歴

6

文言修正

2016/04/11 06:38

投稿

yori_roba
yori_roba

スコア10

title CHANGED
File without changes
body CHANGED
@@ -13,7 +13,7 @@
13
13
  現状、エラー時の処理をユーザーキャンセル時、失敗時と分けて実装しています。
14
14
  保留状態となった場合の処理がなく、またどうしたら保留状態を再現できるかがわかりませんでした。
15
15
 
16
- ですので、保留状態の再現方法があれば教えていただきたいです。
16
+ ですので、保留状態の対策や、再現方法などがあれば教えていただきたいです。
17
17
  よろしくお願いします。
18
18
 
19
19
  ###該当のソースコード

5

文言修正

2016/04/11 06:38

投稿

yori_roba
yori_roba

スコア10

title CHANGED
File without changes
body CHANGED
@@ -1,12 +1,20 @@
1
1
  ###実現したいこと
2
- Androidアプリ内課金のシステムを作ってす。
2
+ Androidアプリ内課金のことにつての質問です。
3
+
4
+ 現在、Eclipse(Java)にてAndroidの開発をしております。
3
5
  課金時に決済が保留になった時の対策を考えています。
4
6
 
5
7
  ###発生している問題
8
+ お客様から、アプリ内課金時にGoogle側の購入ステータスが「保留」のまま購入完了しないというお問い合わせがありました。
9
+
10
+ 注文が保留になるケースの詳細です↓
11
+ https://support.google.com/payments/answer/6220327?hl=ja
12
+
6
13
  現状、エラー時の処理をユーザーキャンセル時、失敗時と分けて実装しています。
7
14
  保留状態となった場合の処理がなく、またどうしたら保留状態を再現できるかがわかりませんでした。
8
15
 
9
16
  ですので、保留状態の再現方法があれば教えていただきたいです。
17
+ よろしくお願いします。
10
18
 
11
19
  ###該当のソースコード
12
20
  GooglePlayサーバーが成功しなかった時のレスポンス処理
@@ -47,7 +55,4 @@
47
55
  ###補足情報
48
56
  言語・Java
49
57
  開発環境・Eclipse4.2
50
- ビルドターゲット・19(Android4.4.2)
58
+ ビルドターゲット・19(Android4.4.2)
51
-
52
- 注文が保留中になった場合の説明↓
53
- https://support.google.com/payments/answer/6220327?hl=ja

4

文言修正

2016/04/11 06:37

投稿

yori_roba
yori_roba

スコア10

title CHANGED
File without changes
body CHANGED
@@ -1,12 +1,12 @@
1
1
  ###実現したいこと
2
2
  Androidでアプリ内課金のシステムを作っています。
3
- 課金時に決済が保留になった時の対策をしたい。
3
+ 課金時に決済が保留になった時の対策を考えてます
4
4
 
5
5
  ###発生している問題
6
6
  現状、エラー時の処理をユーザーキャンセル時、失敗時と分けて実装しています。
7
- 保留状態となった場合の処理がなく、またどうしたら保留状態を再現できるかがわかりませんでした。
7
+ 保留状態となった場合の処理がなく、またどうしたら保留状態を再現できるかがわかりませんでした。
8
8
 
9
- ですので、まずは保留状態の再現方法教えていただきたいです。
9
+ ですので、保留状態の再現方法があれば教えていただきたいです。
10
10
 
11
11
  ###該当のソースコード
12
12
  GooglePlayサーバーが成功しなかった時のレスポンス処理

3

文言修正

2016/04/08 07:32

投稿

yori_roba
yori_roba

スコア10

title CHANGED
File without changes
body CHANGED
@@ -3,7 +3,7 @@
3
3
  課金時に決済が保留になった時の対策をしたい。
4
4
 
5
5
  ###発生している問題
6
- 現状、正常系でなければエラー処理となっています。
6
+ 現状、エラー時の処理をユーザーキャンセル時、失敗時分け実装しています。
7
7
  保留状態となった場合の処理がなく、またどうしたら保留状態を再現できるかがわからりませんでした。
8
8
 
9
9
  ですので、まずは保留状態の再現方法教えていただきたいです。

2

ソースコードの修正

2016/04/08 07:29

投稿

yori_roba
yori_roba

スコア10

title CHANGED
File without changes
body CHANGED
@@ -40,6 +40,8 @@
40
40
  return;
41
41
  }
42
42
 
43
+ //以下に、正常時の処理
44
+
43
45
  ```
44
46
 
45
47
  ###補足情報

1

ソースコードの修正

2016/04/08 07:26

投稿

yori_roba
yori_roba

スコア10

title CHANGED
File without changes
body CHANGED
@@ -9,27 +9,37 @@
9
9
  ですので、まずは保留状態の再現方法教えていただきたいです。
10
10
 
11
11
  ###該当のソースコード
12
- apiを叩くクラスを用意し、コックでsuccessとerrorの処理を実装している。
12
+ GooglePlayサーバーが成功しなかった時レスポンス処理
13
- ```ここに言語を入力
13
+ ```
14
- /*api通信時の処理*/
15
- public void sendApiPointsBuypoint(String productId, String purchaseData,
16
- String dataSignature, String settlement_android_id) {
17
- apiPointsBuypoint.setApiSendListener(new ApiSendListener() {
14
+ OnIabPurchaseFinishedListener listener = new OnIabPurchaseFinishedListener() {
18
- @Override
19
- public void success(JSONObject response, JSONObject userStatus) {
15
+ public void onIabPurchaseFinished(IabResult result, Purchase info) {
20
- //ここに成功時の処理を記入
21
- }
22
- @Override
23
- public void error(int code, String message) {
24
- if (code != 200){
16
+ if (result.isFailure()) {
25
- //ここに失敗時の処理を記入
26
- }else{
27
- //リトライ処理を繰り返す
28
- }
29
- }
30
- });
31
- }
32
17
 
18
+ switch (result.getResponse()) {
19
+ //ユーザーキャンセル
20
+ case IabHelper.BILLING_RESPONSE_RESULT_USER_CANCELED:
21
+ case IabHelper.IABHELPER_USER_CANCELLED:
22
+ Log.d("ApiInAppBilling", "[ERROR] User Canceles");
23
+ CustomDialog customDialog = new CustomDialog(BuyPoint.this,
24
+ getString(R.string.point_buy_cancel),getString(R.string.ok), "");
25
+ customDialog.setCancelable(false);
26
+ customDialog.show();
27
+ break;
28
+ default:
29
+ // 失敗時
30
+ Log.d("ApiInAppBilling", "[ERROR] Result Failed");
31
+
32
+ new AlertDialog.Builder(BuyPoint.this)
33
+ .setTitle("エラー")
34
+ .setMessage(getString(R.string.point_buy_error))
35
+ .setPositiveButton(R.string.ok, null)
36
+ .setCancelable(false).show();
37
+ break;
38
+ }
39
+
40
+ return;
41
+ }
42
+
33
43
  ```
34
44
 
35
45
  ###補足情報