جهت :".$title." مبلغ:".$amount; $order=new sales(); $order->set_value("user_id",$user_id); $order->set_value("title",$title); $order->set_value("full_name",$full_name); $order->set_value("email",$email); $order->set_value("mobile",$mobile); $order->set_value("amount",$amount); $order->set_value("ip",$_SERVER["REMOTE_ADDR"]); $order->set_value("sale_time_stamp",time()); $order->set_value("descriptions",$descriptions); $order->set_value("string_time",get_curr_str_jdate()) ; if($order->save()) { $order->set_value("saleOrderId",mt_rand(5,2000)."0".$order->get_value("id")); $orderId=$order->get_value("saleOrderId"); //print "

".$orderId."

"; // die($terminal_id); // print_r($order); //print "order_id=".$orderId." "; $parameters = array( 'terminalId' => $terminal_id, 'userName' => $user, 'userPassword' => $pass, 'orderId' => $orderId, 'amount' => $amount, 'localDate' =>date("Ymd"), 'localTime' => date("Gi"), 'additionalData' => $descriptions, 'callBackUrl' => $callBackUrl."/mellat/call_back.php?bank_name=mellat"."&hsd=".sha1(salt.$orderId.salt), 'payerId' => $payerId); $result = $client->call('bpPayRequest', $parameters,$namespace); // print_r($result); $error=split(",",$result); if(sizeof($error)!=2) return $error; else { if($error[0]!="0") return $error; $order->set_value("RefId",$error[1]); if($order->save()) return $error; else return array(1200,0); } } else return array(1200,0); } function bpVerifyRequest($terminal_id=termina_id,$user=terminal_user_name,$pass=terminal_password) { if(sha1(salt.$_POST["SaleOrderId"].salt)!=$_GET["hsd"]) return 1203; $namespace='http://interfaces.core.sw.bps.com/'; $client = new nusoap_client('https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl'); $RefId =$_POST["RefId"]; $orderId=$_POST["SaleOrderId"]; $saleOrderId=$_POST["SaleOrderId"]; $saleReferenceId=$_POST["SaleReferenceId"]; $ResCode=$_POST["ResCode"]; $sale=new sales(); $sale=$sale->custome_find2(array("RefId"=>$RefId),1); if(!$sale) return 1201; if($ResCode!=0) return $ResCode; if($sale->get_value("pay_status")=="0") return 0; else if($sale->get_value("pay_status")=="1") return 1205; $sale->set_value("saleOrderId",$saleOrderId); $sale->set_value("SaleReferenceId",$saleReferenceId); $sale->set_value("ResCode",$ResCode); if(!$sale->save()) return 1200; $parameters = array( 'terminalId' => $terminal_id, 'userName' => $user, 'userPassword' => $pass, 'orderId' => $orderId, 'saleOrderId' =>$saleOrderId, 'saleReferenceId' => $saleReferenceId, ); $result = $client->call('bpVerifyRequest', $parameters,$namespace); if($result==0 ){$sale->set_value("pay_status",0); if(!$sale->save()){ return 1200;} return $result;} else { $result=bpInquiryRequest($RefId); return $result; } } function bpSettleRequest($RefId,$terminal_id=termina_id,$user=terminal_user_name,$pass=terminal_password) { $namespace='http://interfaces.core.sw.bps.com/'; $client = new nusoap_client('https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl'); $sale=new sales(); $sale=$sale->custome_find2(array("RefId"=>$RefId),1); if(!$sale|| $sale->get_value("RefId")!=$RefId) return 1201; $orderId=$sale->get_value("saleOrderId"); $saleOrderId=$sale->get_value("saleOrderId"); $saleReferenceId=$sale->get_value("SaleReferenceId"); $parameters = array( 'terminalId' => $terminal_id, 'userName' => $user, 'userPassword' => $pass, 'orderId' => $orderId, 'saleOrderId' =>$saleOrderId, 'saleReferenceId' => $saleReferenceId, ); $result = $client->call('bpSettleRequest', $parameters,$namespace); if($result==0 || ($sale->get_value("pay_status")!="1" && $result==45) ){$sale->set_value("pay_status",1); if(!$sale->save()){ return 1200;}return $result; } return $result; } function bpInquiryRequest($RefId,$terminal_id=termina_id,$user=terminal_user_name,$pass=terminal_password) { $namespace='http://interfaces.core.sw.bps.com/'; $client = new nusoap_client('https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl'); $sale=new sales(); $sale=$sale->custome_find2(array("RefId"=>$RefId),1); if(!$sale) return 1201; $orderId=$sale->get_value("saleOrderId"); $saleOrderId=$sale->get_value("saleOrderId"); $saleReferenceId=$sale->get_value("SaleReferenceId"); $parameters = array( 'terminalId' => $terminal_id, 'userName' => $user, 'userPassword' => $pass, 'orderId' => $orderId, 'saleOrderId' =>$saleOrderId, 'saleReferenceId' => $saleReferenceId, ); $result = $client->call('bpInquiryRequest', $parameters,$namespace); if($result==0 ){$sale->set_value("pay_status",0); if(!$sale->save()){ return 1200;}} return $result; } function bpReversalRequest($RefId,$terminal_id=termina_id,$user=terminal_user_name,$pass=terminal_password) { $namespace='http://interfaces.core.sw.bps.com/'; $client = new nusoap_client('https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl'); $sale=new sales(); $sale=$sale->custome_find2(array("RefId"=>$RefId),1); if(!$sale ) return 1201; $orderId=$sale->get_value("saleOrderId"); $saleOrderId=$sale->get_value("saleOrderId"); $saleReferenceId=$sale->get_value("SaleReferenceId"); $parameters = array( 'terminalId' => $terminal_id, 'userName' => $user, 'userPassword' => $pass, 'orderId' => $orderId, 'saleOrderId' =>$saleOrderId, 'saleReferenceId' => $saleReferenceId, ); $result = $client->call('bpReversalRequest', $parameters,$namespace); return $result; } function epay_errors($error_code) { print_r($error_code); $error_code=trim($error_code); $arr=array(); $arr[0]="تراكنش با موفقيت انجام شد"; $arr[11]="شماره كارت نامعتبر است"; $arr[12]="موجودي كافي نيست"; $arr[13]="رمز نادرست است"; $arr[14]="تعداد دفعات وارد كردن رمز بيش از حد مجاز است"; $arr[15]="كارت نامعتبر است"; $arr[16]="دفعات برداشت وجه بيش از حد مجاز است"; $arr[17]="كاربر از انجام تراكنش منصرف شده است"; $arr[18]="تاريخ انقضاي كارت گذشته است"; $arr[19]="مبلغ برداشت وجه بيش از حد مجاز است"; $arr[111]="صادر كننده كارت نامعتبر است"; $arr[112]="خطاي سوييچ صادر كننده كارت"; $arr[113]="پاسخي از صادر كننده كارت دريافت نشد"; $arr[114]="دارنده كارت مجاز به انجام اين تراكنش نيست"; $arr[21]="پذيرنده نامعتبر است"; $arr[23]="خطاي امنيتي رخ داده است"; $arr[24]="اطلاعات كاربري پذيرنده نامعتبر است"; $arr[25]="مبلغ نامعتبر است"; $arr[31]="پاسخ نامعتبر است"; $arr[32]="فرمت اطلاعات وارد شده صحيح نمي باشد"; $arr[33]="حساب نامعتبر است"; $arr[34]="خطاي سيستمي"; $arr[35]="تاريخ نامعتبر است"; $arr[41]="شماره درخواست تكراري است"; $arr[42]="يافت نشد Sale تراكنش"; $arr[43]="داده شده است Verify قبلا درخواست"; $arr[44]="يافت نشد Verfiy درخواست"; $arr[45]="شده است Settle تراكنش"; $arr[46]="نشده است Settle تراكنش"; $arr[47]="يافت نشد Settle تراكنش"; $arr[48]="شده است Reverse تراكنش"; $arr[49]="يافت نشد Refund تراكنش"; $arr[412]="شناسه قبض نادرست است"; $arr[413]="شناسه پرداخت نادرست است"; $arr[414]="سازمان صادر كننده قبض نامعتبر است"; $arr[415]="زمان جلسه كاري به پايان رسيده است"; $arr[416]="خطا در ثبت اطلاعات"; $arr[417]="شناسه پرداخت كننده نامعتبر است"; $arr[418]="اشكال در تعريف اطلاعات مشتري"; $arr[419]="تعداد دفعات ورود اطلاعات از حد مجاز گذشته است"; $arr[421]="نامعتبر است IP"; $arr[51]="تراكنش تكراري است"; $arr[54]="تراكنش مرجع موجود نيست"; $arr[55]="تراكنش نامعتبر است"; $arr[61]="خطا در واريز"; $arr[1200]="سايت مدرسه دچار خطا شده است"; $arr[1201]="فاکتور يافت نشد"; $arr[1203]="آدرس صفحه نا معتبر است"; $arr[1205]="اين تراکنش قبلا بررسي شده است"; if(array_key_exists($error_code,$arr)) return $arr[$error_code]."(".$error_code.")"; else if(!is_array($error_code))return "کد خطا نا معتبر است"."(".$error_code.")"; else print_r($error_code); } function check_setle() { $sale=new sales(); $sale=$sale->get_rows_by_query("select * from sales where (pay_status=0 and bank_name='mellat' ) " ); $t=0; if($sale) { $t=bpInquiryRequest($sale[0]->get_value("RefId")); if($t==0){ $t=bpSettleRequest($sale[0]->get_value("RefId")); } } } ?>جهت :".$title." مبلغ:".$amount; $order=new sales(); $order->set_value("user_id",$user_id); $order->set_value("title",$title); $order->set_value("full_name",$full_name); $order->set_value("email",$email); $order->set_value("mobile",$mobile); $order->set_value("amount",$amount); $order->set_value("ip",$_SERVER["REMOTE_ADDR"]); $order->set_value("sale_time_stamp",time()); $order->set_value("descriptions",$descriptions); $order->set_value("string_time",get_curr_str_jdate()) ; $order->set_value("bank_name","melli"); $t=$order->save(); if($t ) { print "ID=".$order->get_value("id"); $order->set_value("saleOrderId",mt_rand(5,2000)."0".$order->get_value("id")); $orderId=$order->get_value("id"); //print "

".$orderId."

"; // die($terminal_id); // print_r($order); //print "order_id=".$orderId." "; $soapclient = new nusoap_client('https://bmiutility2.bmi.ir:443/MerchantUtility.asmx?wsdl','wsdl'); $soapProxy = $soapclient->getProxy() ; //echo "
".print_r($soapProxy)."
"; //$result=$soapProxy->PaymentUtility($MerchantId,$AmountTrans,$OrderId,$TransactionKey,$TerminalID,$RedirectUrl); $result=$soapProxy->PaymentUtility( $user,$order->get_value("amount"),$order->get_value("id"),$pass,$terminal_id,$callBackUrl."/melli/call_back.php?bank_name=melli"."&hsd=".sha1(salt.$orderId.salt)); $err= $soapProxy->getError();//If exists any errors if(strlen($err)>1) return array(-1,$err); $order->set_value("RefId",$result['RequestKey']); $order->save(); $FormStr = $result['PaymentUtilityResult']; return array(0,$order->get_value("id"),$FormStr); } else { print $order->errors(); return array(-1,88); } } function app_status($app_st) { $app= array(); $app["NOT_SET"]="مقادیر تراکنش هنوز مشخص نشده است"; $app["NOT_EXIST"]="تراکنش بر روی درگاه وجود ندارد"; $app["INCOMPLET_INFO"]="تراکنش در مرحله تکمیل اطلاعات است"; $app["REQUEST_DONE"]="تراکنش انجام شده است ولی هنوز نتیجه آن توسط پذیرنده دریافت نشده است"; $app["COMMIT"]="تراکنش با موفقیت انجام شده است و پذیرنده نیز از نتیجه ان آکاه شده است"; $app["WAIT_FOR_REVERSAL"]="در انجام تراکنش مشکلی به وجود آمده است و تراکنش در حال انتظار برای انجام عملیات بازگشت به حساب است"; $app["WAIT_FOR_REVERSAL_ADVISE"]="در انجام عملیات برگشت تراکنش مشکلی به وجود آمده است و تراکنش در انتظار برگشت مجدد است."; $app["REVERSALED"]="تراکنش موفق نبوده است و مبلغ با موفقیت به حساب خریدار برگشت داده شده است."; $app["FAILED"]="خطایی در انجام تراکنش رخ داده است.جهت تشخیص نوع خطا به لیست کدهای خطا مراجه نمایید."; $app["CHECK_STATUS"]="تراکنش با موفقیت انجام شده است و در انتظار عملیات checkstatus از سمت پذیرنده میباشد "; $app["WAIT_FOR_REVERSAL_10MINUTE"]="نتیجه تراکنش ظرف 10 دقیقه توسط پذیرنده دریافت نشده است و در انتظار برای عملیات برگشت پول میباشد."; return $app[$app_st]; } function bmiVerifyRequest($terminal_id=melli_termina_id,$user=melli_terminal_user_name,$pass=melli_terminal_password,$order_=false) { // print_r($_POST); if(!$order_) $order_id=$_POST["OrderId"]; else $order_id=$order_; // print ""; if(!is_numeric($order_id)) return array(1204,ShowStatus(1204),""); if(sha1(salt.$order_id.salt)!=$_GET["hsd"]) return array(1203,ShowStatus(1203),""); $order=new sales(); $order=$order->find_by_id($order_id) ; if(!$order) return array(1204,ShowStatus(1204),""); if($order->get_value("pay_status")==1) return array(1205,ShowStatus(1205),""); $soapclient = new nusoap_client('https://bmiutility2.bmi.ir/MerchantUtility.asmx?wsdl','wsdl'); $soapProxy = $soapclient->getProxy() ; $result=$soapProxy->CheckRequestStatus($order_id , $user , $terminal_id, $pass , $order->get_value("RefId") , $order->get_value("amount")); $err= $soapProxy->getError(); if(strlen($err)>1) return array(-1,$err); $StatusResult=$result["CheckRequestStatusResult"]; $StrResult=strval($StatusResult); $msg=ShowStatus($StrResult); $RefNo=$result['RefNo']; // print_r($result); $order->set_value("saleOrderId",$RefNo); // print("*".strlen($ResponseCode)."*".$ResponseCode."
"); if($StatusResult==0 ) $order->set_value("pay_status",1); else $order->set_value("pay_status",-1); $order->save(); $AppStatus=$result['AppStatus']; // print_r(array($ResponseCode,$msg,app_status($AppStatus)) ); return array($StatusResult,$msg,app_status($AppStatus)); } /* function bpVerifyRequest($terminal_id=termina_id,$user=terminal_user_name,$pass=terminal_password) { if(sha1(salt.$_POST["SaleOrderId"].salt)!=$_GET["hsd"]) return 1203; $namespace='http://interfaces.core.sw.bps.com/'; $client = new nusoap_client('https://pgws.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl'); $RefId =$_POST["RefId"]; $orderId=$_POST["SaleOrderId"]; $saleOrderId=$_POST["SaleOrderId"]; $saleReferenceId=$_POST["SaleReferenceId"]; $ResCode=$_POST["ResCode"]; $sale=new sales(); $sale=$sale->custome_find2(array("RefId"=>$RefId),1); if(!$sale) return 1201; if($ResCode!=0) return $ResCode; if($sale->get_value("pay_status")=="0") return 0; else if($sale->get_value("pay_status")=="1") return 1205; $sale->set_value("saleOrderId",$saleOrderId); $sale->set_value("SaleReferenceId",$saleReferenceId); $sale->set_value("ResCode",$ResCode); if(!$sale->save()) return 1200; $parameters = array( 'terminalId' => $terminal_id, 'userName' => $user, 'userPassword' => $pass, 'orderId' => $orderId, 'saleOrderId' =>$saleOrderId, 'saleReferenceId' => $saleReferenceId, ); $result = $client->call('bpVerifyRequest', $parameters,$namespace); if($result==0 ){$sale->set_value("pay_status",0); if(!$sale->save()){ return 1200;} return $result;} else { $result=bpInquiryRequest($RefId); return $result; } } function bpSettleRequest($RefId,$terminal_id=termina_id,$user=terminal_user_name,$pass=terminal_password) { $namespace='http://interfaces.core.sw.bps.com/'; $client = new nusoap_client('https://pgws.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl'); $sale=new sales(); $sale=$sale->custome_find2(array("RefId"=>$RefId),1); if(!$sale|| $sale->get_value("RefId")!=$RefId) return 1201; $orderId=$sale->get_value("saleOrderId"); $saleOrderId=$sale->get_value("saleOrderId"); $saleReferenceId=$sale->get_value("SaleReferenceId"); $parameters = array( 'terminalId' => $terminal_id, 'userName' => $user, 'userPassword' => $pass, 'orderId' => $orderId, 'saleOrderId' =>$saleOrderId, 'saleReferenceId' => $saleReferenceId, ); $result = $client->call('bpSettleRequest', $parameters,$namespace); if($result==0 || ($sale->get_value("pay_status")!="1" && $result==45) ){$sale->set_value("pay_status",1); if(!$sale->save()){ return 1200;}return $result; } return $result; } function bpInquiryRequest($RefId,$terminal_id=termina_id,$user=terminal_user_name,$pass=terminal_password) { $namespace='http://interfaces.core.sw.bps.com/'; $client = new nusoap_client('https://pgws.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl'); $sale=new sales(); $sale=$sale->custome_find2(array("RefId"=>$RefId),1); if(!$sale) return 1201; $orderId=$sale->get_value("saleOrderId"); $saleOrderId=$sale->get_value("saleOrderId"); $saleReferenceId=$sale->get_value("SaleReferenceId"); $parameters = array( 'terminalId' => $terminal_id, 'userName' => $user, 'userPassword' => $pass, 'orderId' => $orderId, 'saleOrderId' =>$saleOrderId, 'saleReferenceId' => $saleReferenceId, ); $result = $client->call('bpInquiryRequest', $parameters,$namespace); if($result==0 ){$sale->set_value("pay_status",0); if(!$sale->save()){ return 1200;}} return $result; } function bpReversalRequest($RefId,$terminal_id=termina_id,$user=terminal_user_name,$pass=terminal_password) { $namespace='http://interfaces.core.sw.bps.com/'; $client = new nusoap_client('https://pgws.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl'); $sale=new sales(); $sale=$sale->custome_find2(array("RefId"=>$RefId),1); if(!$sale ) return 1201; $orderId=$sale->get_value("saleOrderId"); $saleOrderId=$sale->get_value("saleOrderId"); $saleReferenceId=$sale->get_value("SaleReferenceId"); $parameters = array( 'terminalId' => $terminal_id, 'userName' => $user, 'userPassword' => $pass, 'orderId' => $orderId, 'saleOrderId' =>$saleOrderId, 'saleReferenceId' => $saleReferenceId, ); $result = $client->call('bpReversalRequest', $parameters,$namespace); return $result; } function epay_errors($error_code) { print_r($error_code); $error_code=trim($error_code); $arr=array(); $arr[0]="تراكنش با موفقيت انجام شد"; $arr[11]="شماره كارت نامعتبر است"; $arr[12]="موجودي كافي نيست"; $arr[13]="رمز نادرست است"; $arr[14]="تعداد دفعات وارد كردن رمز بيش از حد مجاز است"; $arr[15]="كارت نامعتبر است"; $arr[16]="دفعات برداشت وجه بيش از حد مجاز است"; $arr[17]="كاربر از انجام تراكنش منصرف شده است"; $arr[18]="تاريخ انقضاي كارت گذشته است"; $arr[19]="مبلغ برداشت وجه بيش از حد مجاز است"; $arr[111]="صادر كننده كارت نامعتبر است"; $arr[112]="خطاي سوييچ صادر كننده كارت"; $arr[113]="پاسخي از صادر كننده كارت دريافت نشد"; $arr[114]="دارنده كارت مجاز به انجام اين تراكنش نيست"; $arr[21]="پذيرنده نامعتبر است"; $arr[23]="خطاي امنيتي رخ داده است"; $arr[24]="اطلاعات كاربري پذيرنده نامعتبر است"; $arr[25]="مبلغ نامعتبر است"; $arr[31]="پاسخ نامعتبر است"; $arr[32]="فرمت اطلاعات وارد شده صحيح نمي باشد"; $arr[33]="حساب نامعتبر است"; $arr[34]="خطاي سيستمي"; $arr[35]="تاريخ نامعتبر است"; $arr[41]="شماره درخواست تكراري است"; $arr[42]="يافت نشد Sale تراكنش"; $arr[43]="داده شده است Verify قبلا درخواست"; $arr[44]="يافت نشد Verfiy درخواست"; $arr[45]="شده است Settle تراكنش"; $arr[46]="نشده است Settle تراكنش"; $arr[47]="يافت نشد Settle تراكنش"; $arr[48]="شده است Reverse تراكنش"; $arr[49]="يافت نشد Refund تراكنش"; $arr[412]="شناسه قبض نادرست است"; $arr[413]="شناسه پرداخت نادرست است"; $arr[414]="سازمان صادر كننده قبض نامعتبر است"; $arr[415]="زمان جلسه كاري به پايان رسيده است"; $arr[416]="خطا در ثبت اطلاعات"; $arr[417]="شناسه پرداخت كننده نامعتبر است"; $arr[418]="اشكال در تعريف اطلاعات مشتري"; $arr[419]="تعداد دفعات ورود اطلاعات از حد مجاز گذشته است"; $arr[421]="نامعتبر است IP"; $arr[51]="تراكنش تكراري است"; $arr[54]="تراكنش مرجع موجود نيست"; $arr[55]="تراكنش نامعتبر است"; $arr[61]="خطا در واريز"; $arr[1200]="سايت مدرسه دچار خطا شده است"; $arr[1201]="فاکتور يافت نشد"; $arr[1203]="آدرس صفحه نا معتبر است"; $arr[1205]="اين تراکنش قبلا بررسي شده است"; if(array_key_exists($error_code,$arr)) return $arr[$error_code]."(".$error_code.")"; else if(!is_array($error_code))return "کد خطا نا معتبر است"."(".$error_code.")"; else print_r($error_code); } function check_setle() { $sale=new sales(); $sale=$sale->get_rows_by_query("select * from sales where (pay_status=0 and bank_name='mellat' ) " ); $t=0; if($sale) { $t=bpInquiryRequest($sale[0]->get_value("RefId")); if($t==0){ $t=bpSettleRequest($sale[0]->get_value("RefId")); } } } */ ?>Connection to the server failedAccess denied for user 'neslkjfasalsdlaj'@'185.129.168.86' (using password: YES)