۱۳۹۲/۱/۶، ۱۱:۴۱:۳۲ صبح
۱۳۹۲/۲/۱۴، ۱۲:۰۸:۲۸ عصر
سلام و خسته نباشید
جناب زنگنه در پرداخت نهایی ارور میده ممنون میشم راهنمایی کنید.
پورت هم باز است و در پلاگین بانک مشکلی وجود ندارد.
-------------
درست شد.
جناب زنگنه در پرداخت نهایی ارور میده ممنون میشم راهنمایی کنید.
پورت هم باز است و در پلاگین بانک مشکلی وجود ندارد.
-------------
درست شد.
۱۳۹۲/۲/۲۰، ۱۲:۱۸:۳۰ عصر
سلام
محمد جان ما بعد از انتقال سایت به یک سرور جدید با مشکل زیر مواجه شدیم بعد از پرداخت موفقیت آمیز که میخواهد به سایت ریدایرکت شود یک صفحه سفید میاد با این نوشته ها:
محمد جان ما بعد از انتقال سایت به یک سرور جدید با مشکل زیر مواجه شدیم بعد از پرداخت موفقیت آمیز که میخواهد به سایت ریدایرکت شود یک صفحه سفید میاد با این نوشته ها:
کد:
user['uid']; $ug = $mybb->user['usergroup']; $id = $mybb->input['pid']; $uid = $mybb->user['uid']; $query0 = $db->query("SELECT * FROM ".TABLE_PREFIX."mybs WHERE id='$id'"); $mybs0 = $db->fetch_array($query0); $amount = $mybs0['price']; $gid = $mybs0['group']; $pgid = $mybb->user['usergroup']; $uid = $mybb->user['uid']; $time = $mybs0['time']; $tval = $mybs0['tval']; $bnk = $mybb->input['bid']; $ban = explode(",",$mybb->settings['mybs_ban']); $bang = explode(",",$mybb->settings['mybs_bang']); if(in_array($ui,$ban) || in_array($ug,$bang) || !$mybb->user['uid'] || !$id && !$mybb->input['error'] && $bnk!="3" || $mybb->request_method!="post" && $bnk!="3" || $bnk=="3" && !$mybb->input['iD'] && !$mybb->input['error'] || $bnk=="3" && !$mybb->input['iN'] && !$mybb->input['error']) { error_no_permission(); } else{ if($bnk==1) { require_once("./lib/nusoap.php"); $client = new nusoap_client('https://pgws.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl'); $namespace='http://interfaces.core.sw.bps.com/'; $query312 = $db->simple_select("mybs_banks", "*", "bid=1"); $mellat=$db->fetch_array($query312); $terminalId = $mellat['TerminalId']; $userName = $mellat['username']; $userPassword = $mellat['password']; $orderId = intval($mybb->input['SaleOrderId']); $SaleOrderId = intval($mybb->input['SaleOrderId']); $SaleReferenceId = intval($mybb->input['SaleReferenceId']); // Lets See if It has been verified Before .../// $parameters = array( 'terminalId' => $terminalId, 'userName' => $userName, 'userPassword' => $userPassword, 'orderId' => $orderId, 'saleOrderId' => $SaleOrderId, 'saleReferenceId' => $SaleReferenceId); ///////////////// VERIFY REQUEST // Check for an error $err = $client->getError(); if ($err) { $info="خطایی در اتصال به بانک به وجود آمد. لطفاً دقایقی دیگر (کمتر از 15 دقیقه بعد) این صفحه را به وسیله کلید F5 رفرش کنید. <.br> درصورتی که مشکل حل نشود ، هزینه در کمتر از 24 ساعت به حساب شما بازگردانده میشود.
خطا:
{$err}"; } // Call the SOAP method $result = $client->call('bpVerifyRequest', $parameters, $namespace); // Check for a fault if ($client->fault) { $rerror=print_r($result); $info="خطایی در اتصال به بانک به وجود آمد. لطفاً دقایقی دیگر (کمتر از 15 دقیقه بعد) این صفحه را به وسیله کلید F5 رفرش کنید. <.br> درصورتی که مشکل حل نشود ، هزینه در کمتر از 24 ساعت به حساب شما بازگردانده میشود.
خطا:
{$rerror}"; } else { $resultStr = $result; $err = $client->getError(); if ($err) { ///////////////// INQUIRY REQUEST // Call the SOAP method $result = $client->call('bpInquiryRequest', $parameters, $namespace); // Check for a fault if ($client->fault) { $rerror=print_r($result); $info="خطایی در اتصال به بانک به وجود آمد. لطفاً دقایقی دیگر (کمتر از 15 دقیقه بعد) این صفحه را به وسیله کلید F5 رفرش کنید. <.br> درصورتی که مشکل حل نشود ، هزینه در کمتر از 24 ساعت به حساب شما بازگردانده میشود.
خطا:
{$rerror}"; } else { $resultStr = $result; $err = $client->getError(); if ($err) { //////////REVERSAL REQUEST\\\\\\\\\\\\\\\ // Call the SOAP method $result = $client->call('bpReversalRequest', $parameters, $namespace); // Check for a fault if ($client->fault) { $rerror=print_r($result); $info="خطایی در اتصال به بانک به وجود آمد. لطفاً دقایقی دیگر (کمتر از 15 دقیقه بعد) این صفحه را به وسیله کلید F5 رفرش کنید. <.br> درصورتی که مشکل حل نشود ، هزینه در کمتر از 24 ساعت به حساب شما بازگردانده میشود.
خطا:
{$rerror}"; } else { $resultStr = $result; $err = $client->getError(); if ($err) { // Display the error $info="خطایی در اتصال به بانک به وجود آمد. لطفاً دقایقی دیگر (کمتر از 15 دقیقه بعد) این صفحه را به وسیله کلید F5 رفرش کنید. <.br> درصورتی که مشکل حل نشود ، هزینه در کمتر از 24 ساعت به حساب شما بازگردانده میشود.
خطا:
{$err}"; } else { if($resultStr == 0) { // Update Table, Save Reversal Status // Note: Successful Reversal means that sale is reversed. $info="به دلیل وجود مشکل، عضویت انجام نشد. هزینهی واریز شده حداکثر ظرف 24 ساعت کاری به حساب شما برگشت داده خواهد شد. در غیر اینصورت، با مدیریت تماس بگیرید."; } if($resultStr != 0) { if($resultStr==48) { $info="درخواست برگشت هزینه به حساب شما قبلاً داده شده است."; } else{ $info="تراکنش نامعتبر است."; } } }// end Display the result } //////////REVERSAL REQUEST\\\\\\\\\\\\\\\ } else { if($resultStr!=0) { SWITCH($resultStr): case 11: $info = "شمارهی کارت نامعتبر است."; break; case 12: $info = "موجودی کافی نیست."; break; case 13: $info = "رمز نادرست است."; break; case 14: $info = "تعداد دفعات وارد کردن رمز بیش از حد مجاز است."; break; case 15: $info = "کارت نامعتبر است."; break; case 17: $info = "کاربر از انجام تراکنش منصرف شده است."; break; case 18: $info = "تاریخ انقضای کارت نامعتبر است."; break; case 111: $info = "صادر کنندهی کارت نامعتبر است."; break; case 112: $info = "خطای سویچ صادر کنندهی کارت."; break; case 113: $info = "پاسخی از صادر کنندهی کارت دریافت نشد."; break; case 114: $info = "دارندهی کارت مجاز به انجام این تراکنش نیست!"; break; case 55: $info = "تراکنش نامعتبر است."; break; case 61: $info = "خطا در واریز."; break; case 415: $info = "زمان جلسهی کاری به پایان رسیده است."; break; case 416: $info = "خطا در ثبت اطلاعات."; break; case 417: $info = "شناسه پرداخت کننده نامعتبر است."; break; case 418: $info = "اشکال در تعریف اطلاعات مشتری."; break; case 419: $info = "تعداد دفعات ورود اطلاعات از حد مجاز گذشته است."; break; case 421: $info = "IP نامعتبر است."; break; case 51: $info = "تراکنش تکراری است"; break; case 52: $info = "سرویس درخواستی موجود نیست."; break; case 54: $info = "تراکنش مرجع موجود نیست."; break; case 42: $info = "شما از پرداخت انصراف دادید."; break; endswitch; } if($resultStr==0) { // Call the SOAP method $result = $client->call('bpVerifyRequest', $parameters, $namespace); // Check for a fault if ($client->fault) { $info="به دلیل وجود مشکل، عضویت انجام نشد. هزینهی واریز شده حداکثر ظرف 24 ساعت کاری به حساب شما برگشت داده خواهد شد. در غیر اینصورت، با مدیریت تماس بگیرید."; } else { $resultStr = $result; $err = $client->getError(); if ($err) { // Display the error $info="به دلیل وجود مشکل، عضویت انجام نشد. هزینهی واریز شده حداکثر ظرف 24 ساعت کاری به حساب شما برگشت داده خواهد شد. در غیر اینصورت، با مدیریت تماس بگیرید."; } else { if($resultStr!=0) { SWITCH($resultStr): case 11: $info = "شمارهی کارت نامعتبر است."; break; case 12: $info = "موجودی کافی نیست."; break; case 13: $info = "رمز نادرست است."; break; case 14: $info = "تعداد دفعات وارد کردن رمز بیش از حد مجاز است."; break; case 15: $info = "کارت نامعتبر است."; break; case 17: $info = "کاربر از انجام تراکنش منصرف شده است."; break; case 18: $info = "تاریخ انقضای کارت نامعتبر است."; break; case 111: $info = "صادر کنندهی کارت نامعتبر است."; break; case 112: $info = "خطای سویچ صادر کنندهی کارت."; break; case 113: $info = "پاسخی از صادر کنندهی کارت دریافت نشد."; break; case 114: $info = "دارندهی کارت مجاز به انجام این تراکنش نیست!"; break; case 55: $info = "تراکنش نامعتبر است."; break; case 61: $info = "خطا در واریز."; break; case 415: $info = "زمان جلسهی کاری به پایان رسیده است."; break; case 416: $info = "خطا در ثبت اطلاعات."; break; case 417: $info = "شناسه پرداخت کننده نامعتبر است."; break; case 418: $info = "اشکال در تعریف اطلاعات مشتری."; break; case 419: $info = "تعداد دفعات ورود اطلاعات از حد مجاز گذشته است."; break; case 421: $info = "IP نامعتبر است."; break; case 51: $info = "تراکنش تکراری است"; break; case 52: $info = "سرویس درخواستی موجود نیست."; break; case 54: $info = "تراکنش مرجع موجود نیست."; break; case 42: $info = "تراکنشیافت نشد."; break; endswitch; } if($resultStr==0) { ///Settle REQUEST\\ // Call the SOAP method $result = $client->call('bpSettleRequest', $parameters, $namespace); // Check for a fault if ($client->fault) { verfied(); //PM ADMIN require_once MYBB_ROOT."inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $uidp=$mybb->settings['mybs_uid']; $recipients_bcc = array(); $recipients_to = array(intval($uidp)); $subject = "عضویت کاربر در گروه ویژه"; $message ="تراکنش شمارهی [b]{$SaleReferenceId}[/b] انجام و تایید شد اما Settle نشد (به حساب واریز نشد)! برای Settle کردن آن در بخش تنظیمات کنترل پنل مدیرکل، به بخش Settle بانک ملّت مراجعه نمایید. شماره تراکنش: [b]{$SaleReferenceId}[/b] شماره سفارش: [b]{$orderId}[/b]"; $pm = array( 'subject' => $subject, 'message' => $message, 'icon' => -1, 'fromid' => 0, 'toid' => $recipients_to, 'bccid' => $recipients_bcc, 'do' => '', 'pmid' => '' ); $pm['options'] = array( "signature" => 1, "disablesmilies" => 0, "savecopy" => 1, "readreceipt" => 1 ); $pm['saveasdraft'] = 0; $pmhandler->admin_override = true; $pmhandler->set_data($pm); if($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } } else { $resultStr = $result; $err = $client->getError(); if ($err) { verfied(); //PM ADMIN require_once MYBB_ROOT."inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $uidp=$mybb->settings['mybs_uid']; $recipients_bcc = array(); $recipients_to = array(intval($uidp)); $subject = "عضویت کاربر در گروه ویژه"; $message ="تراکنش شمارهی [b]{$SaleReferenceId}[/b] انجام و تایید شد اما Settle نشد (به حساب واریز نشد)! برای Settle کردن آن در بخش تنظیمات کنترل پنل مدیرکل، به بخش Settle بانک ملّت مراجعه نمایید. شماره تراکنش: [b]{$SaleReferenceId}[/b] شماره سفارش: [b]{$orderId}[/b]"; $pm = array( 'subject' => $subject, 'message' => $message, 'icon' => -1, 'fromid' => 0, 'toid' => $recipients_to, 'bccid' => $recipients_bcc, 'do' => '', 'pmid' => '' ); $pm['options'] = array( "signature" => 1, "disablesmilies" => 0, "savecopy" => 1, "readreceipt" => 1 ); $pm['saveasdraft'] = 0; $pmhandler->admin_override = true; $pmhandler->set_data($pm); if($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } } else { // Update Table, Save Settle Status // Note: Successful Settle means that sale is settled. if($resultStr==0 || $resultStr==45) { verfied(); } else{ if($resultStr==47) { $info = "تراکنشیافت نشد."; } else { //PM ADMIN verfied(); require_once MYBB_ROOT."inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $uidp=$mybb->settings['mybs_uid']; $recipients_bcc = array(); $recipients_to = array(intval($uidp)); $subject = "عضويت کاربر در گروه ويژه"; $message ="تراکنش شمارهي [b]{$SaleReferenceId}[/b] انجام و تاييد شد اما Settle نشد (به حساب واريز نشد)! برای Settle کردن آن در بخش تنظیمات کنترل پنل مدیرکل، به بخش Settle بانک ملّت مراجعه نمایید. شماره تراکنش: [b]{$SaleReferenceId}[/b] شماره سفارش: [b]{$orderId}[/b]"; $pm = array( 'subject' => $subject, 'message' => $message, 'icon' => -1, 'fromid' => 0, 'toid' => $recipients_to, 'bccid' => $recipients_bcc, 'do' => '', 'pmid' => '' ); $pm['options'] = array( "signature" => 1, "disablesmilies" => 0, "savecopy" => 1, "readreceipt" => 1 ); $pm['saveasdraft'] = 0; $pmhandler->admin_override = true; $pmhandler->set_data($pm); if($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } } } } } ///////////////// VERIFY REQUEST\\\\\\\\\\\\\\\\\\\\\ } }// end Display the result } } }// end Display the result }// end Check for errors ///////////////// INQUIRY REQUEST \\\\\\\\\\\\\\\\\\\\ } else { if($resultStr!=0) { SWITCH($resultStr): case 11: $info = "شمارهی کارت نامعتبر است."; break; case 12: $info = "موجودی کافی نیست."; break; case 13: $info = "رمز نادرست است."; break; case 14: $info = "تعداد دفعات وارد کردن رمز بیش از حد مجاز است."; break; case 15: $info = "کارت نامعتبر است."; break; case 17: $info = "کاربر از انجام تراکنش منصرف شده است."; break; case 18: $info = "تاریخ انقضای کارت نامعتبر است."; break; case 111: $info = "صادر کنندهی کارت نامعتبر است."; break; case 112: $info = "خطای سویچ صادر کنندهی کارت."; break; case 113: $info = "پاسخی از صادر کنندهی کارت دریافت نشد."; break; case 114: $info = "دارندهی کارت مجاز به انجام این تراکنش نیست!"; break; case 55: $info = "تراکنش نامعتبر است."; break; case 61: $info = "خطا در واریز."; break; case 415: $info = "زمان جلسهی کاری به پایان رسیده است."; break; case 416: $info = "خطا در ثبت اطلاعات."; break; case 417: $info = "شناسه پرداخت کننده نامعتبر است."; break; case 418: $info = "اشکال در تعریف اطلاعات مشتری."; break; case 419: $info = "تعداد دفعات ورود اطلاعات از حد مجاز گذشته است."; break; case 421: $info = "IP نامعتبر است."; break; case 51: $info = "تراکنش تکراری است"; break; case 52: $info = "سرویس درخواستی موجود نیست."; break; case 54: $info = "تراکنش مرجع موجود نیست."; break; case 42: $info = "تراکنشیافت نشد."; break; endswitch; } if($resultStr==0) { ///Settle REQUEST\\ // Call the SOAP method $result = $client->call('bpSettleRequest', $parameters, $namespace); // Check for a fault if ($client->fault) { verfied(); //PM ADMIN require_once MYBB_ROOT."inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $uidp=$mybb->settings['mybs_uid']; $recipients_bcc = array(); $recipients_to = array(intval($uidp)); $subject = "عضویت کاربر در گروه ویژه"; $message ="تراکنش شمارهی [b]{$SaleReferenceId}[/b] انجام و تایید شد اما Settle نشد (به حساب واریز نشد)! برای Settle کردن آن در بخش تنظیمات کنترل پنل مدیرکل، به بخش Settle بانک ملّت مراجعه نمایید. شماره تراکنش: [b]{$SaleReferenceId}[/b] شماره سفارش: [b]{$orderId}[/b]"; $pm = array( 'subject' => $subject, 'message' => $message, 'icon' => -1, 'fromid' => 0, 'toid' => $recipients_to, 'bccid' => $recipients_bcc, 'do' => '', 'pmid' => '' ); $pm['options'] = array( "signature" => 1, "disablesmilies" => 0, "savecopy" => 1, "readreceipt" => 1 ); $pm['saveasdraft'] = 0; $pmhandler->admin_override = true; $pmhandler->set_data($pm); if($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } } else { $resultStr = $result; $err = $client->getError(); if ($err) { verfied(); //PM ADMIN require_once MYBB_ROOT."inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $uidp=$mybb->settings['mybs_uid']; $recipients_bcc = array(); $recipients_to = array(intval($uidp)); $subject = "عضویت کاربر در گروه ویژه"; $message ="تراکنش شمارهی [b]{$SaleReferenceId}[/b] انجام و تایید شد اما Settle نشد (به حساب واریز نشد)! برای Settle کردن آن در بخش تنظیمات کنترل پنل مدیرکل، به بخش Settle بانک ملّت مراجعه نمایید. شماره تراکنش: [b]{$SaleReferenceId}[/b] شماره سفارش: [b]{$orderId}[/b]"; $pm = array( 'subject' => $subject, 'message' => $message, 'icon' => -1, 'fromid' => 0, 'toid' => $recipients_to, 'bccid' => $recipients_bcc, 'do' => '', 'pmid' => '' ); $pm['options'] = array( "signature" => 1, "disablesmilies" => 0, "savecopy" => 1, "readreceipt" => 1 ); $pm['saveasdraft'] = 0; $pmhandler->admin_override = true; $pmhandler->set_data($pm); if($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } } else { // Update Table, Save Settle Status // Note: Successful Settle means that sale is settled. if($resultStr==0 || $resultStr==45) { verfied(); } else{ if($resultStr==47) { $info = "تراکنشیافت نشد."; } else { //PM ADMIN verfied(); require_once MYBB_ROOT."inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $uidp=$mybb->settings['mybs_uid']; $recipients_bcc = array(); $recipients_to = array(intval($uidp)); $subject = "عضويت کاربر در گروه ويژه"; $message ="تراکنش شمارهي [b]{$SaleReferenceId}[/b] انجام و تاييد شد اما Settle نشد (به حساب واريز نشد)! برای Settle کردن آن در بخش تنظیمات کنترل پنل مدیرکل، به بخش Settle بانک ملّت مراجعه نمایید. شماره تراکنش: [b]{$SaleReferenceId}[/b] شماره سفارش: [b]{$orderId}[/b]"; $pm = array( 'subject' => $subject, 'message' => $message, 'icon' => -1, 'fromid' => 0, 'toid' => $recipients_to, 'bccid' => $recipients_bcc, 'do' => '', 'pmid' => '' ); $pm['options'] = array( "signature" => 1, "disablesmilies" => 0, "savecopy" => 1, "readreceipt" => 1 ); $pm['saveasdraft'] = 0; $pmhandler->admin_override = true; $pmhandler->set_data($pm); if($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } } } } } ///////////////// VERIFY REQUEST\\\\\\\\\\\\\\\\\\\\\ } } } } /////////////////////////////////////////////SB24///////////////////// if($bnk==2){ $RefNum = $mybb->input['RefNum']; $ResNum = $mybb->input['ResNum']; $SaleReferenceId = $RefNum; $orderId = $ResNum; $State = $mybb->input['State']; $query313 = $db->simple_select("mybs_banks", "*", "bid=2"); $sb24=$db->fetch_array($query313); if($sb24) { $Password = $sb24['password']; $MerchantId = $sb24['TerminalId']; require_once("lib/nusoap.php"); $soapclient = new nusoap_client('https://acquirer.sb24.com/ref-payment/ws/ReferencePayment?WSDL','wsdl'); $soapProxy = $soapclient->getProxy() ; $err = $soapclient->getError(); if($err) { $soapclient = new nusoap_client('http://acquirer.sb24.com/ref-payment/ws/ReferencePayment?WSDL','wsdl'); $soapProxy = $soapclient->getProxy() ; $err1 = $soapclient->getError(); if($err1) { $info = "مشکلی در اتصال به درگاه بانک سامان وجود دارد. لطفاً مجدداً این صفحه را بارگذاری کنید.
در صورتی که مشکل برطرف نشد، با مدیریت تماس بگیرید.
خطا: {$err1}"; break; } } $res = $soapProxy->VerifyTransaction($RefNum, $MerchantId); if($res <= "0") { SWITCH($res): case "-1": $info = "خطای داخلی شبکهی مالی."; break; case "-2": $info = "سپردهها برابر نیستند."; break; case "-3": $info = "ورودی حاوی کارکترهای غیرمجاز میباشد."; break; case "-4": $info = "کلمهی عبوریا کد فروشنده نادرست است."; break; case "-5": $info = "سپردهها برابر نیستند."; break; case "-6": $info = "سند قبلاً برگشت کاملیافته است."; break; case "-7": $info = "رسید دیجیتالی تهی است."; break; case "-8": $info = "طول ورودیها بیش از حد مجاز است."; break; case "-9": $info = "مبلغ برگشتی حاوی کارکترهای غیرمجاز است."; break; case "-10": $info = "رسید دیجیتالی حاوی کارکترهای غیرمجاز است."; break; case "-11": $info = "طول ورودیها کمتر از حد مجاز است."; break; case "-12": $info = "مبلغ برگشتی منفی است."; break; case "-13": $info = "مبلغ برگشتی برای برگشت جزئی بیش از مبلغ برگشت نخوردهی رسید دیجیتالی است."; break; case "-14": $info = "چنین تراکنشی تعریف نشدهاست."; break; case "-15": $info = "مبلغ برگشتی به صورت عدد اعشاری است."; break; case "-16": $info = "خطای داخلی سیستم."; break; case "-17": $info = "برگشت زدن جزیی تراکنشی که با کارتی غیر از کارت بانک سامان انجام گرفتهاست."; break; case "-18": $info = "IP Address فروشنده نامعتبر است."; break; endswitch; } if($State != "OK") { SWITCH($State): case "Canceled By User": $info = "تراکنش توسط خریدار لغو شدهاست."; break; case "Invalid Amount": $info = "مبلغ سند برگشتی از مبلغ تراکنش اصلی بیشتر است."; break; case "Invalid Transaction": $info = "تراکنش نامعتبر است."; break; case "Invalid Card Number": $info = "شمارهی کارت اشتباه است."; break; case "No Such Issuer": $info = "چنین صادر کنندهی کارتی وجود ندارد."; break; case "Expired Card Pick Up": $info = "از تاریخ انقضای کارت گذشتهاست و کارت دیگر معتبر نیست."; break; case "Allowable PIN Tries Exceeded Pick Up": $info = "رمز کارت (PIN) سه مرتبه اشتباه وارد شدهاست. در نتیجه کارت غیرفعال خواهد شد."; break; case "Incorrect PIN": $info = "رمز کارت (PIN) اشتباه وارد شدهاست."; break; case "Exceeds Withdrawal Amount Limit": $info = "مبلغ بیش از سقف برداشت میباشد."; break; case "Transaction Cannot Be Completed": $info = "تراکنش Authorize شدهاست. (مقدارهای PIN و PAN) درست هستند اما امکان سند خوردن وجود ندارد."; break; case "Response Received Too Late": $info = "تراکنش در شبکهی بانکی TimeOut خوردهاست."; break; case "Suspected Fraud Pick Up": $info = "فیلد CVV2 یا تاریخ انقضا اشتباه وارد شدهاست یا اصلاً وارد نشدهاست."; break; case "NoSufficientFunds": $info = "موجودی به اندازهی کافی در کارت وجود ندارد."; break; case "Issuer Down Slm": $info = "سیستم کارت بانک صادر کننده در وضعیت عملیاتی نیست."; break; case "TME Error": $info = "خطایی در پرداخت هزینه به وجود آمدهاست."; break; default: $info = "خطا در شبکه."; break; endswitch; } if($res > "0" && $State == "OK") { if($db->num_rows($query0) > 0) { $price = intval($mybs0['price']); if ($res == $price) { verfied(); } else{ $soapclient1 = new nusoap_client('https://acquirer.sb24.com/CardServices/controller','wsdl'); $soapProxy1 = $soapclient1->getProxy() ; $res1 = $soapProxy1->ReverseTransaction($RefNum,$MerchantId,$Password,$res); $err1 = $soapclient1->getError(); if($err1) { $soapclient1 = new soapclient('http://Acquirer.sb24.com/ref-payment/ws/ReferencePayment?WSDL','wsdl'); $res1 = $soapProxy1->ReverseTransaction($RefNum,$MerchantId,$Password,$res); $soapProxy1 = $soapclient1->getProxy() ; $err2 = $soapclient1->getError(); if($err2) { $info = "مشکلی در اتصال به درگاه بانک سامان وجود دارد. لطفاً مجدداً این صفحه را بارگذاری کنید.
در صورتی که مشکل برطرف نشد، با مدیریت تماس بگیرید.
خطا: {$err1}"; } } if( $res1 == 1 ) { $info = "به دلیل مغایرت مبلغ واریزی با مبلغ بسته، مبلغ واریزی به حساب شما برگشت خورد."; } if( $res1 != 1 ) { SWITCH($res1): case "-1": $info = "خطای داخلی شبکهی مالی."; break; case "-2": $info = "سپردهها برابر نیستند."; break; case "-3": $info = "ورودی حاوی کارکترهای غیرمجاز میباشد."; break; case "-4": $info = "کلمهی عبوریا کد فروشنده نادرست است."; break; case "-5": $info = "سپردهها برابر نیستند."; break; case "-6": $info = "سند قبلاً برگشت کاملیافته است."; break; case "-7": $info = "رسید دیجیتالی تهی است."; break; case "-8": $info = "طول ورودیها بیش از حد مجاز است."; break; case "-9": $info = "مبلغ برگشتی حاوی کارکترهای غیرمجاز است."; break; case "-10": $info = "رسید دیجیتالی حاوی کارکترهای غیرمجاز است."; break; case "-11": $info = "طول ورودیها کمتر از حد مجاز است."; break; case "-12": $info = "مبلغ برگشتی منفی است."; break; case "-13": $info = "مبلغ برگشتی برای برگشت جزئی بیش از مبلغ برگشت نخوردهی رسید دیجیتالی است."; break; case "-14": $info = "چنین تراکنشی تعریف نشدهاست."; break; case "-15": $info = "مبلغ برگشتی به صورت عدد اعشاری است."; break; case "-16": $info = "خطای داخلی سیستم."; break; case "-17": $info = "برگشت زدن جزیی تراکنشی که با کارتی غیر از کارت بانک سامان انجام گرفتهاست."; break; case "-18": $info = "IP Address فروشنده نامعتبر است."; break; endswitch; } } } else{ $info = "این بسته وجود ندارد. برای اطلاعات بیشتر با مدیر تماس بگیرید."; break; } } } else{ $info = "درگاهی مربوط به بانک سامان ثبت نشدهاست."; } } /////////////// BPI///////////////// if($bnk==3){ $error = $mybb->input['error']; if($error) { $info = "پرداخت موفقیت آمیز نبود."; } else{ $SaleReferenceId = $mybb->input['tref']; $orderId = $mybb->input['iN']; $date = $mybb->input['iD']; $query313 = $db->simple_select("mybs_banks", "*", "bid=3"); $bpi=$db->fetch_array($query313); if($bpi) { class PasargadCart { var $time_stamp = ''; // String This will load in constructor by default. Format-> "Y/m/d H:i:s" var $invoice_date = ''; // String Any date that you use in your system var $invoice_number = ''; // String var $total_amount = 0; // Integer var $buyer_name = ''; // String var $buyer_tel = ''; // String var $delivery_address = ''; // String var $cart = array(); // Array Array of cart items /** * Constructor * * This function just adds parameters which are predefined in the class. * @param array Array of needed parameters */ function __construct($data=array()){ GLOBAL $mybb, $db; $pasargadquery = $db->simple_select("mybs_banks", "*", "bid=3"); $pasargad=$db->fetch_array($pasargadquery); // Make time stamp $this->time_stamp = date('Y/m/d H:i:s'); // Load config file // Load config data in object $merchant_code = $pasargad['TerminalId']; $terminal_code = $pasargad['username']; $redirect_address = "{$mybb->settings['bburl']}/payment_gateway.php?bid={$mybb->input['bid']}&pid={$mybb->input['pid']}"; $referrer_address = "{$mybb->settings['bburl']}/payment_gateway.php?bid={$mybb->input['bid']}&pid={$mybb->input['pid']}&error=bank"; $this->delivery_days = "1"; // If there is any data if(count($data)>0){ foreach($data as $var => $value){ // Load every data except cart if(property_exists('PasargadCart', $var) && $var!='cart'){ // Make params ready to prevent from problems. // This will strip all html tags. $value = strip_tags($value); // This will strip OS return symbols (\n or \r) $value = str_replace(array("\n","\r"), ' ', $value); $this->$var = $value; } // Now assign cart after making it ready if($var == 'cart') $this->cart = $this->makeProductItems($value); } } } /** * Constructor * for PHP 4 * This function just adds parameters which are predefined in the class. * @param array Array of needed parameters */ function PasargadCart($data=array()){ $this->__construct($data); } /** * Make product items ready to use in the cart * * @param array Array of product items * @return array Array of cart item objects */ function makeProductItems($products = array()){ // Define default values which every product item needs $content = ''; // Name or anything which user need to know about this product $count = 0; // Quantity of the item $fee = 0; // Unit price of the item. $description = ''; // Description of the item $result = array(); if(count($products)>0){ // If there is any products foreach($products as $product){ // Create default and necessary parameters $item = NULL; $item->content = $content; $item->count = $count; $item->fee = $fee; $item->description = $description; // Assign item's defined parameters if(is_array($product) && count($product)>0) { foreach($product as $key => $value){ // Make params ready to prevent from problems. // This will strip all html tags. $value = strip_tags($value); // This will strip OS return symbols (\n or \r) $value = str_replace(array("\n","\r"), ' ', $value); // Add to Item $item->$key = $value; } } // Calculate amount parameter $item->amount = $item->fee * $item->count; // Add to results $result[] = $item; } } return $result; } } /** * Pasargad Class * This class will help you create xml, sign it and communicate with Pasargad terminal. */ class Pasargad { var $response = NULL; /** * Constructor * * This function just adds parameters which are predefined in the class. * @param array Array of needed parameters */ function __construct($data=array()){ // } /** * Constructor * for PHP 4 * This function just adds parameters which are predefined in the class. * @param array Array of needed parameters */ function Pasargad($data=array()){ $this->__construct($data); } function getResponse($tref='',$cart=NULL){ $url = "https://paypaad.bankpasargad.com/PaymentTrace"; $curl_session = curl_init($url); // Initiate CURL session -> notice: CURL should be enabled. curl_setopt($curl_session, CURLOPT_POST, 1); // Set post method on. curl_setopt($curl_session, CURLOPT_HEADER, 0); //Don't return http headers curl_setopt($curl_session, CURLOPT_RETURNTRANSFER, 1); // Return the content of the call // Make post parameters if($tref!='' && $tref!=NULL && !empty ($tref)){ // If there is any tref // This parameter is enough $post_data = "tref=".$tref; }elseif(is_object($cart) && $cart->invoice_number!=''){ //We need more parameters $post_data = 'invoice_number='.$cart->invoice_number .'&invoice_date='.$cart->invoice_date .'&merchant_code'.$cart->merchant_code .'&terminal_code'.$cart->terminal_code ; }else{ // There are no enough parameters return false; } // Set parameters to post. curl_setopt($curl_session, CURLOPT_POSTFIELDS, $post_data); // Get returning data $output = curl_exec($curl_session); // Close CURL session curl_close($curl_session); // Create a xml parser $parser = xml_parser_create(); // Parse XML xml_parse_into_struct($parser, $output, $values); // Free the parser xml_parser_free($parser); // Load parsed data and make it ready to use $this->response = NULL; foreach($values as $res_item){ $tag = strtolower($res_item['tag']); $this->response->$tag = $res_item['value']; } // Return object of parsed data return $this->response; } /** * This function is needed to parse xml data * and is just for internal use. */ function contents($parser,$data){ $this->response = $data; } /** * This function is needed to parse xml data * and is just for internal use. */ function startTag($parser,$data) { // Do nothing } /** * This function is needed to parse xml data * and is just for internal use. */ function endTag($parser,$data){ // Do nothing } } //Make a cart object $cart_data = array( 'invoice_date'=>$date, 'invoice_number'=>$orderId ); $cart = new PasargadCart($cart_data); //Get Pasargad class $pasargad= new Pasargad(); //Send data to Pasargad system and get response $response = $pasargad->getResponse($SaleReferenceId,$cart); if($response->result == 'true' && $orderId == $mybs0['price']){ if($db->num_rows($query0) > 0) { verfied(); } else{ $info = "این بسته وجود ندارد. برای اطلاعات بیشتر با مدیر تماس بگیرید."; } } else{ $info = "تراکنش نامعتبر است."; } } else{ $info = "درگاهی مربوط به پرداخت امن بانک پاسارگاد ثبت نشدهاست. لطفاً با مدیر تماس بگیرید."; } } } if($bnk==4) { require_once("./lib/nusoap.php"); $au = $mybb->input['au']; $queryz = $db->simple_select("mybs_banks", "*", "bid=4"); $zcheck=$db->fetch_array($queryz); if(!$zcheck || intval($au)<=0) { if(!$zcheck) { $info="درگاهی مربوط به زرین پال ثبت نشده است."; } if(intval($au)<=0) { $info="تراکنش نامعتبر است."; } } else{ $SaleReferenceId = $mybb->input['refID']; $orderId = $mybb->input['refID']; $merchantID = $zcheck['TerminalId']; $amount = intval($amount); $amount1 = intval($amount)/10; $client = new nusoap_client('http://www.zarinpal.com/WebserviceGateway/wsdl', 'wsdl'); $res = $client->call("PaymentVerification", array($merchantID, $au, $amount1)); if($res && $res!=1) { if($res == -1) { $info = "اطلاعات وارد شده کامل نمي باشد . به همين دليل عضويت شما انجام نشد."; } if($res == -2) { $info = "نحوه دستيابي شما به اين صفحه معتبر نمي باشد . به همين دليل عضويت شما انجام نشد."; } if($res == 0) { $info = "عمليات پرداخت شما به طور کامل انجام نشده است. به همين دليل عضويت شما انجام نشد."; } if($res == -11) { $info = "شما از يک تراکنش جعلي براي عضويت استفاده کرده ايد."; } if($res == -12) { $info = "عمليات پرداخت به طور کامل انجام نشده است . به همين دليل عضويت شما انجام نشد."; } } elseif($res == 1) { verfied(); } } } } //////////// BPI////////////////// function verfied() { global $db,$mybb,$orderId,$SaleReferenceId,$id,$mybs0,$amount,$gid,$pgid,$uid,$time,$tval,$info,$bnk; $query48 = $db->simple_select("mybs_tractions", "*", "trackid='$SaleReferenceId'"); $check1 = $db->fetch_array($query48); $query49 = $db->query("SELECT * FROM ".TABLE_PREFIX."mybs_tractions WHERE uid=$uid AND stauts=1"); $check2 = $db->fetch_array($query49); if ($check1 || $check2 || $mybs0['active']!=1) { if($check1) { $info = "این تراکنش قبلاً ثبت شده است. بنابراین شما نمیتوانید به صورت غیر مجاز از این سیستم استفاده کنید."; } if($check2) { if($bnk=="1") { $bnk= "بانک ملّت"; } if($bnk=="2") { $bnk= "بانک سامان"; } if($bnk=="2") { $bnk= "پرداخت امن بانک پاسارگاد"; } $info = "شما قبلاً عضو گروه ویژهای شدهاید. برای اینکه بتوانید در این گروه عضو شوید در کنترل پنل کاربریتان عضویت کنونی خود را پایان دهید.
برای بازگردانی هزینهی پرداخت شده، با مدیر تماس بگیرید.
کد خرید: $orderId
شمارهی تراکنش: $SaleReferenceId
بانک: $bnk"; } if($mybs0['active']!=1) { $info = "این بسته غیر فعال است."; } } else{ $query1 = $db->simple_select('usergroups', '*', '1=1'); while($gr = $db->fetch_array($query1)) { $usergroups[$gr['gid']] = $gr['title']; } $query5 = $db->simple_select('users', 'username, uid', ''); while($uname1 = $db->fetch_array($query5, 'username, uid')) { $usname[$uname1['uid']] = $uname1['username']; } if ($time == "1") { $dateline = strtotime("+{$tval} days"); } if ($time == "2") { $dateline = strtotime("+{$tval} weeks"); } if ($time == "3") { $dateline = strtotime("+{$tval} months"); } if ($time == "4") { $dateline = strtotime("+{$tval} years"); } if ($time == "5") { $dateline = strtotime("+{$tval} hours"); } $stime = time(); $add_traction = array( 'packid' => $id, 'uid' => $uid, 'gid' => $gid , 'pgid' => $pgid , 'stdateline' => $stime, 'dateline' => $dateline, 'trackid' => $SaleReferenceId, 'orderid' => $orderId, 'payed' => $amount, 'bid' => $bnk, 'stauts' => "1", ); $db->insert_query("mybs_tractions", $add_traction); $db->update_query("users", array("usergroup" => $gid), "`uid` = '$uid'"); $expdate = my_date($mybb->settings['dateformat'], $dateline).", ".my_date($mybb->settings['timeformat'], $dateline); $profile_link = "[url={$mybb->settings['bburl']}/member.php?action=profile&uid={$uid}]{$usname[$uid]}[/url]"; $profile_link1 = build_profile_link($usname[$uid], $uid, "_blank"); $info = preg_replace( array( '#{username}#', '#{group}#', '#{refid}#', '#{expdate}#', ), array( $profile_link1, $usergroups[$gid], $SaleReferenceId, $expdate, ), $mybb->settings['mybs_note'] ); $username = $mybb->user['username']; // Notice User By PM require_once MYBB_ROOT."inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $recipients_bcc = array(); $recipients_to = array(intval($uid)); $subject = "گزارش پرداخت"; $message = preg_replace( array( '#{username}#', '#{group}#', '#{refid}#', '#{expdate}#', ), array( $profile_link, $usergroups[$gid], $SaleReferenceId, $expdate, ), $mybb->settings['mybs_pm'] ); $pm = array( 'subject' => $subject, 'message' => $message, 'icon' => -1, 'fromid' => 0, 'toid' => $recipients_to, 'bccid' => $recipients_bcc, 'do' => '', 'pmid' => '' ); $pm['options'] = array( "signature" => 1, "disablesmilies" => 0, "savecopy" => 1, "readreceipt" => 1 ); $pm['saveasdraft'] = 0; $pmhandler->admin_override = true; $pmhandler->set_data($pm); if($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } // Notice Admin By PM require_once MYBB_ROOT."inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $uidp=$mybb->settings['mybs_uid']; $recipients_bcc = array(); $recipients_to = array(intval($uidp)); $subject = "عضویت کاربر در گروه ویژه"; $message = preg_replace( array( '#{username}#', '#{group}#', '#{refid}#', ), array( $profile_link, $usergroups[$gid], $SaleReferenceId, ), "کاربر [B]{username}[/B] با شماره تراکنش [B]{refid}[/B] در گروه [B]{group}[/B] عضو شد. برای اطلاعات بیشتر به کنترل پنل مدیر مراجعه کنید." ); $pm = array( 'subject' => $subject, 'message' => $message, 'icon' => -1, 'fromid' => 0, 'toid' => $recipients_to, 'bccid' => $recipients_bcc, 'do' => '', 'pmid' => '' ); $pm['options'] = array( "signature" => 1, "disablesmilies" => 0, "savecopy" => 1, "readreceipt" => 1 ); $pm['saveasdraft'] = 0; $pmhandler->admin_override = true; $pmhandler->set_data($pm); if($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } } } eval("\$verfypage = \"".$templates->get('mybs_payinfo')."\";"); output_page($verfypage); ?>
۱۳۹۲/۲/۲۰، ۱۳:۴۱:۳۰ عصر
سلام
من در خرید بسته و انتخاب بانک ملت ارور زیر را میده پورت هم باز است و در پلاگین بانک مشکلی ندارم البته بعد از ریختن فایلهایی که قرار داده بودید.
مشکلي در اتصال به درگاه بانک ملّت وجود دارد.
لطفاً دقایقی دیگر دوباره تلاش کنید.
Error=HTTP Error: cURL ERROR: 28: connect() timed out!
url: https://pgws.bpm.bankmellat.ir:443/pgwch...s/pgw?wsdl
content_type:
http_code: 0
header_size: 0
request_size: 0
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0
namelookup_time: 2.427737
connect_time: 0
pretransfer_time: 0
size_upload: 0
size_download: 0
speed_download: 0
speed_upload: 0
download_content_length: -1
upload_content_length: -1
starttransfer_time: 0
redirect_time: 0
certinfo: Array
redirect_url:
من در خرید بسته و انتخاب بانک ملت ارور زیر را میده پورت هم باز است و در پلاگین بانک مشکلی ندارم البته بعد از ریختن فایلهایی که قرار داده بودید.
مشکلي در اتصال به درگاه بانک ملّت وجود دارد.
لطفاً دقایقی دیگر دوباره تلاش کنید.
Error=HTTP Error: cURL ERROR: 28: connect() timed out!
url: https://pgws.bpm.bankmellat.ir:443/pgwch...s/pgw?wsdl
content_type:
http_code: 0
header_size: 0
request_size: 0
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0
namelookup_time: 2.427737
connect_time: 0
pretransfer_time: 0
size_upload: 0
size_download: 0
speed_download: 0
speed_upload: 0
download_content_length: -1
upload_content_length: -1
starttransfer_time: 0
redirect_time: 0
certinfo: Array
redirect_url:
۱۳۹۲/۲/۲۱، ۱۶:۱۶:۰۶ عصر
قبلا یکبار مشکل حل شد ولی چند روزی است که همین مشکل وجود دارد.
۱۳۹۲/۲/۲۲، ۱۹:۲۳:۰۵ عصر
محمد جان، ممنون میشم به این مورد رسیدگی کنی
(۱۳۹۲/۲/۲۰، ۱۲:۱۸:۳۰ عصر)poolmand نوشته است: [ -> ]سلام
محمد جان ما بعد از انتقال سایت به یک سرور جدید با مشکل زیر مواجه شدیم بعد از پرداخت موفقیت آمیز که میخواهد به سایت ریدایرکت شود یک صفحه سفید میاد با این نوشته ها:
کد:user['uid']; $ug = $mybb->user['usergroup']; $id = $mybb->input['pid']; $uid = $mybb->user['uid']; $query0 = $db->query("SELECT * FROM ".TABLE_PREFIX."mybs WHERE id='$id'"); $mybs0 = $db->fetch_array($query0); $amount = $mybs0['price']; $gid = $mybs0['group']; $pgid = $mybb->user['usergroup']; $uid = $mybb->user['uid']; $time = $mybs0['time']; $tval = $mybs0['tval']; $bnk = $mybb->input['bid']; $ban = explode(",",$mybb->settings['mybs_ban']); $bang = explode(",",$mybb->settings['mybs_bang']); if(in_array($ui,$ban) || in_array($ug,$bang) || !$mybb->user['uid'] || !$id && !$mybb->input['error'] && $bnk!="3" || $mybb->request_method!="post" && $bnk!="3" || $bnk=="3" && !$mybb->input['iD'] && !$mybb->input['error'] || $bnk=="3" && !$mybb->input['iN'] && !$mybb->input['error']) { error_no_permission(); } else{ if($bnk==1) { require_once("./lib/nusoap.php"); $client = new nusoap_client('https://pgws.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl'); $namespace='http://interfaces.core.sw.bps.com/'; $query312 = $db->simple_select("mybs_banks", "*", "bid=1"); $mellat=$db->fetch_array($query312); $terminalId = $mellat['TerminalId']; $userName = $mellat['username']; $userPassword = $mellat['password']; $orderId = intval($mybb->input['SaleOrderId']); $SaleOrderId = intval($mybb->input['SaleOrderId']); $SaleReferenceId = intval($mybb->input['SaleReferenceId']); // Lets See if It has been verified Before .../// $parameters = array( 'terminalId' => $terminalId, 'userName' => $userName, 'userPassword' => $userPassword, 'orderId' => $orderId, 'saleOrderId' => $SaleOrderId, 'saleReferenceId' => $SaleReferenceId); ///////////////// VERIFY REQUEST // Check for an error $err = $client->getError(); if ($err) { $info="خطایی در اتصال به بانک به وجود آمد. لطفاً دقایقی دیگر (کمتر از 15 دقیقه بعد) این صفحه را به وسیله کلید F5 رفرش کنید. <.br> درصورتی که مشکل حل نشود ، هزینه در کمتر از 24 ساعت به حساب شما بازگردانده میشود.
خطا:
{$err}"; } // Call the SOAP method $result = $client->call('bpVerifyRequest', $parameters, $namespace); // Check for a fault if ($client->fault) { $rerror=print_r($result); $info="خطایی در اتصال به بانک به وجود آمد. لطفاً دقایقی دیگر (کمتر از 15 دقیقه بعد) این صفحه را به وسیله کلید F5 رفرش کنید. <.br> درصورتی که مشکل حل نشود ، هزینه در کمتر از 24 ساعت به حساب شما بازگردانده میشود.
خطا:
{$rerror}"; } else { $resultStr = $result; $err = $client->getError(); if ($err) { ///////////////// INQUIRY REQUEST // Call the SOAP method $result = $client->call('bpInquiryRequest', $parameters, $namespace); // Check for a fault if ($client->fault) { $rerror=print_r($result); $info="خطایی در اتصال به بانک به وجود آمد. لطفاً دقایقی دیگر (کمتر از 15 دقیقه بعد) این صفحه را به وسیله کلید F5 رفرش کنید. <.br> درصورتی که مشکل حل نشود ، هزینه در کمتر از 24 ساعت به حساب شما بازگردانده میشود.
خطا:
{$rerror}"; } else { $resultStr = $result; $err = $client->getError(); if ($err) { //////////REVERSAL REQUEST\\\\\\\\\\\\\\\ // Call the SOAP method $result = $client->call('bpReversalRequest', $parameters, $namespace); // Check for a fault if ($client->fault) { $rerror=print_r($result); $info="خطایی در اتصال به بانک به وجود آمد. لطفاً دقایقی دیگر (کمتر از 15 دقیقه بعد) این صفحه را به وسیله کلید F5 رفرش کنید. <.br> درصورتی که مشکل حل نشود ، هزینه در کمتر از 24 ساعت به حساب شما بازگردانده میشود.
خطا:
{$rerror}"; } else { $resultStr = $result; $err = $client->getError(); if ($err) { // Display the error $info="خطایی در اتصال به بانک به وجود آمد. لطفاً دقایقی دیگر (کمتر از 15 دقیقه بعد) این صفحه را به وسیله کلید F5 رفرش کنید. <.br> درصورتی که مشکل حل نشود ، هزینه در کمتر از 24 ساعت به حساب شما بازگردانده میشود.
خطا:
{$err}"; } else { if($resultStr == 0) { // Update Table, Save Reversal Status // Note: Successful Reversal means that sale is reversed. $info="به دلیل وجود مشکل، عضویت انجام نشد. هزینهی واریز شده حداکثر ظرف 24 ساعت کاری به حساب شما برگشت داده خواهد شد. در غیر اینصورت، با مدیریت تماس بگیرید."; } if($resultStr != 0) { if($resultStr==48) { $info="درخواست برگشت هزینه به حساب شما قبلاً داده شده است."; } else{ $info="تراکنش نامعتبر است."; } } }// end Display the result } //////////REVERSAL REQUEST\\\\\\\\\\\\\\\ } else { if($resultStr!=0) { SWITCH($resultStr): case 11: $info = "شمارهی کارت نامعتبر است."; break; case 12: $info = "موجودی کافی نیست."; break; case 13: $info = "رمز نادرست است."; break; case 14: $info = "تعداد دفعات وارد کردن رمز بیش از حد مجاز است."; break; case 15: $info = "کارت نامعتبر است."; break; case 17: $info = "کاربر از انجام تراکنش منصرف شده است."; break; case 18: $info = "تاریخ انقضای کارت نامعتبر است."; break; case 111: $info = "صادر کنندهی کارت نامعتبر است."; break; case 112: $info = "خطای سویچ صادر کنندهی کارت."; break; case 113: $info = "پاسخی از صادر کنندهی کارت دریافت نشد."; break; case 114: $info = "دارندهی کارت مجاز به انجام این تراکنش نیست!"; break; case 55: $info = "تراکنش نامعتبر است."; break; case 61: $info = "خطا در واریز."; break; case 415: $info = "زمان جلسهی کاری به پایان رسیده است."; break; case 416: $info = "خطا در ثبت اطلاعات."; break; case 417: $info = "شناسه پرداخت کننده نامعتبر است."; break; case 418: $info = "اشکال در تعریف اطلاعات مشتری."; break; case 419: $info = "تعداد دفعات ورود اطلاعات از حد مجاز گذشته است."; break; case 421: $info = "IP نامعتبر است."; break; case 51: $info = "تراکنش تکراری است"; break; case 52: $info = "سرویس درخواستی موجود نیست."; break; case 54: $info = "تراکنش مرجع موجود نیست."; break; case 42: $info = "شما از پرداخت انصراف دادید."; break; endswitch; } if($resultStr==0) { // Call the SOAP method $result = $client->call('bpVerifyRequest', $parameters, $namespace); // Check for a fault if ($client->fault) { $info="به دلیل وجود مشکل، عضویت انجام نشد. هزینهی واریز شده حداکثر ظرف 24 ساعت کاری به حساب شما برگشت داده خواهد شد. در غیر اینصورت، با مدیریت تماس بگیرید."; } else { $resultStr = $result; $err = $client->getError(); if ($err) { // Display the error $info="به دلیل وجود مشکل، عضویت انجام نشد. هزینهی واریز شده حداکثر ظرف 24 ساعت کاری به حساب شما برگشت داده خواهد شد. در غیر اینصورت، با مدیریت تماس بگیرید."; } else { if($resultStr!=0) { SWITCH($resultStr): case 11: $info = "شمارهی کارت نامعتبر است."; break; case 12: $info = "موجودی کافی نیست."; break; case 13: $info = "رمز نادرست است."; break; case 14: $info = "تعداد دفعات وارد کردن رمز بیش از حد مجاز است."; break; case 15: $info = "کارت نامعتبر است."; break; case 17: $info = "کاربر از انجام تراکنش منصرف شده است."; break; case 18: $info = "تاریخ انقضای کارت نامعتبر است."; break; case 111: $info = "صادر کنندهی کارت نامعتبر است."; break; case 112: $info = "خطای سویچ صادر کنندهی کارت."; break; case 113: $info = "پاسخی از صادر کنندهی کارت دریافت نشد."; break; case 114: $info = "دارندهی کارت مجاز به انجام این تراکنش نیست!"; break; case 55: $info = "تراکنش نامعتبر است."; break; case 61: $info = "خطا در واریز."; break; case 415: $info = "زمان جلسهی کاری به پایان رسیده است."; break; case 416: $info = "خطا در ثبت اطلاعات."; break; case 417: $info = "شناسه پرداخت کننده نامعتبر است."; break; case 418: $info = "اشکال در تعریف اطلاعات مشتری."; break; case 419: $info = "تعداد دفعات ورود اطلاعات از حد مجاز گذشته است."; break; case 421: $info = "IP نامعتبر است."; break; case 51: $info = "تراکنش تکراری است"; break; case 52: $info = "سرویس درخواستی موجود نیست."; break; case 54: $info = "تراکنش مرجع موجود نیست."; break; case 42: $info = "تراکنشیافت نشد."; break; endswitch; } if($resultStr==0) { ///Settle REQUEST\\ // Call the SOAP method $result = $client->call('bpSettleRequest', $parameters, $namespace); // Check for a fault if ($client->fault) { verfied(); //PM ADMIN require_once MYBB_ROOT."inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $uidp=$mybb->settings['mybs_uid']; $recipients_bcc = array(); $recipients_to = array(intval($uidp)); $subject = "عضویت کاربر در گروه ویژه"; $message ="تراکنش شمارهی [b]{$SaleReferenceId}[/b] انجام و تایید شد اما Settle نشد (به حساب واریز نشد)! برای Settle کردن آن در بخش تنظیمات کنترل پنل مدیرکل، به بخش Settle بانک ملّت مراجعه نمایید. شماره تراکنش: [b]{$SaleReferenceId}[/b] شماره سفارش: [b]{$orderId}[/b]"; $pm = array( 'subject' => $subject, 'message' => $message, 'icon' => -1, 'fromid' => 0, 'toid' => $recipients_to, 'bccid' => $recipients_bcc, 'do' => '', 'pmid' => '' ); $pm['options'] = array( "signature" => 1, "disablesmilies" => 0, "savecopy" => 1, "readreceipt" => 1 ); $pm['saveasdraft'] = 0; $pmhandler->admin_override = true; $pmhandler->set_data($pm); if($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } } else { $resultStr = $result; $err = $client->getError(); if ($err) { verfied(); //PM ADMIN require_once MYBB_ROOT."inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $uidp=$mybb->settings['mybs_uid']; $recipients_bcc = array(); $recipients_to = array(intval($uidp)); $subject = "عضویت کاربر در گروه ویژه"; $message ="تراکنش شمارهی [b]{$SaleReferenceId}[/b] انجام و تایید شد اما Settle نشد (به حساب واریز نشد)! برای Settle کردن آن در بخش تنظیمات کنترل پنل مدیرکل، به بخش Settle بانک ملّت مراجعه نمایید. شماره تراکنش: [b]{$SaleReferenceId}[/b] شماره سفارش: [b]{$orderId}[/b]"; $pm = array( 'subject' => $subject, 'message' => $message, 'icon' => -1, 'fromid' => 0, 'toid' => $recipients_to, 'bccid' => $recipients_bcc, 'do' => '', 'pmid' => '' ); $pm['options'] = array( "signature" => 1, "disablesmilies" => 0, "savecopy" => 1, "readreceipt" => 1 ); $pm['saveasdraft'] = 0; $pmhandler->admin_override = true; $pmhandler->set_data($pm); if($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } } else { // Update Table, Save Settle Status // Note: Successful Settle means that sale is settled. if($resultStr==0 || $resultStr==45) { verfied(); } else{ if($resultStr==47) { $info = "تراکنشیافت نشد."; } else { //PM ADMIN verfied(); require_once MYBB_ROOT."inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $uidp=$mybb->settings['mybs_uid']; $recipients_bcc = array(); $recipients_to = array(intval($uidp)); $subject = "عضویت کاربر در گروه ویژه"; $message ="تراکنش شمارهی [b]{$SaleReferenceId}[/b] انجام و تایید شد اما Settle نشد (به حساب واریز نشد)! برای Settle کردن آن در بخش تنظیمات کنترل پنل مدیرکل، به بخش Settle بانک ملّت مراجعه نمایید. شماره تراکنش: [b]{$SaleReferenceId}[/b] شماره سفارش: [b]{$orderId}[/b]"; $pm = array( 'subject' => $subject, 'message' => $message, 'icon' => -1, 'fromid' => 0, 'toid' => $recipients_to, 'bccid' => $recipients_bcc, 'do' => '', 'pmid' => '' ); $pm['options'] = array( "signature" => 1, "disablesmilies" => 0, "savecopy" => 1, "readreceipt" => 1 ); $pm['saveasdraft'] = 0; $pmhandler->admin_override = true; $pmhandler->set_data($pm); if($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } } } } } ///////////////// VERIFY REQUEST\\\\\\\\\\\\\\\\\\\\\ } }// end Display the result } } }// end Display the result }// end Check for errors ///////////////// INQUIRY REQUEST \\\\\\\\\\\\\\\\\\\\ } else { if($resultStr!=0) { SWITCH($resultStr): case 11: $info = "شمارهی کارت نامعتبر است."; break; case 12: $info = "موجودی کافی نیست."; break; case 13: $info = "رمز نادرست است."; break; case 14: $info = "تعداد دفعات وارد کردن رمز بیش از حد مجاز است."; break; case 15: $info = "کارت نامعتبر است."; break; case 17: $info = "کاربر از انجام تراکنش منصرف شده است."; break; case 18: $info = "تاریخ انقضای کارت نامعتبر است."; break; case 111: $info = "صادر کنندهی کارت نامعتبر است."; break; case 112: $info = "خطای سویچ صادر کنندهی کارت."; break; case 113: $info = "پاسخی از صادر کنندهی کارت دریافت نشد."; break; case 114: $info = "دارندهی کارت مجاز به انجام این تراکنش نیست!"; break; case 55: $info = "تراکنش نامعتبر است."; break; case 61: $info = "خطا در واریز."; break; case 415: $info = "زمان جلسهی کاری به پایان رسیده است."; break; case 416: $info = "خطا در ثبت اطلاعات."; break; case 417: $info = "شناسه پرداخت کننده نامعتبر است."; break; case 418: $info = "اشکال در تعریف اطلاعات مشتری."; break; case 419: $info = "تعداد دفعات ورود اطلاعات از حد مجاز گذشته است."; break; case 421: $info = "IP نامعتبر است."; break; case 51: $info = "تراکنش تکراری است"; break; case 52: $info = "سرویس درخواستی موجود نیست."; break; case 54: $info = "تراکنش مرجع موجود نیست."; break; case 42: $info = "تراکنشیافت نشد."; break; endswitch; } if($resultStr==0) { ///Settle REQUEST\\ // Call the SOAP method $result = $client->call('bpSettleRequest', $parameters, $namespace); // Check for a fault if ($client->fault) { verfied(); //PM ADMIN require_once MYBB_ROOT."inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $uidp=$mybb->settings['mybs_uid']; $recipients_bcc = array(); $recipients_to = array(intval($uidp)); $subject = "عضویت کاربر در گروه ویژه"; $message ="تراکنش شمارهی [b]{$SaleReferenceId}[/b] انجام و تایید شد اما Settle نشد (به حساب واریز نشد)! برای Settle کردن آن در بخش تنظیمات کنترل پنل مدیرکل، به بخش Settle بانک ملّت مراجعه نمایید. شماره تراکنش: [b]{$SaleReferenceId}[/b] شماره سفارش: [b]{$orderId}[/b]"; $pm = array( 'subject' => $subject, 'message' => $message, 'icon' => -1, 'fromid' => 0, 'toid' => $recipients_to, 'bccid' => $recipients_bcc, 'do' => '', 'pmid' => '' ); $pm['options'] = array( "signature" => 1, "disablesmilies" => 0, "savecopy" => 1, "readreceipt" => 1 ); $pm['saveasdraft'] = 0; $pmhandler->admin_override = true; $pmhandler->set_data($pm); if($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } } else { $resultStr = $result; $err = $client->getError(); if ($err) { verfied(); //PM ADMIN require_once MYBB_ROOT."inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $uidp=$mybb->settings['mybs_uid']; $recipients_bcc = array(); $recipients_to = array(intval($uidp)); $subject = "عضویت کاربر در گروه ویژه"; $message ="تراکنش شمارهی [b]{$SaleReferenceId}[/b] انجام و تایید شد اما Settle نشد (به حساب واریز نشد)! برای Settle کردن آن در بخش تنظیمات کنترل پنل مدیرکل، به بخش Settle بانک ملّت مراجعه نمایید. شماره تراکنش: [b]{$SaleReferenceId}[/b] شماره سفارش: [b]{$orderId}[/b]"; $pm = array( 'subject' => $subject, 'message' => $message, 'icon' => -1, 'fromid' => 0, 'toid' => $recipients_to, 'bccid' => $recipients_bcc, 'do' => '', 'pmid' => '' ); $pm['options'] = array( "signature" => 1, "disablesmilies" => 0, "savecopy" => 1, "readreceipt" => 1 ); $pm['saveasdraft'] = 0; $pmhandler->admin_override = true; $pmhandler->set_data($pm); if($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } } else { // Update Table, Save Settle Status // Note: Successful Settle means that sale is settled. if($resultStr==0 || $resultStr==45) { verfied(); } else{ if($resultStr==47) { $info = "تراکنشیافت نشد."; } else { //PM ADMIN verfied(); require_once MYBB_ROOT."inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $uidp=$mybb->settings['mybs_uid']; $recipients_bcc = array(); $recipients_to = array(intval($uidp)); $subject = "عضویت کاربر در گروه ویژه"; $message ="تراکنش شمارهی [b]{$SaleReferenceId}[/b] انجام و تایید شد اما Settle نشد (به حساب واریز نشد)! برای Settle کردن آن در بخش تنظیمات کنترل پنل مدیرکل، به بخش Settle بانک ملّت مراجعه نمایید. شماره تراکنش: [b]{$SaleReferenceId}[/b] شماره سفارش: [b]{$orderId}[/b]"; $pm = array( 'subject' => $subject, 'message' => $message, 'icon' => -1, 'fromid' => 0, 'toid' => $recipients_to, 'bccid' => $recipients_bcc, 'do' => '', 'pmid' => '' ); $pm['options'] = array( "signature" => 1, "disablesmilies" => 0, "savecopy" => 1, "readreceipt" => 1 ); $pm['saveasdraft'] = 0; $pmhandler->admin_override = true; $pmhandler->set_data($pm); if($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } } } } } ///////////////// VERIFY REQUEST\\\\\\\\\\\\\\\\\\\\\ } } } } /////////////////////////////////////////////SB24///////////////////// if($bnk==2){ $RefNum = $mybb->input['RefNum']; $ResNum = $mybb->input['ResNum']; $SaleReferenceId = $RefNum; $orderId = $ResNum; $State = $mybb->input['State']; $query313 = $db->simple_select("mybs_banks", "*", "bid=2"); $sb24=$db->fetch_array($query313); if($sb24) { $Password = $sb24['password']; $MerchantId = $sb24['TerminalId']; require_once("lib/nusoap.php"); $soapclient = new nusoap_client('https://acquirer.sb24.com/ref-payment/ws/ReferencePayment?WSDL','wsdl'); $soapProxy = $soapclient->getProxy() ; $err = $soapclient->getError(); if($err) { $soapclient = new nusoap_client('http://acquirer.sb24.com/ref-payment/ws/ReferencePayment?WSDL','wsdl'); $soapProxy = $soapclient->getProxy() ; $err1 = $soapclient->getError(); if($err1) { $info = "مشکلی در اتصال به درگاه بانک سامان وجود دارد. لطفاً مجدداً این صفحه را بارگذاری کنید.
در صورتی که مشکل برطرف نشد، با مدیریت تماس بگیرید.
خطا: {$err1}"; break; } } $res = $soapProxy->VerifyTransaction($RefNum, $MerchantId); if($res <= "0") { SWITCH($res): case "-1": $info = "خطای داخلی شبکهی مالی."; break; case "-2": $info = "سپردهها برابر نیستند."; break; case "-3": $info = "ورودی حاوی کارکترهای غیرمجاز میباشد."; break; case "-4": $info = "کلمهی عبوریا کد فروشنده نادرست است."; break; case "-5": $info = "سپردهها برابر نیستند."; break; case "-6": $info = "سند قبلاً برگشت کاملیافته است."; break; case "-7": $info = "رسید دیجیتالی تهی است."; break; case "-8": $info = "طول ورودیها بیش از حد مجاز است."; break; case "-9": $info = "مبلغ برگشتی حاوی کارکترهای غیرمجاز است."; break; case "-10": $info = "رسید دیجیتالی حاوی کارکترهای غیرمجاز است."; break; case "-11": $info = "طول ورودیها کمتر از حد مجاز است."; break; case "-12": $info = "مبلغ برگشتی منفی است."; break; case "-13": $info = "مبلغ برگشتی برای برگشت جزئی بیش از مبلغ برگشت نخوردهی رسید دیجیتالی است."; break; case "-14": $info = "چنین تراکنشی تعریف نشدهاست."; break; case "-15": $info = "مبلغ برگشتی به صورت عدد اعشاری است."; break; case "-16": $info = "خطای داخلی سیستم."; break; case "-17": $info = "برگشت زدن جزیی تراکنشی که با کارتی غیر از کارت بانک سامان انجام گرفتهاست."; break; case "-18": $info = "IP Address فروشنده نامعتبر است."; break; endswitch; } if($State != "OK") { SWITCH($State): case "Canceled By User": $info = "تراکنش توسط خریدار لغو شدهاست."; break; case "Invalid Amount": $info = "مبلغ سند برگشتی از مبلغ تراکنش اصلی بیشتر است."; break; case "Invalid Transaction": $info = "تراکنش نامعتبر است."; break; case "Invalid Card Number": $info = "شمارهی کارت اشتباه است."; break; case "No Such Issuer": $info = "چنین صادر کنندهی کارتی وجود ندارد."; break; case "Expired Card Pick Up": $info = "از تاریخ انقضای کارت گذشتهاست و کارت دیگر معتبر نیست."; break; case "Allowable PIN Tries Exceeded Pick Up": $info = "رمز کارت (PIN) سه مرتبه اشتباه وارد شدهاست. در نتیجه کارت غیرفعال خواهد شد."; break; case "Incorrect PIN": $info = "رمز کارت (PIN) اشتباه وارد شدهاست."; break; case "Exceeds Withdrawal Amount Limit": $info = "مبلغ بیش از سقف برداشت میباشد."; break; case "Transaction Cannot Be Completed": $info = "تراکنش Authorize شدهاست. (مقدارهای PIN و PAN) درست هستند اما امکان سند خوردن وجود ندارد."; break; case "Response Received Too Late": $info = "تراکنش در شبکهی بانکی TimeOut خوردهاست."; break; case "Suspected Fraud Pick Up": $info = "فیلد CVV2 یا تاریخ انقضا اشتباه وارد شدهاست یا اصلاً وارد نشدهاست."; break; case "NoSufficientFunds": $info = "موجودی به اندازهی کافی در کارت وجود ندارد."; break; case "Issuer Down Slm": $info = "سیستم کارت بانک صادر کننده در وضعیت عملیاتی نیست."; break; case "TME Error": $info = "خطایی در پرداخت هزینه به وجود آمدهاست."; break; default: $info = "خطا در شبکه."; break; endswitch; } if($res > "0" && $State == "OK") { if($db->num_rows($query0) > 0) { $price = intval($mybs0['price']); if ($res == $price) { verfied(); } else{ $soapclient1 = new nusoap_client('https://acquirer.sb24.com/CardServices/controller','wsdl'); $soapProxy1 = $soapclient1->getProxy() ; $res1 = $soapProxy1->ReverseTransaction($RefNum,$MerchantId,$Password,$res); $err1 = $soapclient1->getError(); if($err1) { $soapclient1 = new soapclient('http://Acquirer.sb24.com/ref-payment/ws/ReferencePayment?WSDL','wsdl'); $res1 = $soapProxy1->ReverseTransaction($RefNum,$MerchantId,$Password,$res); $soapProxy1 = $soapclient1->getProxy() ; $err2 = $soapclient1->getError(); if($err2) { $info = "مشکلی در اتصال به درگاه بانک سامان وجود دارد. لطفاً مجدداً این صفحه را بارگذاری کنید.
در صورتی که مشکل برطرف نشد، با مدیریت تماس بگیرید.
خطا: {$err1}"; } } if( $res1 == 1 ) { $info = "به دلیل مغایرت مبلغ واریزی با مبلغ بسته، مبلغ واریزی به حساب شما برگشت خورد."; } if( $res1 != 1 ) { SWITCH($res1): case "-1": $info = "خطای داخلی شبکهی مالی."; break; case "-2": $info = "سپردهها برابر نیستند."; break; case "-3": $info = "ورودی حاوی کارکترهای غیرمجاز میباشد."; break; case "-4": $info = "کلمهی عبوریا کد فروشنده نادرست است."; break; case "-5": $info = "سپردهها برابر نیستند."; break; case "-6": $info = "سند قبلاً برگشت کاملیافته است."; break; case "-7": $info = "رسید دیجیتالی تهی است."; break; case "-8": $info = "طول ورودیها بیش از حد مجاز است."; break; case "-9": $info = "مبلغ برگشتی حاوی کارکترهای غیرمجاز است."; break; case "-10": $info = "رسید دیجیتالی حاوی کارکترهای غیرمجاز است."; break; case "-11": $info = "طول ورودیها کمتر از حد مجاز است."; break; case "-12": $info = "مبلغ برگشتی منفی است."; break; case "-13": $info = "مبلغ برگشتی برای برگشت جزئی بیش از مبلغ برگشت نخوردهی رسید دیجیتالی است."; break; case "-14": $info = "چنین تراکنشی تعریف نشدهاست."; break; case "-15": $info = "مبلغ برگشتی به صورت عدد اعشاری است."; break; case "-16": $info = "خطای داخلی سیستم."; break; case "-17": $info = "برگشت زدن جزیی تراکنشی که با کارتی غیر از کارت بانک سامان انجام گرفتهاست."; break; case "-18": $info = "IP Address فروشنده نامعتبر است."; break; endswitch; } } } else{ $info = "این بسته وجود ندارد. برای اطلاعات بیشتر با مدیر تماس بگیرید."; break; } } } else{ $info = "درگاهی مربوط به بانک سامان ثبت نشدهاست."; } } /////////////// BPI///////////////// if($bnk==3){ $error = $mybb->input['error']; if($error) { $info = "پرداخت موفقیت آمیز نبود."; } else{ $SaleReferenceId = $mybb->input['tref']; $orderId = $mybb->input['iN']; $date = $mybb->input['iD']; $query313 = $db->simple_select("mybs_banks", "*", "bid=3"); $bpi=$db->fetch_array($query313); if($bpi) { class PasargadCart { var $time_stamp = ''; // String This will load in constructor by default. Format-> "Y/m/d H:i:s" var $invoice_date = ''; // String Any date that you use in your system var $invoice_number = ''; // String var $total_amount = 0; // Integer var $buyer_name = ''; // String var $buyer_tel = ''; // String var $delivery_address = ''; // String var $cart = array(); // Array Array of cart items /** * Constructor * * This function just adds parameters which are predefined in the class. * @param array Array of needed parameters */ function __construct($data=array()){ GLOBAL $mybb, $db; $pasargadquery = $db->simple_select("mybs_banks", "*", "bid=3"); $pasargad=$db->fetch_array($pasargadquery); // Make time stamp $this->time_stamp = date('Y/m/d H:i:s'); // Load config file // Load config data in object $merchant_code = $pasargad['TerminalId']; $terminal_code = $pasargad['username']; $redirect_address = "{$mybb->settings['bburl']}/payment_gateway.php?bid={$mybb->input['bid']}&pid={$mybb->input['pid']}"; $referrer_address = "{$mybb->settings['bburl']}/payment_gateway.php?bid={$mybb->input['bid']}&pid={$mybb->input['pid']}&error=bank"; $this->delivery_days = "1"; // If there is any data if(count($data)>0){ foreach($data as $var => $value){ // Load every data except cart if(property_exists('PasargadCart', $var) && $var!='cart'){ // Make params ready to prevent from problems. // This will strip all html tags. $value = strip_tags($value); // This will strip OS return symbols (\n or \r) $value = str_replace(array("\n","\r"), ' ', $value); $this->$var = $value; } // Now assign cart after making it ready if($var == 'cart') $this->cart = $this->makeProductItems($value); } } } /** * Constructor * for PHP 4 * This function just adds parameters which are predefined in the class. * @param array Array of needed parameters */ function PasargadCart($data=array()){ $this->__construct($data); } /** * Make product items ready to use in the cart * * @param array Array of product items * @return array Array of cart item objects */ function makeProductItems($products = array()){ // Define default values which every product item needs $content = ''; // Name or anything which user need to know about this product $count = 0; // Quantity of the item $fee = 0; // Unit price of the item. $description = ''; // Description of the item $result = array(); if(count($products)>0){ // If there is any products foreach($products as $product){ // Create default and necessary parameters $item = NULL; $item->content = $content; $item->count = $count; $item->fee = $fee; $item->description = $description; // Assign item's defined parameters if(is_array($product) && count($product)>0) { foreach($product as $key => $value){ // Make params ready to prevent from problems. // This will strip all html tags. $value = strip_tags($value); // This will strip OS return symbols (\n or \r) $value = str_replace(array("\n","\r"), ' ', $value); // Add to Item $item->$key = $value; } } // Calculate amount parameter $item->amount = $item->fee * $item->count; // Add to results $result[] = $item; } } return $result; } } /** * Pasargad Class * This class will help you create xml, sign it and communicate with Pasargad terminal. */ class Pasargad { var $response = NULL; /** * Constructor * * This function just adds parameters which are predefined in the class. * @param array Array of needed parameters */ function __construct($data=array()){ // } /** * Constructor * for PHP 4 * This function just adds parameters which are predefined in the class. * @param array Array of needed parameters */ function Pasargad($data=array()){ $this->__construct($data); } function getResponse($tref='',$cart=NULL){ $url = "https://paypaad.bankpasargad.com/PaymentTrace"; $curl_session = curl_init($url); // Initiate CURL session -> notice: CURL should be enabled. curl_setopt($curl_session, CURLOPT_POST, 1); // Set post method on. curl_setopt($curl_session, CURLOPT_HEADER, 0); //Don't return http headers curl_setopt($curl_session, CURLOPT_RETURNTRANSFER, 1); // Return the content of the call // Make post parameters if($tref!='' && $tref!=NULL && !empty ($tref)){ // If there is any tref // This parameter is enough $post_data = "tref=".$tref; }elseif(is_object($cart) && $cart->invoice_number!=''){ //We need more parameters $post_data = 'invoice_number='.$cart->invoice_number .'&invoice_date='.$cart->invoice_date .'&merchant_code'.$cart->merchant_code .'&terminal_code'.$cart->terminal_code ; }else{ // There are no enough parameters return false; } // Set parameters to post. curl_setopt($curl_session, CURLOPT_POSTFIELDS, $post_data); // Get returning data $output = curl_exec($curl_session); // Close CURL session curl_close($curl_session); // Create a xml parser $parser = xml_parser_create(); // Parse XML xml_parse_into_struct($parser, $output, $values); // Free the parser xml_parser_free($parser); // Load parsed data and make it ready to use $this->response = NULL; foreach($values as $res_item){ $tag = strtolower($res_item['tag']); $this->response->$tag = $res_item['value']; } // Return object of parsed data return $this->response; } /** * This function is needed to parse xml data * and is just for internal use. */ function contents($parser,$data){ $this->response = $data; } /** * This function is needed to parse xml data * and is just for internal use. */ function startTag($parser,$data) { // Do nothing } /** * This function is needed to parse xml data * and is just for internal use. */ function endTag($parser,$data){ // Do nothing } } //Make a cart object $cart_data = array( 'invoice_date'=>$date, 'invoice_number'=>$orderId ); $cart = new PasargadCart($cart_data); //Get Pasargad class $pasargad= new Pasargad(); //Send data to Pasargad system and get response $response = $pasargad->getResponse($SaleReferenceId,$cart); if($response->result == 'true' && $orderId == $mybs0['price']){ if($db->num_rows($query0) > 0) { verfied(); } else{ $info = "این بسته وجود ندارد. برای اطلاعات بیشتر با مدیر تماس بگیرید."; } } else{ $info = "تراکنش نامعتبر است."; } } else{ $info = "درگاهی مربوط به پرداخت امن بانک پاسارگاد ثبت نشدهاست. لطفاً با مدیر تماس بگیرید."; } } } if($bnk==4) { require_once("./lib/nusoap.php"); $au = $mybb->input['au']; $queryz = $db->simple_select("mybs_banks", "*", "bid=4"); $zcheck=$db->fetch_array($queryz); if(!$zcheck || intval($au)<=0) { if(!$zcheck) { $info="درگاهی مربوط به زرین پال ثبت نشده است."; } if(intval($au)<=0) { $info="تراکنش نامعتبر است."; } } else{ $SaleReferenceId = $mybb->input['refID']; $orderId = $mybb->input['refID']; $merchantID = $zcheck['TerminalId']; $amount = intval($amount); $amount1 = intval($amount)/10; $client = new nusoap_client('http://www.zarinpal.com/WebserviceGateway/wsdl', 'wsdl'); $res = $client->call("PaymentVerification", array($merchantID, $au, $amount1)); if($res && $res!=1) { if($res == -1) { $info = "اطلاعات وارد شده کامل نمی باشد . به همین دلیل عضویت شما انجام نشد."; } if($res == -2) { $info = "نحوه دستیابی شما به این صفحه معتبر نمی باشد . به همین دلیل عضویت شما انجام نشد."; } if($res == 0) { $info = "عملیات پرداخت شما به طور کامل انجام نشده است. به همین دلیل عضویت شما انجام نشد."; } if($res == -11) { $info = "شما از یک تراکنش جعلی برای عضویت استفاده کرده اید."; } if($res == -12) { $info = "عملیات پرداخت به طور کامل انجام نشده است . به همین دلیل عضویت شما انجام نشد."; } } elseif($res == 1) { verfied(); } } } } //////////// BPI////////////////// function verfied() { global $db,$mybb,$orderId,$SaleReferenceId,$id,$mybs0,$amount,$gid,$pgid,$uid,$time,$tval,$info,$bnk; $query48 = $db->simple_select("mybs_tractions", "*", "trackid='$SaleReferenceId'"); $check1 = $db->fetch_array($query48); $query49 = $db->query("SELECT * FROM ".TABLE_PREFIX."mybs_tractions WHERE uid=$uid AND stauts=1"); $check2 = $db->fetch_array($query49); if ($check1 || $check2 || $mybs0['active']!=1) { if($check1) { $info = "این تراکنش قبلاً ثبت شده است. بنابراین شما نمیتوانید به صورت غیر مجاز از این سیستم استفاده کنید."; } if($check2) { if($bnk=="1") { $bnk= "بانک ملّت"; } if($bnk=="2") { $bnk= "بانک سامان"; } if($bnk=="2") { $bnk= "پرداخت امن بانک پاسارگاد"; } $info = "شما قبلاً عضو گروه ویژهای شدهاید. برای اینکه بتوانید در این گروه عضو شوید در کنترل پنل کاربریتان عضویت کنونی خود را پایان دهید.
برای بازگردانی هزینهی پرداخت شده، با مدیر تماس بگیرید.
کد خرید: $orderId
شمارهی تراکنش: $SaleReferenceId
بانک: $bnk"; } if($mybs0['active']!=1) { $info = "این بسته غیر فعال است."; } } else{ $query1 = $db->simple_select('usergroups', '*', '1=1'); while($gr = $db->fetch_array($query1)) { $usergroups[$gr['gid']] = $gr['title']; } $query5 = $db->simple_select('users', 'username, uid', ''); while($uname1 = $db->fetch_array($query5, 'username, uid')) { $usname[$uname1['uid']] = $uname1['username']; } if ($time == "1") { $dateline = strtotime("+{$tval} days"); } if ($time == "2") { $dateline = strtotime("+{$tval} weeks"); } if ($time == "3") { $dateline = strtotime("+{$tval} months"); } if ($time == "4") { $dateline = strtotime("+{$tval} years"); } if ($time == "5") { $dateline = strtotime("+{$tval} hours"); } $stime = time(); $add_traction = array( 'packid' => $id, 'uid' => $uid, 'gid' => $gid , 'pgid' => $pgid , 'stdateline' => $stime, 'dateline' => $dateline, 'trackid' => $SaleReferenceId, 'orderid' => $orderId, 'payed' => $amount, 'bid' => $bnk, 'stauts' => "1", ); $db->insert_query("mybs_tractions", $add_traction); $db->update_query("users", array("usergroup" => $gid), "`uid` = '$uid'"); $expdate = my_date($mybb->settings['dateformat'], $dateline).", ".my_date($mybb->settings['timeformat'], $dateline); $profile_link = "[url={$mybb->settings['bburl']}/member.php?action=profile&uid={$uid}]{$usname[$uid]}[/url]"; $profile_link1 = build_profile_link($usname[$uid], $uid, "_blank"); $info = preg_replace( array( '#{username}#', '#{group}#', '#{refid}#', '#{expdate}#', ), array( $profile_link1, $usergroups[$gid], $SaleReferenceId, $expdate, ), $mybb->settings['mybs_note'] ); $username = $mybb->user['username']; // Notice User By PM require_once MYBB_ROOT."inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $recipients_bcc = array(); $recipients_to = array(intval($uid)); $subject = "گزارش پرداخت"; $message = preg_replace( array( '#{username}#', '#{group}#', '#{refid}#', '#{expdate}#', ), array( $profile_link, $usergroups[$gid], $SaleReferenceId, $expdate, ), $mybb->settings['mybs_pm'] ); $pm = array( 'subject' => $subject, 'message' => $message, 'icon' => -1, 'fromid' => 0, 'toid' => $recipients_to, 'bccid' => $recipients_bcc, 'do' => '', 'pmid' => '' ); $pm['options'] = array( "signature" => 1, "disablesmilies" => 0, "savecopy" => 1, "readreceipt" => 1 ); $pm['saveasdraft'] = 0; $pmhandler->admin_override = true; $pmhandler->set_data($pm); if($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } // Notice Admin By PM require_once MYBB_ROOT."inc/datahandlers/pm.php"; $pmhandler = new PMDataHandler(); $uidp=$mybb->settings['mybs_uid']; $recipients_bcc = array(); $recipients_to = array(intval($uidp)); $subject = "عضویت کاربر در گروه ویژه"; $message = preg_replace( array( '#{username}#', '#{group}#', '#{refid}#', ), array( $profile_link, $usergroups[$gid], $SaleReferenceId, ), "کاربر [B]{username}[/B] با شماره تراکنش [B]{refid}[/B] در گروه [B]{group}[/B] عضو شد. برای اطلاعات بیشتر به کنترل پنل مدیر مراجعه کنید." ); $pm = array( 'subject' => $subject, 'message' => $message, 'icon' => -1, 'fromid' => 0, 'toid' => $recipients_to, 'bccid' => $recipients_bcc, 'do' => '', 'pmid' => '' ); $pm['options'] = array( "signature" => 1, "disablesmilies" => 0, "savecopy" => 1, "readreceipt" => 1 ); $pm['saveasdraft'] = 0; $pmhandler->admin_override = true; $pmhandler->set_data($pm); if($pmhandler->validate_pm()) { $pmhandler->insert_pm(); } } } eval("\$verfypage = \"".$templates->get('mybs_payinfo')."\";"); output_page($verfypage); ?>
۱۳۹۲/۲/۲۲، ۲۲:۴۱:۳۰ عصر
سلام
ببخشید میشه یه نفر زحمت درست کردن یه پلاگین مثل همین رو با پرداختاز طریق درگاه پارسپال رو هم بکشه ؟
یه قیمت هم براش بزاره که زحمتش قدردانی بشه
ببخشید میشه یه نفر زحمت درست کردن یه پلاگین مثل همین رو با پرداختاز طریق درگاه پارسپال رو هم بکشه ؟
یه قیمت هم براش بزاره که زحمتش قدردانی بشه
۱۳۹۲/۲/۲۲، ۲۲:۴۷:۵۶ عصر
(۱۳۹۲/۲/۲۲، ۲۲:۴۱:۳۰ عصر)amir_nz2008 نوشته است: [ -> ]سلام
ببخشید میشه یه نفر زحمت درست کردن یه پلاگین مثل همین رو با پرداختاز طریق درگاه پارسپال رو هم بکشه ؟
یه قیمت هم براش بزاره که زحمتش قدردانی بشه
سلام
به جناب Mohammad-Za پيام بدين
۱۳۹۲/۲/۲۸، ۲۳:۵۰:۱۰ عصر
محمد جان برس به داد این ناتوان!!!
میتونه مشکل از سرویس Varnish باشه که روی سرور جدید نصب شده؟
میتونه مشکل از سرویس Varnish باشه که روی سرور جدید نصب شده؟
۱۳۹۲/۲/۲۹، ۰۸:۵۳:۵۲ صبح
آقا وقتی طرف پول رو پرداخت کرد پولش تو جیب کی میره؟