رفتن به مطلب
محمدرضا شاهپیری

آموزش تصویری امن کردن پرداخت درون برنامه ای با استفاده از Api بازار

پست های پیشنهاد شده

در 2 ساعت قبل، amir1335pp گفته است :

 

 

 

 

 

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

  • پسندیدن 2

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
Mehdi.s    170

سلام

پرداخت اشتراکی رو هم میشه توضیح بدید؟

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

لطفا کمک کنید

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

من از کتابخونه های شما دارم استفاده میکنم

کتابخونه m_httputils2 توی اینشیالایز خطا میده کلا به جاش من از کتابخونه httputils2 استفاده کردم اون خطا نمیده و اطلاعات رو ارسال میکنه

فایل php رو هم توی سرور مطابق فایهای جدید کتابخونه پرشین انکریپت درست کردم

توی نتیجه درخواست که به اپ برمیگرده خطا هست که فکر میکنم به خاطر اینه که اطلاعات درست ارسال نمیشه

هر دفعه یکی از متغیرهایی که ارسال شده رو خطا میگیره نمیتونه دیکریپت کنه

<b>Warning</b>:  file_get_contents(https://pardakht.cafebazaar.ir/devapi/v2/api/validate/error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length/inapp/testkhosh/purchases/0RbWLIR4wXYqMGdY/?access_token=J47cijHc9XTfiPY3YLSJKdhD1xxUcg): failed to open stream: HTTP request failed! HTTP/1.1 404 NOT FOUND

مثلا الان به پکیج نیم ایراد گرفته یه بار دیگه ممکنه یکی دیگه رو خطا بگیره

توی برنامه لاگ گرفتم کد ها به درستی ساخته میشن 

 

اینم کد php هست

include 'PersianCipher.php';
const secretKey ='fthrvxdgfrhju56f';
$packageName = $productId = $purchaseToken =$id= "";
////////////////////////////////////////
if ($_POST)
{	
   $packageName =decrypt($_POST['packageName']);
   $productId= decrypt($_POST['productId']);
   $purchaseToken = decrypt($_POST['purchaseToken']);
   $id = decrypt($_POST['id']);
}
function test_input($data)
{
   $data = trim($data);
   $data = stripslashes($data);
   $data = htmlspecialchars($data);
   return $data;
}

function encrypt($text){
    $encrypt = AesCipher::encrypt(secretKey, $text);
    if(!$encrypt->hasError()){
      return  $encryppt->getData();
    }else{
         return  $encryppt->getErrorMessage();
    }
}
 function decrypt($text){
    $decrypted = AesCipher::decrypt(secretKey, $text);
    if(! $decrypted->hasError()){
      return  $decrypted->getData();
    }else{
         return  $decrypted->getErrorMessage();
    }
}
//////////////////////////////////////

$togenurl ='https://pardakht.cafebazaar.ir/devapi/v2/auth/token/';
$data = array('grant_type' => 'refresh_token', 
'refresh_token' => 'توکن',
'client_id'=>'آی دی',
'client_secret'=>'سکرت');
$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => http_build_query($data),
    ),
);
$context  = stream_context_create($options);
$result = file_get_contents($togenurl, false, $context);
$obj=json_decode($result);
$acesstogen=$obj->{'access_token'};
ini_set("allow_url_fopen", 1);
$chekpurchaseurl="https://pardakht.cafebazaar.ir/devapi/v2/api/validate/".$packageName."/inapp/".$productId."/purchases/".$purchaseToken."/?access_token=".$acesstogen;
$json = file_get_contents($chekpurchaseurl);
$obj = json_decode($json);
$stat=$obj->purchaseState;
if($stat===0){
$decryptvalue="am".$id."nr";
$decrypted = encrypt($decryptvalue);
print $decrypted;
}

* اون قسمت توکن و آی دی و سکرت هم درست هستند

بدون انکریپت و دیکریپت تست شد به درستی کار میکرد و خرید تایید میشد

ممنون مشم راهنمایی بفرمایید

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 4 ساعت قبل، aminmoghadas گفته است :

 

از کتابخونه persianfastnet برای ارسال دیتا استفاده کنید و اینکه چک کنید کانفیگ بین سرور و اندروید تو بحث رمزنگاری به درستی انجام شده باشه

  • تشکر 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 13 دقیقه قبل، محمدرضا شاهپیری گفته است :

از کتابخونه persianfastnet برای ارسال دیتا استفاده کنید و اینکه چک کنید کانفیگ بین سرور و اندروید تو بحث رمزنگاری به درستی انجام شده باشه

الان اطلاعات بدون کد کردن درست رد و بدل میشه بدون هیچ خطایی چندین بار تست شد.

فقط وقتی انکریپت میشن این مشکل پیش میاد

توی فایل php طبق آموزش جدید کتابخونه تنظیم شده

توی اپ هم وقتی لاگ میگیرم قبل از ارسال همه متغیر ها درست انکریپت میشن

یعنی وقتی انکریپت میشن توی ارسالشون کتابخونه httputils2 مشکل پیدا میکنه؟ چون بدون انکریپت شاید 100 بار تست کردم هیچ دفعه ای خطا نخورد

کدهای فایل php رو گذاشتم اگر نیازه تا کد های اپلیکیشن رو هم بزارم؟

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 47 دقیقه قبل، aminmoghadas گفته است :

 

عزیز کتابخونه httputil کتابخونه استانداردی برای ارتباط با سرور نیست و برای کارهای ساده خوبه. از کتابخونه fastnet استفاده کنید انشالا که موردی نباشه. چون اگه طبق آموزش پیش رفتین نباید موردی باشه

  • تشکر 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

عذر خواهی میکنم که تاپیک رو بالا میارم دوباره

از کتابخونه پرشین فست نتورک استفاده شد 

فقط مشکل اینه که توی ارسال اطلاعات بعد از چند ثانیه لاگ های زیر رو میده با این که فایل موجوده 

Log(Error.ErrorDetails) => connectionError
Log(Error.ErrorMsage) => com.androidnetworking.error.ANError: java.net.SocketTimeoutException
Log(Error.CauseMessage) => java.net.SocketTimeoutException
Log(Error.ErrorBody) => null
Log(Error.ErrorLocalizedMsage) => com.androidnetworking.error.ANError: java.net.SocketTimeoutException
Log(Error.ResponseBody) => null

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 2 ساعت قبل، aminmoghadas گفته است :

 

در خواستتون تایم اوت شده هموطن که دیگه مشخص هست چه مشکلی به وجود اومده. سورس پروژه رو برام خصوصی بفرستید تا بررسی کنم.

 
  • تشکر 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
samannnn    1

سلام.

خیلی عالی بود آموزشتون فقط دو تا سوال:

1-  access_token همیشه ثابت هست؟

2- refresh_token رو تو php  وارد کردیم. راهی هست که اتوماتیک هر سری از سرور درخواست کنه؟

3- بلاخره نفهمیدم که هر چند ثانیه این expires_in باطل میشه.

بازم ممنون از شما.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • جدید...