簡體   English   中英

SkipJack支付集成

[英]SkipJack payment integration

我在我的電子商務應用程序中使用SkipJack作為支付網關。 我從互聯網上下載了SkipJack課程,然后我用我自己的腳本調用這些函數,但是在處理過程中出現了問題。

有一個getErrors()方法。 當付款被拒絕時調用它,在此函數中寫入所有錯誤。

但是當付款繼續時,則打印出一個沒有錯誤消息的空數組。 我正在努力解決這個問題差不多一個星期,但我無法解決它。 請幫我。

先感謝您

這是我的代碼:

<?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>
?>

根據此API頁面上的注釋,這是此PHP庫的問題:

有這個API的bug ..對於第255行的一個,當它應該使用$ this-> errorCodes時使用$ errorCodes ...花了一段時間想知道為什么我沒有看到任何錯誤但是得到了一個事務失敗的消息..

示例代碼不能開箱即用..

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

我建議在GitHub上嘗試Skipjack庫 ,因為它更新,可能會解決這個問題。 (警告:我沒有使用過任何一個。)

(雖然看起來這個也被破壞了。在第429行,它應該是$this->errorCodes[...]而不是$errorCodes[...] 。)

我現在已經在一個分叉的存儲庫中進行了維修,如果你想嘗試一下: https//github.com/firstclown/Skipjack-PHP-Library/tree/patch-1

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";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM