将网址重定向到付款窗口

时间:2018-06-19 09:03:19

标签: php redirect form-submit

我希望你们能帮助我。当我们开发票时,我希望包含一个链接,使我们的客户能够在线支付发票。我们在丹麦门户有一个名为ePay(Bambora的一部分)的商家帐户。

我们的结算系统无法构建我需要的网址,因此我想通过我们的网络服务器上的PHP脚本,我可以请求数据,orderid和金额,然后通过php脚本添加其余的。但是我无法让它发挥作用。

我们的md5密钥中的md5校验和也应与数据一起发送,即。 “secret123”。所以它应该作为表格提交。

是否可以构建表单并通过PHP自动提交?   - 所以它就像重定向一样。

我按照user5214530的建议,但页面返回500错误?我无法发现它?

<?php
$hash = 'secrethash';
$accepturl = 'https://www.asd.dk/dinbetaling.html#accept';
$cancelurl = 'https://www.asd.dk/dinbetaling.html#cancelurl';
$callbackurl = 'https://www.asd.dk/dinbetaling.html#callbackurl';
$mnumber = '123456';
$wid = '3';
 
$parameters = array
		(
			'merchantnumber' => $mnumber,
			'windowid' => $wid,
			'amount' => get_option('total_price'),
			'currency' => get_option('currency'),
			'windowstate' => 3,
			'orderid' => get_option('orderid'),
			'accepturl' => $accepturl,
			'cancelurl' => $cancelurl,
			'callbackurl' => $callback
		);
?>
<html>
<head>
<title>Epay payment redirect</title>
</head>
<!--<body onload="autosubmit()">-->

<form method="post" action="script.php" name="betaling" id="betaling">
	<input type="hidden" name="merchantnumber" value="<?php echo $merchantnumber; ?>">
	<input type="hidden" name="windowid" value="<?php echo $windowid; ?>">
	<input type="hidden" name="amount" value="<?php echo $amount; ?>">
	<input type="hidden" name="currency" value="<?php echo $currency; ?>">
	<input type="hidden" name="windowstate" value="<?php echo $windowstate; ?>">
	<input type="hidden" name="orderid" value="<?php echo $orderid; ?>">
	<input type="hidden" name="accepturl" value="<?php echo $accepturl; ?>">
	<input type="hidden" name="cancelurl" value="<?php echo $cancelurl; ?>">
	<input type="hidden" name="callbackurl" value="<?php echo $callbackurl; ?>">
	<input type="hidden" name="hash" value="<?php md5(implode("", array_values($parameters)) . $hash); ?>">
</form>
<!--<script> 
function autosubmit()
    {
        document.betaling.submit()
    }</script>
-->
</body>
</html>

2 个答案:

答案 0 :(得分:0)

您可以通过此方式执行此操作。卷曲

<?php

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://yourControolerUrl"); your controller or api to handle this request at backend
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);

$data = array(  // data in associative array
    'foo' => 'foo foo foo',
    'bar' => 'bar bar bar',
    'baz' => 'baz baz baz'
);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);

答案 1 :(得分:0)

您可以使用JS自动提交表单:

<html>
<head>
<script>
    function autosubmit()
    {
        document.form1.submit()
    }
</script>
</head>

<body onload="autosubmit()">
    <form action="script.php" method="POST" id="form1" name="form1">
        <input type="text" value="" />
    </form>
</body>
</html> 

但是,您也可以生成请求并直接使用PHP中的CURL发送(请参见How do I send a POST request with PHP?中的几种可能性):

相关问题