PDA

View Full Version : سوال: گرفتن و ثبت اطلاعات بعد از پرداخت



soroush.r70
چهارشنبه 05 شهریور 1393, 19:07 عصر
با سلام دوستان عزیز کاربران توسط کد زیر میان وصل میشن به درگاه بانک ملی و پول پرداخت میکنن حالا باید چطوری بیام بعد پرداخت پول و تایید نام کاربری اون کاربری که پول پرداخت کرده تاریخ پرداخت پول به صورت timestamp 2014-08-27 19:04:17 و مبلغ پرداختی رو درجدول ثبت کنم ممنون


<!-- This section generates the "Submit Payment" button using PHP --><?PHP
// This sample code requires the mhash library for PHP versions older than
// 5.1.2 - http://hmhash.sourceforge.net/

// the parameters for the payment can be configured here
// the API Login ID and Transaction Key must be replaced with valid values
$loginID = "111111110";
$transactionKey = "eoXaEm2LUnz2OiyQ";
// $amount = "1999";
$amount = $_POST["x_amount"];
$currency = "Rial";
$description = "Donation";
$label = "ادامه"; // The is the label on the 'submit' button
$testMode = "false";
// By default, this sample code is designed to post to our test server for
// developer accounts: https://test.authorize.net/gateway/transact.dll
// for real accounts (even in test mode), please make sure that you are
// posting to: https://secure.authorize.net/gateway/transact.dll
$url = "https://Damoon.bankmelli-iran.com/DamoonPrePaymentController";


// If an amount or description were posted to this page, the defaults are overidden
if ($_REQUEST["amount"])
{ $amount = $_REQUEST["amount"]; }
if ($_REQUEST["description"])
{ $description = $_REQUEST["description"]; }


// an invoice is generated using the date and time
$invoice = date(YmdHis);
// a sequence number is randomly generated
$sequence = rand(1, 1000);
// a timestamp is generated
$timeStamp = time ();


// The following lines generate the SIM fingerprint. PHP versions 5.1.2 and
// newer have the necessary hmac function built in. For older versions, it
// will try to use the mhash library.
if( phpversion() >= '5.1.2' )
{ $fingerprint = hash_hmac("md5", $loginID . "^" . $sequence . "^" . $timeStamp . "^" . $amount . "^" . $currency, $transactionKey); }
else
{ $fingerprint = bin2hex(mhash(MHASH_MD5, $loginID . "^" . $sequence . "^" . $timeStamp . "^" . $amount . "^" . $currency, $transactionKey)); }


// Print the Amount and Description to the screen.
echo '<div class="txtdsc">لطفا مبلغ پرداختی خود را تایید کنید : <br />';
echo "مبلغ: $amount ریال<br />";
echo '<br /><a href="'.URL.'amlakpanel.php">تغییر مبلغ پرداختی</a><br /><br />';
// echo "Description: $description <br />";


// Create the HTML form containing necessary SIM post values
echo "<FORM method='post' action='$url' target='_blank' class='formcalss'>";
// Additional fields can be added here as outlined in the SIM integration guide
// at: http://developer.authorize.net
echo " <INPUT type='hidden' name='x_login' value='$loginID' />";
echo " <INPUT type='hidden' name='x_amount' value='$amount' />";
echo " <INPUT type='hidden' name='x_currency_code' value='$currency' />";
echo " <INPUT type='hidden' name='x_description' value='$description' />";
echo " <INPUT type='hidden' name='x_invoice_num' value='$invoice' />";
echo " <INPUT type='hidden' name='x_fp_sequence' value='$sequence' />";
echo " <INPUT type='hidden' name='x_fp_timestamp' value='$timeStamp' />";
echo " <INPUT type='hidden' name='x_fp_hash' value='$fingerprint' />";
echo " <INPUT type='hidden' name='x_test_request' value='$testMode' />";
echo " <INPUT type='hidden' name='x_show_form' value='PAYMENT_FORM' />";
echo " <center><input style='font-family:tahoma;' type='submit' value='$label' /></center>";
echo "</FORM></div>";
?>
<!-- This is the end of the code generating the "submit payment" button. -->

soroush.r70
پنج شنبه 06 شهریور 1393, 12:19 عصر
دوستان عزیز کسی نیست راهنمایی کنه؟ ممنون

soroush.r70
شنبه 08 شهریور 1393, 10:17 صبح
دوستان گلم کسی نیست؟ :لبخندساده:

soroush.r70
چهارشنبه 12 شهریور 1393, 17:07 عصر
واقعا نمیشه؟؟؟

MMSHFE
پنج شنبه 13 شهریور 1393, 20:16 عصر
روال کار در سیستمهای پرداخت بانکی اینه که شما یک رکورد با همه مشخصات لازم توی دیتابیس ثبت میکنید که دو فیلد اصلی داره (بقیه رو هرچی خواستین اضافه کنید). یکی از این فیلدها order_id داخلی سیستم خودتونه و یکی دیگه bank_au یا شماره ارجاع تراکنش بانکه. موقع درخواست دادن به بانک باید order_id رو هم همراه با مبلغ و... بفرستین و بانک برحسب اون بهتون یک au (یا ref_id) میده که این رو توی همون رکوردتون در جدول سفارشها ثبت میکنید و بعد از اون، همه کار شما با بانک ازطریق bank_au هست. وقتی تراکنش انجام شد و Verify کردین (ازطریق همون فیلد bank_au تراکنش رو توی جدول خودتون پیدا کنید و مبلغ پرداختی که بانک بهتون میگه رو با مبلغ دیتابیس خودتون چک میکنید که یکی باشه و این وسط کسی نخواد با دستکاری هدرها مبلغ رو تغییر بده و فرضاً بجای 1000 تومان فاکتور، 100 تومان پرداخت کنه) اونوقت میاین وضعیت پرداخت رکورد مربوطه رو 1 میکنید و Settle بانک رو صدا میزنید تا تراکنش برگشت نخوره. اگه نیاز دارین بدونید کدوم کاربر پرداخت کرده هم کافیه توی جدول سفارشهای خودتون فیلدی تحت عنوان user_id بگذارین که کلید خارجی به جدول users شماست. امیدوارم خوب توضیح داده باشم.