Created
June 13, 2019 12:00
-
-
Save saber13812002/6f0b7b0c33c85ab2cbee054b548079de to your computer and use it in GitHub Desktop.
bankmellat wp plugin connect to banktest.ir
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
defined('ABSPATH') or die("-1"); | |
if (!class_exists('nusoap_base')) { | |
require_once(plugin_dir_path(__FILE__) . '/lib/nusoap.php'); | |
} | |
function WPBEGPAY_ShortCode() | |
{ | |
global $WPBEGPAY_Options; | |
$settings = get_option('WPBEGPAY_settings_fields_arrays', $WPBEGPAY_Options); | |
echo " | |
<style> | |
.WPBEGPAY_Success, .WPBEGPAY_Warning, .WPBEGPAY_Connecting { | |
direction:rtl; | |
border: 1px solid; | |
-webkit-border-radius: 5px; | |
-moz-border-radius: 5px; | |
border-radius: 5px; | |
padding:15px 50px 15px 50px; | |
background-repeat: no-repeat; | |
background-position: calc(100% - 10px) center; | |
} | |
.WPBEGPAY_Warning { | |
color: #9F6000; | |
background-color: #FEEFB3; | |
background-image: url('" . plugins_url('../images/warning.png', __FILE__) . "'); | |
} | |
.WPBEGPAY_Success { | |
color: #4F8A10; | |
background-color: #DFF2BF; | |
background-image: url('" . plugins_url('../images/success.png', __FILE__) . "'); | |
} | |
.WPBEGPAY_Connecting { | |
color: #4F8A10; | |
background-color: #DFF2BF; | |
background-image: url('" . plugins_url('../images/Loader.GIF', __FILE__) . "'); | |
} | |
</style>"; | |
if (!isset($_POST['ResCode'])) { | |
$defaultThemes = array("formA.html", "formB.html", "formC.html"); | |
if (in_array($settings['form'], $defaultThemes)) | |
include_once(plugin_dir_path(__FILE__) . '/../forms/' . $settings['form']); | |
else | |
include_once(WP_CONTENT_DIR . "/WPBEGPAY/" . $settings['form']); | |
if ($_SERVER['REQUEST_METHOD'] == 'POST' and $_POST['WPBEGPAY_price'] != null) { | |
$orderId = time() . rand(100000, 999999); | |
$ldate = date('Ymd'); | |
$ltime = date('His'); | |
$client = new nusoap_client('https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl'); | |
// $client = new nusoap_client('http://banktest.ir/gateway/mellat/ws?wsdl'); | |
$namespace = 'http://interfaces.core.sw.bps.com/'; | |
if ((!$client) or ($err = $client->getError())) { | |
$error .= $err . "<br/>"; | |
echo $error; | |
} else { | |
function getCurrentURL($MellatG_Callbackurl) | |
{ | |
$currentURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://"; | |
$currentURL .= $_SERVER["SERVER_NAME"]; | |
if ($_SERVER["SERVER_PORT"] != "80" && $_SERVER["SERVER_PORT"] != "443") { | |
$currentURL .= ":" . $_SERVER["SERVER_PORT"]; | |
} | |
if ($MellatG_Callbackurl) | |
$currentURL .= $MellatG_Callbackurl; | |
else | |
$currentURL .= $_SERVER["REQUEST_URI"]; | |
return $currentURL; | |
} | |
$par = array( | |
'terminalId' => $settings['MellatG_TerminalNumber'], | |
'userName' => $settings['MellatG_TerminalUser'], | |
'userPassword' => $settings['MellatG_TerminalPass'], | |
//banktest.ir | |
// 'terminalId' => 552, | |
// 'userName' => "user552", | |
// 'userPassword' => "21659655", | |
'orderId' => $orderId, | |
'amount' => $_POST['WPBEGPAY_price'], | |
'localDate' => $ldate, | |
'localTime' => $ltime, | |
'additionalData' => '', | |
'callBackUrl' => getCurrentURL($settings['MellatG_Callbackurl']), | |
'payerId' => '0' | |
); | |
$result = $client->call('bpPayRequest', $par, $namespace); | |
$resultStr = $result; | |
$res = explode(',', $resultStr); | |
$ResCode = $res[0]; | |
if ($ResCode == "0") { | |
global $wpdb; | |
$table_name = $wpdb->prefix . 'wpbegpay_orders'; | |
$wpdb->insert( | |
$table_name, | |
array( | |
'order_status' => 'no', | |
'order_amount' => $_POST['WPBEGPAY_price'], | |
'order_date' => date("H:i:s Y/m/d"), | |
'order_ip' => $_SERVER['REMOTE_ADDR'], | |
'order_orderid' => $orderId, | |
'order_referenceId' => '', | |
'order_refid' => $res[1], | |
'order_settle' => 'no', | |
'order_name_surname' => $_POST['WPBEGPAY_namefamily'], | |
'order_phone' => $_POST['WPBEGPAY_phone'], | |
'order_des' => $_POST['WPBEGPAY_des'], | |
'order_email' => $_POST['WPBEGPAY_email'] | |
) | |
); | |
?> | |
<style> | |
.WPBEGPAY-form, | |
.basic-grey, | |
.elegant-aero { | |
display: none; | |
} | |
</style> | |
<script language='javascript' type='text/javascript'> | |
window.onload = function() { | |
document.forms['Order_Form'].submit() | |
} | |
</script> | |
<div class="WPBEGPAY_Connecting"> | |
<?php echo $settings['connecting_msg']; ?> | |
<form id="Order_Form" name="Order_Form" style="position:absolute;bottom:82px;left:35px;" action="https://bpm.shaparak.ir/pgwchannel/startpay.mellat" method="POST"> | |
<!-- <form id="Order_Form" name="Order_Form" style="position:absolute;bottom:82px;left:35px;" action="http://banktest.ir/gateway/mellat/gate" method="POST"> --> | |
<input type="hidden" name="RefId" value="<?php echo $res[1] ?>" /> | |
<input name="submit button" type="submit" style="width:100%;" value="ورود به درگاه پرداخت" id="button" /> | |
</form> | |
</div> | |
<?php | |
} else { | |
echo "<script>alert('امکان اتصال به درگاه پرداخت وجود ندارد!\\nکدخطا:$ResCode');location.reload();</script>"; | |
} | |
if ($client->fault) { | |
echo '<h2>خطا!</h2><pre>'; | |
print_r($result); | |
echo '</pre>'; | |
die(); | |
} else { | |
$err = $client->getError(); | |
if ($err) { | |
// Display the error | |
echo '<h2>خطا!</h2><pre>' . $err . '</pre>'; | |
die(); | |
} | |
} | |
} | |
} | |
} else if (isset($_POST['ResCode'])) { | |
if ($_POST['ResCode'] == null) | |
die("Are you kidding me!"); | |
$client = new nusoap_client('https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl'); | |
// $client = new nusoap_client('http://banktest.ir/gateway/mellat/ws?wsdl'); | |
$namespace = 'http://interfaces.core.sw.bps.com/'; | |
$err = $client->getError(); | |
if ($err) { | |
echo '<div class="warning">' . $settings['invalid_msg'] . '</div>'; | |
exit; | |
} | |
$ResCode = $_POST['ResCode']; | |
$terminalId = $settings['MellatG_TerminalNumber']; | |
$userName = $settings['MellatG_TerminalUser']; | |
$userPassword = $settings['MellatG_TerminalPass']; | |
//banktest.ir | |
// $terminalId = 552; | |
// $userName = "user552"; | |
// $userPassword = "21659655"; | |
$refid = $_POST['refid']; | |
$orderId = $_POST['SaleOrderId']; | |
$verifySaleOrderId = $_POST['SaleOrderId']; | |
$verifySaleReferenceId = $_POST['SaleReferenceId']; | |
if ($ResCode == 0) { | |
if ($client->fault) { | |
echo '<div class="warning">' . $settings['error_msg'] . '</div>'; | |
exit; | |
} | |
$refid = $_POST['refid']; | |
$parameters = array( | |
'terminalId' => $terminalId, | |
'userName' => $userName, | |
'userPassword' => $userPassword, | |
'saleOrderId' => $orderId, | |
'saleOrderId' => $verifySaleOrderId, | |
'saleReferenceId' => $verifySaleReferenceId | |
); | |
$resultpay = $client->call('bpVerifyRequest', $parameters, $namespace); | |
$Check = $client->call('bpInquiryRequest', $parameters, $namespace); | |
if ($Check == '0') { | |
global $wpdb; | |
$table_name = $wpdb->prefix . 'wpbegpay_orders'; | |
$wpdb->update( | |
$table_name, | |
array('order_status' => 'yes'), | |
array('order_orderid' => $orderId), | |
array('%s'), | |
array('%s') | |
); | |
//register ticket | |
include('apiProvider2.php'); | |
$pairs = getQueryString2(parse_url(basename($_SERVER['REQUEST_URI']), PHP_URL_QUERY)); | |
$session_id = explode('=', $pairs[0])[1]; | |
//echo $session_id . '' . '<br>'; | |
$order_id = explode('=', $pairs[1])[1]; | |
//echo $order_id . '' . '<br>'; | |
$train_number = explode('=', $pairs[2])[1]; | |
//echo $train_number . '' . '<br>'; | |
$data = ""; | |
if ($session_id) | |
$data = getRegisterTicketData2($session_id, $order_id, $train_number); | |
else | |
echo 'error session id not found'; | |
//if($price==$price) | |
echo $data; | |
//if register ticket 1 | |
// soap:Body:array(1) | |
// RegisterTiketResponse:array(2) | |
// @xmlns:"http://tempuri.org/" | |
// RegisterTiketResult:"1" | |
//100009 | |
if ($data["soap:Envelope"]["soap:Body"]["RegisterTiketResponse"]["RegisterTiketResult"] == "1") { | |
$settel = $client->call('bpSettleRequest', $parameters, $namespace); | |
$wpdb->update( | |
$table_name, | |
array('order_settle' => 'yes'), | |
array('order_orderid' => $orderId), | |
array('%s'), | |
array('%s') | |
); | |
$wpdb->update( | |
$table_name, | |
array('order_referenceId' => $verifySaleReferenceId), | |
array('order_orderid' => $orderId), | |
array('%s'), | |
array('%s') | |
); | |
$getorder = $wpdb->get_results("SELECT * FROM $table_name WHERE order_orderid = $orderId"); | |
foreach ($getorder as $order) { | |
echo ' | |
<div class="WPBEGPAY_Success">' . $settings['successfull_msg'] . '</div> | |
شماره سفارش: ' . $order->order_id . '</br> | |
نام و نام خانوادگي: ' . $order->order_name_surname . '</br> | |
آدرس ايميل: ' . $order->order_email . '</br> | |
شماره تلفن: ' . $order->order_phone . '</br> | |
توضيحات: ' . $order->order_des . '</br> | |
تاريخ: ' . $order->order_date . '</br> | |
آي پي: ' . $order->order_ip . '</br> | |
مبلغ(ريال): ' . $order->order_amount . '</br> | |
رسيد ديجيتالي سفارش: ' . $order->order_referenceId . ' | |
'; | |
// reportticketA | |
echo '<p>پرینت بلیط <br> | |
<button id="printticket" onclick="myFunctionprintticket()" type="button">پرینت بلیط</button> | |
</p>'; | |
include_once(plugin_dir_path(__FILE__) . '/inc/order_mail.php'); | |
if ($settings['SendSmS'] == 'true') { | |
$AdminMobile = $settings['adminMobile']; | |
$smsUserName = $settings['Sms_username']; | |
$smsPassword = $settings['Sms_password']; | |
$smsLineNumber = $settings['sms_lineNumber']; | |
$sms_service = $settings['sms_service']; | |
$sms_text = $settings['Sms_text']; | |
$sms_text = str_replace('#', $order->order_id, $sms_text); | |
$sms_text = str_replace('$', number_format($order->order_amount), $sms_text); | |
include_once(plugin_dir_path(__FILE__) . '/inc/sms.php'); | |
} | |
} | |
} else if ($data["soap:Envelope"]["soap:Body"]["RegisterTiketResponse"]["RegisterTiketResult"] == "100009") | |
echo 'مبلغ واریز شده و بلیط صابر شده است ' . '<p>پرینت بلیط <br> | |
<button id="printticket" onclick="myFunctionprintticket()" type="button">پرینت بلیط</button> | |
</p>'; | |
else | |
echo 'error register ticket and بازگشت پول شما تا 72 ساعت '; | |
} | |
} else { | |
echo '<div class="WPBEGPAY_Warning">' . $settings['cancel_msg'] . '</div>'; | |
} | |
} | |
} | |
add_shortcode('WPBEGPAY_SC', 'WPBEGPAY_ShortCode'); | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment