بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل با سیستم درون پرداختی بازار
سلام دوستان من با این کد درون پرداختی بازارو راه انداختم همه چیش خوب کار میکنه مشکلی که هستش اینه وقتی ی خرید میزنی دوباره رو همون بزنی بدون کم شدن هزینه خرید صورت میگیره پول از طرف کم نمیشه ولی خرید انجام میشه
من میخواهم محصولی که ی بار خرید شد دوباره هم خرید بشه
ی نگاه به این کد بندازید اگه ممکنه بگید مشکل از چیه و چکار کنم!
public class BalanceActivity extends ActivityBase {
private static final String TAG = "gapgram.inappbilling";
private static final String TOKEN = "gapgram.inappbilling";
static final String ITEM_SKU_1 = "networkpro.ifsoft.ru.iap1";
Button mBuy1Butto;
TextView mLabelCredits;
private Boolean loading = false;
IabHelper mHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_balance);
String base64EncodedPublicKey = BILLING_KEY;
mHelper = new IabHelper(BalanceActivity.this, base64EncodedPublicKey);
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
if (!result.isSuccess()) {
// Oh noes, there was a problem.
complain("Problem setting up in-app billing: " + result);
return;
}
// Have we been disposed of in the meantime? If so, quit.
if (mHelper == null) return;
// IAB is fully set up. Now, let's get an inventory of stuff we own.
Log.d(TAG, "Setup successful. Querying inventory.");
}
});
if (savedInstanceState != null) {
loading = savedInstanceState.getBoolean("loading");
} else {
loading = false;
}
if (loading) {
showpDialog();
}
mLabelCredits = (TextView) findViewById(R.id.labelCredits);
mBuy1Button = (Button) findViewById(R.id.iap1_bazar_btn);
mBuy1Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mHelper.launchPurchaseFlow(BalanceActivity.this, ITEM_SKU_1, 10001, mPurchaseFinishedListener, TOKEN);
}
});
update();
}
return true;
}
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
Log.d(TAG, "Purchase finished: " + result + ", purchase: " + purchase);
// if we were disposed of in the meantime, quit.
if (mHelper == null) return;
if (result.isFailure()) {
// Handle error
complain("Error purchasing: " + result);
// setWaitScreen(false);
return;
}
if (!verifyDeveloperPayload(purchase)) {
complain("Error purchasing. Authenticity verification failed.");
//setWaitScreen(false);
return;
}
Log.d(TAG, "Purchase successful.");
if (purchase.getSku().equals(ITEM_SKU_1)) {
consumeItem_1();
App.getInstance().setBalance(App.getInstance().getBalance() + 40);
payment(40);
}
};
public void consumeItem_1() {
mHelper.queryInventoryAsync(mReceivedInventoryListener_1);
}
IabHelper.QueryInventoryFinishedListener mReceivedInventoryListener_1 = new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
if (result.isFailure()) {
// Handle failure
} else {
mHelper.consumeAsync(inventory.getPurchase(ITEM_SKU_1), mConsumeFinishedListener);
}
}
};
IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = new IabHelper.OnConsumeFinishedListener() {
public void onConsumeFinished(Purchase purchase, IabResult result) {
Log.d(TAG, "Consumption finished. Purchase: " + purchase + ", result: " + result);
// if we were disposed of in the meantime, quit.
if (mHelper == null) return;
if (result.isSuccess()) {
Log.e("Consume", "Consume Finish");
} else {
// handle error
Log.e("Consume", "Consume Finish Error");
}
}
};
public void payment(final int cost) {
loading = true;
showpDialog();
CustomRequest jsonReq = new CustomRequest(Request.Method.POST, METHOD_BALANCE_MODIFY, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
if (!response.getBoolean("error")) {
if (response.has("balance")) {
App.getInstance().setBalance(response.getInt("balance"));
}
success();
}
} catch (JSONException e) {
e.printStackTrace();
} finally {
loading = false;
hidepDialog();
update();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
loading = false;
hidepDialog();
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("clientId", CLIENT_ID);
params.put("accountId", Long.toString(App.getInstance().getId()));
params.put("accessToken", App.getInstance().getAccessToken());
params.put("funds", Integer.toString(cost));
return params;
}
};
App.getInstance().addToRequestQueue(jsonReq);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE) {
if (data == null) {
return;
}
} else {
if (!mHelper.handleActivityResult(requestCode, resultCode, data)) {
super.onActivityResult(requestCode, resultCode, data);
}
}
}
public void update() {
mLabelCredits.setText(getString(R.string.label_credits) + " (" + Integer.toString(App.getInstance().getBalance()) + ")");
}
public void success() {
Toast.makeText(BalanceActivity.this, getString(R.string.msg_success_purchase), Toast.LENGTH_SHORT).show();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean("loading", loading);
}
@Override
protected void onDestroy() {
super.onDestroy();
hidepDialog();
if (mHelper != null) mHelper.dispose();
mHelper = null;
}
@Override protected void onResume() {
super.onResume();
update();
}
void complain(String message) {
Log.e(TAG, "**** TrivialDrive Error: " + message);
alert("Error: " + message);
}
void alert(String message) {
AlertDialog.Builder bld = new AlertDialog.Builder(this);
bld.setMessage(message);
bld.setNeutralButton("OK", null);
Log.d(TAG, "Showing alert dialog: " + message);
bld.create().show();
}
}
+2
0
لطفا کد های اضافی را پاک کنید و بخشی که فکر میکنید خطا در آن است را قرار دهید و همچنین خطاهای سیستم را نیز درج نمایید (8 سال پیش)
0
0
دقیقا نمیدونم مشکل از کدوم قسمته تا جای که تونستم کد رو خلاصه کردم الان. ممنون میشم ی برسی بکنید (7 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .