Возврат денег пользователюAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Возврат денег пользователю

Сообщение Anonymous »

Я интегрировал API биллинга в приложении в свое приложение (android), чтобы позволить пользователю покупать монеты, чтобы иметь возможность делать что-то еще из приложения...
в onPurchasesUpdated, если ответ «ОК», я делаю запрос Volley чтобы увеличить баланс пользователя...
проблема в том... если запрос не выполнен из-за какой-либо ошибки (ошибка сервера - ошибка тайм-аута),
кто-нибудь знает, как программно вернуть деньги пользователю?это мой код ..

Код: Выделить всё

@Override
public void onPurchasesUpdated(int responseCode, @Nullable List
 purchases) {
Log.e("responseCode", responseCode + " ===== " + BillingClient.BillingResponse.OK);
if (responseCode == BillingClient.BillingResponse.OK) {
if (purchases != null) {
Log.e("purchases size", purchases.size() + "");
for (int i = 0; i < purchases.size(); i++) {
for (int j = 0; j < SKUS.get(BillingClient.SkuType.INAPP).size(); j++) {
if (purchases.get(i).getSku().equals(SKUS.get(BillingClient.SkuType.INAPP).get(j).getId())) {
deposit(activity.getApplicationContext(), SKUS.get(BillingClient.SkuType.INAPP).get(j).getPrice(), purchases.get(i).getPurchaseToken());
}
}
}
}
Log.e("OPU response", "true");

} else {
Log.e("OPU error", "false");
}
}
это моя просьба...

Код: Выделить всё

protected void deposit(final Context context, double price, final String token) {
JSONObject amount = new JSONObject();
try {
amount.put("amount", price);
amount.put("payment_type", "playStore");
} catch (JSONException e) {
e.printStackTrace();
}
Log.e("amount", amount.toString());
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,
URLs.DEPOSIT,
amount,
new Response.Listener() {
@Override
public void onResponse(JSONObject response) {
Log.e("deposit res", response.toString());
billingClient.consumeAsync(token, new ConsumeResponseListener() {
@Override
public void onConsumeResponse(int responseCode, String purchaseToken) {
if (responseCode == BillingClient.BillingResponse.OK) {
Log.e("Done", "done");
}
}
});
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("deposit", error.toString());
billingClient.consumeAsync(token, new ConsumeResponseListener() {
@Override
public void onConsumeResponse(int responseCode, String purchaseToken) {
if (responseCode == BillingClient.BillingResponse.OK) {
Log.e("Done", "done");
}
}
});
}
}) {
@Override
public Map getHeaders() throws AuthFailureError {
Map headers = new HashMap();
String token = "Bearer " + MySingleton.getmInstance(context).getUserToken();
headers.put("Content-Type", "application/json; charset=utf-8");
headers.put("Authorization", token);
return headers;
}
};
jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(
0,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
jsonObjectRequest.setShouldCache(false);
MySingleton.getmInstance(context).addToRQ(jsonObjectRequest);
}
Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/500 ... user-money
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»