Php:直接发布NAB事务错误:参数EPS_EXPIRYMONTH无效

时间:2017-02-17 10:03:46

标签: php payment

我正在尝试实施NAB Transcation(transact.nab.com.au),目前正在对其进行测试

        <?php
      $timestamp = date('YmdHis');
      $referenceid = isset($_SESSION['user'])? $timestamp.$_SESSION['user'].rand(1, 1000000000000000) : $timestamp.rand(1, 1000000000000000);
      $referenceid = sha1($referenceid);
      $transaction_type =0;
      $amount = "53.00";

      $merchantid = "XYZ0010";
      $transaction_password = "abcd1234";

      $sha1 = $merchantid."|".$transaction_password."|".$transaction_type."|".$referenceid."|".$amount."|".$timestamp;
      $fingerprint = sha1($sha1);
      isset($_POST)? print_r($_POST) : '';
    ?>
    <form method="post" action="https://transact.nab.com.au/test/directpostv2/authorise">

        <input type="hidden" name="EPS_MERCHANT" value="<?= $merchantid ?>">
        <input type="hidden" name="EPS_TXNTYPE" value="<?= $transaction_type ?>">
        <input type="hidden" name="EPS_REFERENCEID" value="<?= $referenceid ?>">
        <input type="hidden" name="EPS_AMOUNT" value="<?= $amount ?>">
        <input type="hidden" name="EPS_TIMESTAMP" value="<?= $timestamp ?>">
        <input type="hidden" name="EPS_FINGERPRINT" value="<?= $fingerprint ?>">
        <input type="hidden" name="EPS_RESULTURL" value="http://www.myserver.com.au/result.asp">

        Card Number <input type="text" name="EPS_CARDNUMBER">
        Expiry Month<input type="text" name="EPS_EXPIRYMONTH" value="06">
        Expiry Year<input type="text" name="EPS_EXPIRY YEAR" value="16">
        Carc CCV<input type="text" name="EPS_CCV" value="999">
        <input type="submit" value="submit" >

    </form>    

但它会引发以下错误:参数EPS_EXPIRYMONTH

无效

请帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

使用EPS_CARDNUMBER时,如果使用文字输入,则必须有如下所示的选项,然后您可能需要从表单中删除EPS_CARDNUMBER:

&#13;
&#13;
<?php
      $timestamp = date('YmdHis');
      $referenceid = isset($_SESSION['user'])? $timestamp.$_SESSION['user'].rand(1, 1000000000000000) : $timestamp.rand(1, 1000000000000000);
      $referenceid = sha1($referenceid);
      $transaction_type =0;
      $amount = "53.00";

      $merchantid = "XYZ0010";
      $transaction_password = "abcd1234";

      $sha1 = $merchantid."|".$transaction_password."|".$transaction_type."|".$referenceid."|".$amount."|".$timestamp;
      $fingerprint = sha1($sha1);
      isset($_POST)? print_r($_POST) : '';
?>
    <form method="post" action="https://demo.transact.nab.com.au/directpostv2/authorise">

        <input type="hidden" name="EPS_MERCHANT" value="<?= $merchantid ?>">
        <input type="hidden" name="EPS_TXNTYPE" value="<?= $transaction_type ?>">
        <input type="hidden" name="EPS_REFERENCEID" value="<?= $referenceid ?>">
        <input type="hidden" name="EPS_AMOUNT" value="<?= $amount ?>">
        <input type="hidden" name="EPS_TIMESTAMP" value="<?= $timestamp ?>">
        <input type="hidden" name="EPS_FINGERPRINT" value="<?= $fingerprint ?>">
        <input type="hidden" name="EPS_RESULTURL" value="https://xxx.xxx.xxx/nab.php">

        Card Number <input type="text" name="EPS_CARDNUMBER">
<select name="EPS_EXPIRYMONTH">
 <option value="01">01
 <option value="02">02
 <option value="03">03
 <option value="04">04
 <option value="05">05
 <option value="06">06
 <option value="07">07
 <option value="08">08
 <option value="09">09
 <option value="10">10
 <option value="11">11
 <option value="12">12
</select>
<select name="EPS_EXPIRYYEAR">
 <option value="2014">2014
 <option value="2015">2015
 <option value="2016">2016
 <option value="2017">2017
 <option value="2018">2018
</select>

        Carc CCV<input type="text" name="EPS_CCV" value="999">
        <input type="submit" value="submit" >

    </form> 
&#13;
&#13;
&#13;