PDA

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



Abolloty
چهارشنبه 31 شهریور 1395, 18:19 عصر
با سلام
من می خاستم بدونم چه جوری میشه کاربر بره به صفحه ی آسان پرداخت زرین پال سپس پول پرداخت کنه بعد برگرده تویه سایت و حسابه یک ماهش فعال شده باشه چه جوری؟؟؟

Abolloty
پنج شنبه 01 مهر 1395, 15:48 عصر
یکی جواب بده

Unique
پنج شنبه 01 مهر 1395, 16:42 عصر
یعنی چی چجوری ؟!
اگه میخوای پروسه انجام پرداخت زرین پال را بدونی که توس سایتشون هست. اگه میخوای بدونی پایگاه داده را چطور باید بسازی که باید کتاب های mysql و پایگاه داده بخونی. اگه میخوای بدونی منطق برنامه را چطور بنویسی باید الگوریتم نویسی و فلوچارت یاد بگیری و کلا برنامه نویس بشی. خوب حالا چی چجوری ؟!

Abolloty
پنج شنبه 01 مهر 1395, 16:50 عصر
چه جوری وقتی برگشت تو سایت حسابه یک ماهش فعال شده باشه ؟؟؟؟؟؟چه کدی بنویسم الگوریتمشم بگی حله؟

mohamadali1374
پنج شنبه 01 مهر 1395, 17:12 عصر
سلام
خوب وقتی از درگاه پرداخت به سایت شما برگشت داده میشه زرین پال نتیجه تراکنش رو به شما اعلام میکنه شما هم بررسی میکنید اگه تراکنش موفقیت امیز بوده پس باید در سایت شما ثبت بشه.
یه جدول توی دیتابیس درست میکنید که شماره کاربری فرد رو به همراه تاریخ رو در اون ثبت میکنید
و هرجایی از سایت هم که خواستید تشخیص بدید که کاربر حساب کاربری اش فعال هست یا نه کافی یه select ساده توی همین جدول بزنید .
و حالا یه تابع هم مینویسید که اگه کاربری زمان ثبت شدنش بیشتر از یه ماه بود خوب اون سطر از جدول رو حذف میکنید. اینطوری حساب یه کاربر یه ماه فعال میمونه و بعد از یه ماه حذف میشه.

Abolloty
پنج شنبه 01 مهر 1395, 18:07 عصر
خوب وقتی از درگاه پرداخت به سایت شما برگشت داده میشه زرین پال نتیجه تراکنش رو به شما اعلام میکنه شما هم بررسی میکنید اگه تراکنش موفقیت امیز بوده پس باید در سایت شما ثبت بشه.
من با همین قسمت مشکل دارم میشه نمونه کد بدید.

mohamadali1374
پنج شنبه 01 مهر 1395, 22:21 عصر
زرین پال خودش نمونه کد داده من فقط یه توضیح کوتاه میدم

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

<?php

$MerchantID = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'; //Required
$Amount = 1000; //Amount will be based on Toman - Required
$Description = 'توضیحات تراکنش تستی'; // Required
$Email = 'UserEmail@Mail.Com'; // Optional
$Mobile = '09123456789'; // Optional
$CallbackURL = 'http://www.yoursoteaddress.ir/verify.php'; // Required


$client = new SoapClient('https://www.zarinpal.com/pg/services/WebGate/wsdl', ['encoding' => 'UTF-8']);

$result = $client->PaymentRequest(
[
'MerchantID' => $MerchantID,
'Amount' => $Amount,
'Description' => $Description,
'Email' => $Email,
'Mobile' => $Mobile,
'CallbackURL' => $CallbackURL,
]
);

//Redirect to URL You can do it also by creating a form
if ($result->Status == 100) {
Header('Location: https://www.zarinpal.com/pg/StartPay/'.$result->Authority);
//برای استفاده از زرین گیت باید ادرس به صورت زیر تغییر کند:
//Header('Location: https://www.zarinpal.com/pg/StartPay/'.$result->Authority.'/ZarinGate');
} else {
echo'ERR: '.$result->Status;
}


خوب در کد بالا که واضح است و شما مواردی رو که خواسته رو وارد میکنید
مثلا merchantID رو پس از ثبت نام در سایت زرین پال بهتون میدن.
یکی از متغیر های مهمی که شما باید پر کنید callbackURL هست این متغیر آدرس صفحه ای است که پس از پرداخت به اون ارجاع داده میشه. پس شما یه صفحه در سایت خودتون درست میکنید و کد های زیر رو در اون قرار میدید:


<?php

$MerchantID = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX';
$Amount = 1000; //Amount will be based on Toman
$Authority = $_GET['Authority'];

if ($_GET['Status'] == 'OK') {

$client = new SoapClient('https://www.zarinpal.com/pg/services/WebGate/wsdl', ['encoding' => 'UTF-8']);

$result = $client->PaymentVerification(
[
'MerchantID' => $MerchantID,
'Authority' => $Authority,
'Amount' => $Amount,
]
);

if ($result->Status == 100) {
echo 'Transation success. RefID:'.$result->RefID;
} else {
echo 'Transation failed. Status:'.$result->Status;
}
} else {
echo 'Transaction canceled by user';
}


همانطور که در کد مشخصه یه شرط داریم :

if ($result->Status == 100) {

اگه این شرط برقرار باشه یعنی تراکنش با موفقیت انجام شده پس شما کارهایی رو که در پست قبلی گفتم انجام میدید یعنی کاربر رو در جدول کاربران ویژه ثبت میکنید
و اگه شرط برقرار نباشه خوب یعنی تراکنش موفق نبوده و به کاربر پیام خطا رو نشون میدهید..
البته خود سایت زرین پال توضیحات کاملی رو داده و حتی فیلم آموزشی هم گذاشته میتونید به سایت زرین پال برید و از قسمت آزمایشگاه نمونه کد ببینید اینم لینک برای نمونه کد php:
https://www.zarinpal.com/lab/%d9%86%d9%85%d9%88%d9%86%d9%87-%da%a9%d8%af-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d9%88%d8%a8-%d8%b3%d8%b1%d9%88%d9%8a%d8%b3-%d9%86%d9%88%d8%b4%d8%aa%d9%87-%d8%b4%d8%af%d9%87-%d8%a8/

plague
جمعه 02 مهر 1395, 01:10 صبح
یه فیلد به تیبل کاربر ها اضافه میکنی مثلا active_date از نوع date
وقتی کاربر پرداخت کرد پول رو تاریخ 30 روز دیگه رو حساب میکنی که چی میشه

date('Y-m-d' , strtotime(" +30 days "))
میزاری تو اون فیلده .... اکانتش رو تا 30 روز شارژ میکنی

حالا هروقت میخای ببینی کاربری فعاله اکانتش یا نه کافیه تاریخ امروز رو بگیری
date('Y-m-d')
و با اون فیلده مقایسه کنی اگه تاریخ امروز بزرگتر از اون فیلده بود یعنی اکانتش فعال نیست یا اشتراکش منقضی شده
اگه فیلده بزرگتر یا مساوی تاریخ امروز بود یعنی اکانتش فعاله