使用PHP将一些数据保存到会话中,并通过帖子将表单提交给WorldPay

时间:2013-02-22 21:49:28

标签: php worldpay

我有以下表格,我希望提交给WorldPay。在提交之前,我想使用PHP将一些变量保存到会话中。如果可能的话,我不喜欢使用jQuery或Ajax。

提前致谢。

<form action="https://secure-test.worldpay.com/wcc/purchase" name="buyform" id="buyform" method="post"> 
  <input type="hidden" name="instId"  value="123456">
  <input type="hidden" name="cartId" value="abc123">
  <input type="hidden" name="currency" value="GBP">
  <input type="hidden" name="hideCurrency">
  <input type="hidden" name="amount"  value="10">
  <input type="hidden" name="desc" value="">
  <input type="hidden" name="testMode" value="100">
  <input type="hidden" name="lang" value="en-GB">
  <input type="hidden" name="noLanguageMenu">
  <input type="hidden" name="hideContact">

  <input type="hidden" name="fixContact">
  <input type="hidden" name="name" value="AUTHORISED">
  <input type="hidden" name="address1" value="4 The Street">
  <input type="hidden" name="address2" value="My Suburb">
  <input type="hidden" name="address3" value="">
  <input type="hidden" name="town" value="my town">
  <input type="hidden" name="region" value="region or county">
  <input type="hidden" name="postcode" value="AB10 5AB">
  <input type="hidden" name="country" value="GB">
  <input type="hidden" name="tel" value="0123456789">
  <input type="hidden" name="email" value="demo@worldpay.com">
</form>

1 个答案:

答案 0 :(得分:0)

确保在发送任何标头之前首先运行session_start()。然后在会话中添加一个值就像:

$_SESSION['instId'] = $_POST['instId']

为每个表单值执行此操作,只要该会话有效,它就会被保存并可访问会话数组。

您需要先将表单指向自己的脚本才能实现此目的。

之后,您可以使用curl发送请求,将帖子数据发送到https://secure-test.worldpay.com/wcc/purchase,如下所示:

//set POST variables
$url = 'https://secure-test.worldpay.com/wcc/purchase';
$fields = array(
    'instId' => urlencode($_POST['instId']),
    ... other fields
);

$postVars = http_build_query($fields);

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $postVars);

$result = curl_exec($ch);
curl_close($ch);