我真的希望有人可以帮助我,我是一个菜鸟,所以提前为无知/愚蠢道歉。
我试图将用户重新定向到可以用卡支付的用户,我只是在设置$金额时遇到问题。设置为固定金额($ amount =" 8000")工作正常,但当它设置为$ price时,它不起作用,并且没有收到任何东西。最终我想在底部形式设置$ price,但是它也没有设置为固定金额。 (如下)
非常感谢任何帮助,谢谢!
<?php
//Replace these with the values you receive from Global Iris
$merchantid = "XXXXX";
$secret = "XXXXX";
//The code below is used to create the timestamp format required by Global Iris
$timestamp = strftime("%Y%m%d%H%M%S");
mt_srand((double)microtime()*1000000);
$orderid = $timestamp."-".mt_rand(1, 999);
$curr = "GBP";
$amount = $price * 100;
$price = 80;
/*-----------------------------------------------
Below is the code for creating the digital signature using the MD5 algorithm provided
by PHP. you can use the SHA1 algorithm alternatively.
*/
$tmp = "$timestamp.$merchantid.$orderid.$amount.$curr";
$md5hash = md5($tmp);
$tmp = "$md5hash.$secret";
$md5hash = md5($tmp);
?>
<!-- Prices for Global Iris -->
<br />
<br />
<form action="https://redirect.globaliris.com/epage.cgi" method=post class="select">
<input type=hidden name="MERCHANT_ID" value="<?=$merchantid?>">
<input type=hidden name="ORDER_ID" value="<?=$orderid?>">
<input type=hidden name="CURRENCY" value="<?=$curr?>">
<input type=hidden name="AMOUNT" value="<?=$amount?>">
<input type=hidden name="TIMESTAMP" value="<?=$timestamp?>">
<input type=hidden name="MD5HASH" value="<?=$md5hash?>">
<input type=hidden name="AUTO_SETTLE_FLAG" value="1">
<select name="price" id="mySelect" onchange="return show_price(this.value);">
<option value="100">Option 1 (£100)</option>
<option value="120">Option 2 (£120)</option>
<option value="115">Option 3 (£115)</option>
<option value="135">Option 4 (£135)</option>
<option value="80" >Option 5 (£80)</option>
</select>
<br />
<br />
<input type=submit value="Proceed to secure server">
</form>
<div class="java">£ <span id="price_sp"><span></div>
<script>
function show_price(price)
{
document.getElementById('price_sp').innerHTML = price;
}
</script>
答案 0 :(得分:0)
您的错误顺序中有几行,$price
需要在$amount
计算中使用$price = 80;
$amount = $price * 100;
之前设置,如下所示:
<select name="amount" id="mySelect" onchange="return show_price(this.value);">
<option value="10000">Option 1 (£100)</option>
<option value="12000">Option 2 (£120)</option>
<option value="11500">Option 3 (£115)</option>
<option value="13500">Option 4 (£135)</option>
<option value="8000" >Option 5 (£80)</option>
</select>
<br />
<br />
<input type=submit value="Proceed to secure server">
</form>
<div class="java">£ <span id="price_sp"><span></div>
<script>
function show_price(price)
{
document.getElementById('price_sp').innerHTML = price/100;
}
</script>
此外,您可以按如下方式编辑表单,以根据下拉值提交金额:
{{1}}
我已将字段名称更改为&#34; amount&#34;所以它正确提交(你需要删除隐藏的金额字段),然后更新值以便便提交并在Javascript中添加一个除法,以便它仍然可以在HTML输出中很好地读取。