Как настроить PayuMoney Bolt для обработки ввода из предыдущего сеанса без использования ввода из встроенной формы? - PullRequest
0 голосов
/ 18 марта 2020

<?php
session_start();
$name = $_SESSION['namex'];
$email = $_SESSION['emailx'];
$phno = $_SESSION['mobilex'];
$purpose = $_SESSION['purposex'];
$amount = $_SESSION['amountx'];
$txn =   $_SESSION['txnn'];
$key = "tT5df2u"; //demo key
$salt = "SgdtsFG59D"; //demo salt
$udf5 = "wallet";
$hashSequence = $key.'|'.$txn.'|'.$amount.'|'.$purpose.'|'.$name.'|'.$email.'||||'.$udf5.'||||'.$salt;
$hash = strtolower(hash('sha512', $hashSequence ));
function getCallbackUrl()
{
	$protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
	return $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . 'response.php';
}



?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Processing Payment</title>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>

<!-- this meta viewport is required for BOLT //-->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" >
<!-- BOLT Sandbox/test //-->
<script id="bolt" src="https://sboxcheckout-static.citruspay.com/bolt/run/bolt.min.js" bolt-color="e34524" bolt-logo="./image/logo.png"></script>
<!-- BOLT Production/Live //-->
<!--// script id="bolt" src="https://checkout-static.citruspay.com/bolt/run/bolt.min.js" bolt-color="e34524" bolt-logo="http://boltiswatching.com/wp-content/uploads/2015/09/Bolt-Logo-e14421724859591.png"></script //-->

</head>
<body>
	<form action="" id="payment_form">
    <input type="hidden" id="udf5" name="udf5" value=" <?php $udf5; ?>" />
    <input type="hidden" id="surl" name="surl" value="<?php echo getCallbackUrl(); ?>" />
    <div class="dv">
    <span><input type="hidden" id="key" name="key" placeholder="Merchant Key" value="<?php echo "$key";?>" /></span>
    </div>

    <div class="dv">
    <span><input type="hidden" id="salt" name="salt" placeholder="Merchant Salt" value="<?php echo "$salt"; ?>" /></span>
    </div>

    <div class="dv">
    <span><input type="hidden" id="txnid" name="txnid" placeholder="Transaction ID" value="<?php echo "$txn";?>" /></span>
    </div>

    <div class="dv">
    <span><input type="hidden" id="amount" name="amount" placeholder="Amount" value="<?php $amount; ?>"/></span>
    </div>

    <div class="dv">
    <span><input type="hidden" id="pinfo" name="pinfo" placeholder="Product Info" value="<?php $purpose ?>" /></span>
    </div>

    <div class="dv">
    <span><input type="hidden" id="fname" name="fname" placeholder="First Name" value="<?php $name; ?>" /></span>
    </div>

    <div class="dv">
    <span><input type="hidden" id="email" name="email" placeholder="Email ID" value="<?php $email; ?>" /></span>
    </div>

    <div class="dv">
    <span><input type="hidden" id="mobile" name="mobile" placeholder="Mobile/Cell Number" value="<?php $mobile; ?>" /></span>
    </div>

    <div class="dv">
    <span><input type="hidden" id="hash" name="hash" placeholder="Hash" value="<?php echo "$hash"; ?>" /></span>
    </div>


    <div><input type="hidden" id="btnSubmit" value="Pay" onclick="launchBOLT(); return false;" /></div>
	</form>
</div>
<script type="text/javascript">
function launchBOLT()
{
	bolt.launch({
	key: $('#key').val(),
	txnid: $('#txnid').val(),
	hash: $('#hash').val(),
	amount: $('#amount').val(),
	firstname: $('#fname').val(),
	email: $('#email').val(),
	phone: $('#mobile').val(),
	productinfo: $('#pinfo').val(),
	udf5: $('#udf5').val(),
	surl : $('#surl').val(),
	furl: $('#surl').val(),
	mode: 'dropout'
},{ responseHandler: function(BOLT){
	console.log( BOLT.response.txnStatus );
	if(BOLT.response.txnStatus != 'CANCEL')
	{
		//Salt is passd here for demo purpose only. For practical use keep salt at server side only.
		var fr = '<form action=\"'+$('#surl').val()+'\" method=\"post\">' +
		'<input type=\"hidden\" name=\"key\" value=\"'+BOLT.response.key+'\" />' +
		'<input type=\"hidden\" name=\"salt\" value=\"'+$('#salt').val()+'\" />' +
		'<input type=\"hidden\" name=\"txnid\" value=\"'+BOLT.response.txnid+'\" />' +
		'<input type=\"hidden\" name=\"amount\" value=\"'+BOLT.response.amount+'\" />' +
		'<input type=\"hidden\" name=\"productinfo\" value=\"'+BOLT.response.productinfo+'\" />' +
		'<input type=\"hidden\" name=\"firstname\" value=\"'+BOLT.response.firstname+'\" />' +
		'<input type=\"hidden\" name=\"email\" value=\"'+BOLT.response.email+'\" />' +
		'<input type=\"hidden\" name=\"udf5\" value=\"'+BOLT.response.udf5+'\" />' +
		'<input type=\"hidden\" name=\"mihpayid\" value=\"'+BOLT.response.mihpayid+'\" />' +
		'<input type=\"hidden\" name=\"status\" value=\"'+BOLT.response.status+'\" />' +
		'<input type=\"hidden\" name=\"hash\" value=\"'+BOLT.response.hash+'\" />' +
		'</form>';
		var form = jQuery(fr);
		jQuery('body').append(form);
		form.submit();
	}
},
	catchException: function(BOLT){
 		alert( BOLT.message );
	}
});
}
</script>
<script>
document.getElementById('btnSubmit').click();
</script>

</body>
</html>

Я хочу обработать входные значения в payumoneyPG из прошлого сеанса php. Но приведенный выше код содержит код проверки формы, который я не могу отключить. Таким образом, он выдает ошибку при запуске скрипта. Это выдает ошибку как " Сумма должна быть цифрой c". Ранее он выдает ошибку, поскольку txn и ключ должны быть строковыми и разрешаться с помощью функции echo во входном значении html. Может ли кто-нибудь помочь мне с этим?

...