2013-05-03 118 views
0

我在我的電子商務應用程序中使用SkipJack作爲支付網關。我從互聯網上下載了SkipJack類,然後在自己的腳本中調用這些函數,但在處理過程中出現問題。有一種方法getErrors()。它在支付被拒絕時被調用,在這個函數中寫入所有的錯誤。SkipJack支付集成

但是,當付款進行,然後打印一個空陣列沒有錯誤信息。我正在努力解決這個問題近一個星期,但我無法解決它。請幫幫我。

預先感謝您

這是我的代碼:

<?php 
require_once 'skipjack.php'; 
$sj = new Skipjack(); 
//$sj->setDeveloper(true); // use the development server address, remove this line to use the live server 4445999922225 

if (isset($_POST['submit'])) { 

    $c_name = $_POST['c_name']; 
    $c_email = $_POST['c_email']; 
    $c_add = $_POST['c_add']; 
    $c_city = $_POST['c_city']; 
    $c_state = $_POST['c_state']; 
    $c_zip = $_POST['c_zip']; 
    $c_acc = $_POST['c_acc']; 
    $c_cvv = $_POST['c_cvv']; 
    $c_phone = $_POST['c_phone']; 
    $c_month = $_POST['c_month']; 
    $c_year = $_POST['c_year']; 

    $sj->addFields(array(
     'OrderNumber' => '5', 
     'ItemNumber' => 'i5', 
     'ItemDescription' => 'Test Item', 
     'ItemCost' => '5.50', 
     'Quantity' => '1', 
     'Taxable' => '0', 
     'Streetaddress' => $c_add, 
     'City' => $c_city, 
     'State' => $c_state, 
     'Zipcode' => $c_zip, 
     'AccountNumber' => $c_acc, 
     'cvv2' => $c_cvv, 
     'SJName' => $c_name, 
     'Email' => $c_email, 
     'Month' => $c_month, 
     'Year' => $c_year, 
     'TransactionAmount' => '200.00' 
    )); 

    $sub = "Your payment Transaction"; 
    $msg = "<table width='50%'> 
     <tr> 
     <td>Order Number:</td><td>5</td> 
     </tr> 
     <tr> 
     <td>Quantity:</td><td>1</td> 
     </tr> 
     <tr> 
     <td>Name:</td><td>" . $c_name . "</td> 
     </tr> 
     <tr> 
     <td>City:</td><td>" . $c_city . "</td> 
     </tr> 
     <tr> 
     <td>Address:</td><td>" . $c_add . "</td> 
     </tr> 
     <tr> 
     <td>Zip Code:</td><td>" . $c_zip . "</td> 
     </tr> 
     <tr> 
     <td>Account Number:</td><td>" . $c_acc . "</td> 
     </tr> 
     <tr> 
     <td>Message:</td><td>Your transaction has been declined, Pos_error_Blind_Credits_Failed</td> 
     </tr> 
     </table>"; 

    if ($sj->process() && $sj->isApproved()) { 
     echo "Transaction approved!" . "<br> Email has sent to your email address"; 
     sendEmail($msg, $c_email, $sub); 
    } else { 
     echo "Transaction declined!\n"; 
     echo ($sj->getErrors()) . "<br> Email has sent to your email address"; 
     //echo $a; 
    } 
} 
?> 
<h3 align="center" style="width:100%;">Skip Jack</h3> 

<form method="post" action=""> 
    <table width="1000" align="center" cellpadding="5" cellspacing="5"> 
     <tr> 
      <td>Name:<br /></td> 
      <td><input type="text" name="c_name" id="c_name" /></td> 

      <td>Email:<br /></td> 
      <td><input type="text" name="c_email" id="c_email" /></td> 

      <td>Street Address:<br /></td> 
      <td><input type="text" name="c_add" id="c_add" /></td> 
     </tr> 

     <tr> 
      <td>City:<br /></td> 
      <td><input type="text" name="c_city" id="c_city" /></td> 

      <td>State:<br /></td> 
      <td><input type="text" name="c_state" id="c_state" /></td> 

      <td>Zip Code:<br /></td> 
      <td><input type="text" name="c_zip" id="c_zip" /></td> 
     </tr> 

     <tr> 
      <td>Credit Card Number:<br /></td> 
      <td><input type="text" name="c_acc" id="c_acc" /></td> 

      <td>Security code:<br /></td> 
      <td><input type="text" name="c_cvv" id="c_cvv" /></td> 

      <td>Phone:<br /></td> 
      <td><input type="text" name="c_phone" id="c_phone" /></td> 
     </tr> 

     <tr> 
      <td>Month:<br /></td> 
      <td> 
       <select name="c_month"> 
        <option value="01">January</option> 
        <option value="02">February</option> 
        <option value="03">March</option> 
        <option value="04">April</option> 
        <option value="05">May</option> 
        <option value="06">June</option> 
        <option value="07">July</option> 
        <option value="08">August</option> 
        <option value="09">September</option> 
        <option value="10">October</option> 
        <option value="11">November</option> 
        <option value="12">December</option> 
       </select> 
      </td> 

      <td>Year:<br /></td> 
      <td> 
       <select name="c_year"> 
        <option value="2014">2014</option> 
        <option value="2015">2015</option> 
        <option value="2016">2016</option> 
        <option value="2017">2017</option> 
        <option value="2018">2018</option> 
        <option value="2019">2019</option> 
        <option value="2020">2020</option> 
       </select> 
      </td> 

      <td>&nbsp;</td> 
     </tr> 
     <tr> 
      <td align="center" colspan="5"><input type="submit" name="submit" /></td> 
     </tr> 
    </table> 
</form> 
</body> 
</html> 
?> 
+3

您的代碼在哪裏? – zkanoca 2013-05-03 13:00:36

+0

如果您不提供更多信息,沒有人可以幫助您。請添加一個相關的代碼示例或兩個 – Bojangles 2013-05-03 13:02:18

回答

2

根據這個API頁面上發表評論,這是個問題 這個PHP庫:

有這個API的錯誤。對於一個在線255它的使用$ ErrorCode的時候應該使用$這個 - > ErrorCode的..花費一段時間不知道爲什麼我沒有看到任何錯誤,但漸漸交易失敗的消息..

示例代碼不工作的開箱..

來源:https://code.google.com/p/skipjack-php/wiki/ClassDocumentation

我會建議您嘗試的Skipjack library on GitHub,正弦這是更新的,可能會解決這個問題。 (警告:我沒有使用任何一個。)

(雖然它看起來像破獲過線429這一項的,它應該是$this->errorCodes[...],而不是$errorCodes[...]。)

在我所做的修理如果您想嘗試一下,請使用分叉存儲庫:https://github.com/firstclown/Skipjack-PHP-Library/tree/patch-1

+0

+1回饋:) – mabi 2013-05-03 14:18:33

0

添加

if(!empty($sj->getErrors())) { 
    echo "Transaction declined!\n"; 
    echo ($sj->getErrors())."<br> Email has sent to your email address"; 
} 

,而不是

echo "Transaction declined!\n"; 
echo ($sj->getErrors())."<br> Email has sent to your email address";