کلیدستان

نسخه‌ی کامل: مشکل در پرداخت با پارس پال
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام
من اموزش های پرداخت پارس پال رو انچام دادم همه چی درسته و به خوبی کار می کنه
ولی تو صفحه بازگشت که بعد از پرداخت یا انصراف از پرداخت  پارس پال به اون صفحه  می فرسته ما رو من چک می کنم که اگه 
status ست شده باشه و مقدارش 100 باشه پیام پرداخت موفق رو چاپ کنه که باز همه چی دزسته و به خوبی کار می کنه
مشکل اینجاس که هر کسی از هر صفحه ای یه متغییر status به صفحه با روش پست ارسال کنه باز هم اون پیام چاپ میشه در حالی که ازسایت پارس پال نیست
و مشکل دیگه این که چون من اطلاعات پرداخت رو از پارس پال تو دیتا بیس ذخیره می کنم هر کسی میتونه واسه سفارشش طبق روش بالا پرداخت موفق ثبت کنه در صورتی که اصلا پرداختی انجام نداده
لطفا هر چه سریعتر راهنمایی کنید
 
سلام.
ببخشد که دیر پاسخ می دهم، این موضوع را تازه امروز دیدم. 
خود سایت parspal صفحه ای را دارد که پس از دریافت اطلاعات پرداخت، می توانیم از طریق آن چک کنیم که آیا اطلاعات پرداخت صحت دارد یا خیر. آدرس صفحه :

کد پی‌اچ‌پی:
http://merchant.parspal.com/postservice/?Method=Verify 

کد چک کردن، مشابه کد زیر خواهد بود :

کد پی‌اچ‌پی:
<?php
// بازگشت از درگاه پرداخت
if(isset($_POST['status']) && $_POST['status'] == 100){ // پرداخت موفقیت آمیز بوده و باید صحت آن را چک کنیم
     
$reference_number $_POST['refnumber'];
     
// چک کردن صحت پرداخت
     
$params = array(
        
"MerchantID" => "my_MerchantID",
        
"Password" => "my_Password",
        
"Price" => "my_Price",
        
"RefNum" => $reference_number
    
);
    
$page_source Curl_Http_Post("http://merchant.parspal.com/postservice/?Method=Verify",$params);     
    if(
$page_source == "success" || $page_source == "Verifyed"){ // صحت پرداخت، تایید شده
        // اجرای عملیات های لازم
    
}
}
?>

که در آن، تابع Curl_Http_Post به صورت زیر تعریف شده است (کتابخانه Curl برای دریافت اطلاعات از یک صفحه، با استفاده از کدنویسی به کار می رود) :

کد پی‌اچ‌پی:
<?php
// send POST data to a URL and receive respose
function Curl_Http_Post($url,$params){
    
$postData '';
    
//create name value pairs seperated by &
    
foreach($params as $k => $v){ 
       
$postData .= $k '='.$v.'&'
    }
    
rtrim($postData'&');
 
    
$ch curl_init();  
 
    
curl_setopt($ch,CURLOPT_URL,$url);
    
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    
curl_setopt($ch,CURLOPT_HEADERfalse); 
    
curl_setopt($chCURLOPT_POSTcount($postData));
    
curl_setopt($chCURLOPT_POSTFIELDS$postData);    
 
    
$output=curl_exec($ch);
 
    
curl_close($ch);
    return 
$output
}
?>

همچنین دقت شود که هنگام دریافت مقادیر ارسال شده به صفحه، نکات امنیتی دریافت مقادیر را رعایت کنید. منظورم خط زیر است :

کد پی‌اچ‌پی:
$reference_number $_POST['refnumber'];