PDA

View Full Version : مصرف خرید کاربر در پرداخت درون برنامه



ahmandir
جمعه 05 خرداد 1396, 10:42 صبح
سلام دوستان خداروشکر با مطالب دوستان تونستم به خوبی خرید درون برنامه بازارا رو راه بندازم تنها مشکلی که هنوز برام پابرجا مونده این که که چجوری خرید مشتری رو مصرف کنم تا قابل استفاده ی مجدد نباشه . مثلا کاربر سکه توی برنامم میخره و میخوام بعدا باز هم بتونه سکه بخره .

کدهای پرداخت الانم به این شکل هستن 3 تا متغییر برای بیس 64 و شناسه ی محصول و آخری با نام اچ مه لب هلپر هست :
public String RSA_KEYy="cooooooooooooood";
private String KEY_P2 = "kala1";
private IabHelper h; ادامه ی کدها توی آن کریت :

buy = (Button) findViewById(R.id.buy);


h = new IabHelper(this, RSA_KEYy);
h.startSetup(
new IabHelper.OnIabSetupFinishedListener()
{
@Override
public void onIabSetupFinished(IabResult result)
{
if( result.isSuccess() )
{
ArrayList<String> moreSkus = new ArrayList<String>();
moreSkus.add( KEY_P2 );
h.queryInventoryAsync( true, moreSkus,
new IabHelper.QueryInventoryFinishedListener()
{
@Override
public void onQueryInventoryFinished(IabResult result, Inventory inv)
{
if( result.isSuccess() )
{
SkuDetails d = inv.getSkuDetails(KEY_P2);
buy.setText(getTitle());

}
else
{
//
}
}
}
);
}
}
}
);



buy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
h.launchPurchaseFlow(MainActivity.this, KEY_P2, 1001,
new IabHelper.OnIabPurchaseFinishedListener()
{
@Override
public void onIabPurchaseFinished(IabResult result, Purchase info)
{
if ( result.isSuccess() ) {
//



Toast.makeText(MainActivity.this, "yeeeeeees", Toast.LENGTH_SHORT).show();
} else {
//
Toast.makeText(MainActivity.this, "noooooooooooo", Toast.LENGTH_SHORT).show();
}
}
}
);
}
}); و قسمت آخر :
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
h.handleActivityResult(requestCode, resultCode, data);
}

با این کد خرید انجام میشه تنها مشکلی که دارم می خوام خرید رو مصرف کنه و کاربر با خرید مجدد پول رو دوباره پرداخت کنه .

ممنون میشم راهنماییم کنین خیلی به این کد نیاز دارم .

توی خود بازار دراین باره این کد ها رو به عنوان مثال داده :
mHelper.consumeAsync(inventory.getPurchase(SKU_GAS ),
mConsumeFinishedListener); و
IabHelper.OnConsumeFinishedListener mConsumeFinishedListener =
new IabHelper.OnConsumeFinishedListener() {
public void onConsumeFinished(Purchase purchase, IabResult result) {
if (result.isSuccess()) {
// provision the in-app purchase to the user
// (for example, credit 50 gold coins to player's character)
}
else {
// handle error
}
}
}; این کد رو باید توی کد خودم جایگذاری کنم اما دقیق نمیتونم . البته h رو بجای لب هلپر قرار میدم و KEY محصول خودم رو بجای پارامتر اول اما نمیدونم mconsmefinishedlistener رو چیکارش کنم .


باز هم ممنون میشم راهنماییم کنین .