PDA

View Full Version : رفرش نشدن توکن id



Ebrahimkh
شنبه 03 مرداد 1394, 15:21 عصر
سلام دوستان
من برا پرداخت درون برنامه ای تحت وب از این سورس کد php استفاده می کنم ول توکن id رفرش نمیشه؟؟؟!!!!؟ بنظرتون مشکل چیه؟؟؟!





<?php

if(empty($_REQUEST['package']) || empty($_REQUEST['product']) || empty($_REQUEST['tokenid'])){
echo "error";
return;
}

$package = $_REQUEST['package'];
$product = $_REQUEST['product'];
$tokenid = $_REQUEST['tokenid'];

$refcode = 'کدی که از بازار گرفتین - رفرش کد';

$url = 'http://pardakht.cafebazaar.ir/auth/token/';
$data = array('grant_type' => 'refresh_token', 'client_id' => 'آیدی کلاینت', 'client_secret' => 'رمز کلاینت', 'refresh_token' => $refcode);

# Create a connection
$ch = curl_init($url);

# Form data string
$postString = http_build_query($data, '', '&');

# Setting our options
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

# Get the response
$response = curl_exec($ch);

$jsonResponse = json_decode($response, true);

$access_token = <font color="#ff0000"><b>'wlofRGW2OGLaxenZFf30SNADTsduP1</b></font>';

$result = file_get_contents("https://pardakht.cafebazaar.ir/api/validate/$package/inapp/$product/purchases/$tokenid/?access_token=$access_token");

echo $result;

curl_close($ch);


?>

Ebrahimkh
شنبه 03 مرداد 1394, 17:41 عصر
دوستان عزیز اینم کد جاوا توکن id رفرش نمـــــــیـــــشـــــــــ ــــــــــــــــــــه
خواهشن راهنمایی کنید مشکل کجاست





public class Pool extends Activity {

private ProgressDialog progressDialog;
public static String order;
private Dialog dialog;
public static int g = 0;
SharedPreferences preferences = null;

private String PACKAGENAME = "";

final String KEY = "PERIMIUM";

// Debug tag, for logging
static final String TAG = "savedPremium";

// SKUs for our products: the premium upgrade (non-consumable)
static final String SKU_PREMIUM = "how";

// Does the user have the premium upgrade?
boolean mIsPremium1 = false;

// (arbitrary) request code for the purchase flow
static final int RC_REQUEST = 10001;

// The helper object
IabHelper mHelper;

private SharedPreferences shared;
private SharedPreferences.Editor editor;
private Typeface typeface;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pool);

button = (Button) findViewById(R.id.btnpool);

typeface = Typeface.createFromAsset(getAssets(), "fonts/titr.ttf");

button.setTypeface(typeface);
button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
onSavedUpgradeAppButtonClicked(arg0);
// verifytoken();
}
});

shared = getSharedPreferences("Pref", MODE_PRIVATE);
editor = shared.edit();
g = shared.getInt("mon", 0);

/************************************************** ************************************************** *******/
preferences = getSharedPreferences(PACKAGENAME, Context.MODE_PRIVATE);
PACKAGENAME = getClass().getName();
Log.e("TAG", PACKAGENAME);
mIsPremium1 = preferences.getBoolean(KEY, false);
if (mIsPremium1 == true) {
updateUi();
return;
}

String base64EncodedPublicKey = "MIHNMA0GCSqGSCpgXp3J1b4KKwYgzNx3EyqOpRccZXk4pJtwO nXVavJxiooZHNRul5v0eT2NvCPmPoNeqgRIX1MilemLyqfksJt m8hxFTQYfcFriFXl8+Sq2RPtL2z+RIG1wECAwEAAQ==";
mHelper = new IabHelper(this, base64EncodedPublicKey);
Log.d(TAG, "Starting setup.");
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
Log.d(TAG, "Setup finished.");

if (!result.isSuccess()) {
// Oh noes, there was a problem.
Log.d(TAG, "Problem setting up In-app Billing: " + result);
}

}
});
/************************************************** ************************************************** *******/
}


/************************************************** ************************************************** *******/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

Log.d(TAG, "onActivityResult(" + requestCode + "," + resultCode + ","
+ data);

// Pass on the activity result to the helper for handling
if (!mHelper.handleActivityResult(requestCode, resultCode, data)) {
super.onActivityResult(requestCode, resultCode, data);
} else {
Log.d(TAG, "onActivityResult handled by IABUtil.");
}

}

public void onSavedUpgradeAppButtonClicked(View arg0) {
Log.d(TAG,
"Upgrade button clicked; launching purchase flow for upgrade.");
// setWaitScreen(true);

String payload = "gdhassdflsldaslfkahsjahsjakaasa";

mHelper.launchPurchaseFlow(this, SKU_PREMIUM, RC_REQUEST,
mPurchaseFinishedListener, payload);
}

boolean verifyDeveloperPayload(Purchase p) {
//String payload =p.getDeveloperPayload();
order=p.getOrderId();

return true;
}

IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
Log.d(TAG, "Purchase finished: " + result + ", purchase: "
+ purchase);
Inventory inv = null;
try {
inv = mHelper.queryInventory(true, null);
if (inv.hasPurchase(SKU_PREMIUM)) {

// alert("تبريک شما به کاربر ويژه ارتقا يافتيد");
if (purchase.getSku().equals(SKU_PREMIUM)) {
// Log.d(TAG,
// "Purchase is premium upgrade. Congratulating user.");
// // alert("تبريک شما به کاربر ويژه ارتقا يافتيد");
// editor.putInt("mon", 1);
// editor.apply();
//
// mIsPremium1 = true;
// updateUi();
// setWaitScreen(false);
order=purchase.getOrderId();
verifytoken();

}

// حالا برنامه را فعال کنيد
} else {
if (result.isFailure()) {
Log.d(TAG, "Error purchasing: " + result);
// setWaitScreen(false);
return;
}
if (!verifyDeveloperPayload(purchase)) {
complain("Error purchasing. Authenticity verification failed.");
// setWaitScreen(false);
return;
}
Log.d(TAG, "خريد نادرست است");
}
} catch (IabException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
};

// Update button with updateUi
public void updateUi() {

if (mIsPremium1) {

AlertDialog.Builder builder=new AlertDialog.Builder(Pool.this);
builder.setTitle("کاربر ويژه");
builder.setMessage("تبريک ميگم"+"\n"+"دوست عزيز شما به کاربر ويژه ارتقا يافتيد");
builder.setPositiveButton("خب", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
startActivity(new Intent(Pool.this,StartActivity.class));
}
});
builder.show();


SharedPreferences.Editor newtask = preferences.edit();
newtask.putBoolean(KEY, true);
newtask.commit();

}
}

void complain(String message) {
Log.e(TAG, "**** testbilling 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();

}

/************************************************** ************************************************** *******/

@Override
public void onDestroy() {
super.onDestroy();

Log.d(TAG, "Destroying helper.");
if (mHelper != null)
mHelper.dispose();
mHelper = null;
}

public void verifytoken() {
progressDialog=new ProgressDialog(Pool.this);

progressDialog = ProgressDialog.show(this, "خريد", "لطفا چند لحظه صبر کنيد تا بررسي خريد صورت بگيرد...");
new RequestTask().execute("http://www.BBccountry.ir/token/token.php?package=com.dev.howold&product=howold&to kenid="+order);

}

class RequestTask extends AsyncTask<String, String, String>{

@Override
protected String doInBackground(String... uri) {
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response;
String responseString = null;
try {
response = httpclient.execute(new HttpGet(uri[0]));
StatusLine statusLine = response.getStatusLine();
if(statusLine.getStatusCode() == HttpStatus.SC_OK){
ByteArrayOutputStream out = new ByteArrayOutputStream();
response.getEntity().writeTo(out);
responseString = out.toString();
out.close();
} else{
//Closes the connection.
response.getEntity().getContent().close();
throw new IOException(statusLine.getReasonPhrase());
}
} catch (ClientProtocolException e) {
//TODO Handle problems..
} catch (IOException e) {
//TODO Handle problems..
}
return responseString;
}


@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);

progressDialog.dismiss();

if (result.length() > 5){


Log.d(TAG, "Purchase is premium upgrade. Congratulating user." + result + result.length());
Toast.makeText(getApplicationContext(), "پرداخت انجام شد", Toast.LENGTH_SHORT).show();
mIsPremium1 = true;
updateUi();
// setWaitScreen(false);
} else {
Log.d(TAG, "natigeh" + result);
// setWaitScreen(false);
Toast.makeText(getApplicationContext(), "پرداخت انجام نشد", Toast.LENGTH_SHORT).show();

}
}
}
}

Ebrahimkh
شنبه 03 مرداد 1394, 21:08 عصر
34 نفر بازدید کردن کسی نظری نداره ؟؟!!

Ebrahimkh
یک شنبه 04 مرداد 1394, 10:30 صبح
دوستان هنوز منتظرم .............
لطفا راهنمایی کنید

poorman
یک شنبه 04 مرداد 1394, 10:43 صبح
سلام

الان مشکل فقط و فقط از وب سرویس شما میتونه باشه

توی کد php مقادیر فارسی رو جایگذاری کردید یا نه؟ چون به جای جاهایی که فارسی نوشته باید اون مقدار خواسته شده رو وارد کنید ...

c0mmander
یک شنبه 04 مرداد 1394, 10:52 صبح
(متوجه مشکل نشدم حقیقتش)

اما شما ریفرش کدتون رو قرار ندادید و بجاش اکسس کد رو مستقیما اضافه کردید (قبلا توضیح داده شده بود که چرا اکسس کد رو نمیشه بصورت مستقیم استفاده کرد! )

به هر حال ریفرش کدی که از بازار گرفتید رو داخل

$refcode = 'کدی که از بازار گرفتین - رفرش کد';


بدون فاصله ی اضافی و تغییرات قرار بدید
مثال:


$refcode = '123456789123456789123456789';

در نهایت $access_token با استفاده از json دریافتی از بازار باید بروز میشود: (!)


$access_token = $jsonResponse['access_token'];

'access_token' کلید مقادیر دریافتی از json هست و نباید حذف کنید.

Ebrahimkh
یک شنبه 04 مرداد 1394, 11:02 صبح
سلام

الان مشکل فقط و فقط از وب سرویس شما میتونه باشه

توی کد php مقادیر فارسی رو جایگذاری کردید یا نه؟ چون به جای جاهایی که فارسی نوشته باید اون مقدار خواسته شده رو وارد کنید ...



سلام poorman (http://barnamenevis.org/member.php?295320-poorman) عزیز من همه چیز رو دقیق جایگذاری کردم بار اول جواب میده مثلا من اگه برنامم رو با بلواستک خریدم یه توکن id برام ثبت کرد بعد با یه یوزر دیگه با موبایلم خریدم مجانی بود نیازی به دادن پول نبود توکن id رو چک کردم دیدم فقط یکی ثبت شده که داره تو برنامه بین همه به اشتراک گذاشته میشه

سورس بالا که گذاشتم بنظت مشکلی نداره ؟؟؟!!

Ebrahimkh
یک شنبه 04 مرداد 1394, 11:06 صبح
(متوجه مشکل نشدم حقیقتش)

اما شما ریفرش کدتون رو قرار ندادید و بجاش اکسس کد رو مستقیما اضافه کردید (قبلا توضیح داده شده بود که چرا اکسس کد رو نمیشه بصورت مستقیم استفاده کرد! )

به هر حال ریفرش کدی که از بازار گرفتید رو داخل

$refcode = 'کدی که از بازار گرفتین - رفرش کد';


بدون فاصله ی اضافی و تغییرات قرار بدید
مثال:


$refcode = '123456789123456789123456789';

در نهایت $access_token با استفاده از json دریافتی از بازار باید بروز میشود: (!)


$access_token = $jsonResponse['access_token'];

'access_token' کلید مقادیر دریافتی از json هست و نباید حذف کنید.



سلام c0mmander (http://barnamenevis.org/member.php?332447-c0mmander) عزیز
من رفرش کد رو درست وارد کردم اینم رفرش کدم


$refcode = 'Hyh164NHTGjoOQSJoMtC773ESl90md';


این اکسس کدی که فرمودی من کجا وارد کردم تا اصلاحش کنم
بازم ممنون

poorman
یک شنبه 04 مرداد 1394, 12:49 عصر
سلام مجدد

برای حل مشکل طبق این پست عمل کنید

کد php شما یکم فرق داره با چیزی که من قرار دادم

http://barnamenevis.org/showthread.php?482457-%D9%81%D8%B1%D8%A7%D8%B1-%D8%A7%D8%B2-%D8%AF%D8%B3%D8%AA-Lucky-Patcher&p=2177474&viewfull=1#post2177474

هر مشکلی که دارید دلیلش میتونه درست انجام ندادن مراحل گفته شده توی این پست یا اشتباه وارد کردن مقادیر باشه

c0mmander
یک شنبه 04 مرداد 1394, 12:51 عصر
سلام c0mmander (http://barnamenevis.org/member.php?332447-c0mmander) عزیز
من رفرش کد رو درست وارد کردم اینم رفرش کدم


$refcode = 'Hyh164NHTGjoOQSJoMtC773ESl90md';


این اکسس کدی که فرمودی من کجا وارد کردم تا اصلاحش کنم
بازم ممنون

اون کدی که داخل پست بالا بهت گفتم رو زیر خط زیر اضافه کن


$jsonResponse = json_decode($response, true);



و خط زیر رو هم باید پاک کنی:(با توجه به کدی در اولین پست قرار دادی!)


$access_token = 'wlofRGW2OGLaxenZFf30SNADTsduP1';

Ebrahimkh
یک شنبه 04 مرداد 1394, 13:00 عصر
سلام اینجوری وارد کدم بازم کار نمی کنه

بازم بخاطر همکاری و راهنماییهاتون ساپسگذارم





<?php

if(empty($_REQUEST['package']) || empty($_REQUEST['product']) || empty($_REQUEST['tokenid'])){
echo "error";
return;
}

$package = $_REQUEST['package'];
$product = $_REQUEST['product'];
$tokenid = $_REQUEST['tokenid'];

$refcode = 'Hyh164NHTGjoOQSJoMtC773ESl90md';

$url = 'https://pardakht.cafebazaar.ir/auth/token/';
$data = array('grant_type' => 'refresh_token', 'client_id' => 'GR6WipLsooe3kNo8rf8rsaNjdlIPHvRXUuRIGzGq', 'client_secret' => '17kpCBcwrj3d0FnpfbVrihquRdFgnWz0hKQI5zoS2TVeSVcHu HuElTgTjDI', 'refresh_token' => $refcode);

# Create a connection
$ch = curl_init($url);

# Form data string
$postString = http_build_query($data, '', '&');

# Setting our options
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

# Get the response
$response = curl_exec($ch);

$jsonResponse = json_decode($response, true);

$access_token = $jsonResponse['access_token'];

$result = file_get_contents("https://pardakht.cafebazaar.ir/api/validate/$package/inapp/$product/purchases/$tokenid/?access_token=$access_token");

echo $result;

curl_close($ch);


?>