Хорошо authorize.net Библиотеки PHP


Я работаю над проектом PHP и ищу хороший authorize.net врата. Мне нужно что-то со зрелым кодом, который проверен. Цель состоит в том, чтобы избежать написания и тестирования всего этого самостоятельно на основе authorize.net документы api.

Кто-нибудь знает какие-нибудь хорошие библиотеки PHP для этого? Я безрезультатно искал в Google.

Author: markwatson, 2009-07-31

9 answers

Authorize.net предоставляет свой собственный SDK для PHP и других языков. Вероятно, нет необходимости искать в другом месте.

 8
Author: Salman A, 2011-05-03 06:20:19

Тебе повезло. Вот что я использую (для шлюза SIM-карты):

include("../../simdata.php");
...
<!--form action="https://test.authorize.net/gateway/transact.dll" method="POST"-->
<FORM action="https://secure.authorize.net/gateway/transact.dll" method="POST">
<?
$x_description = "website.com";
$currency = "";
$tstamp = time();
// Seed random number for security and better randomness.
srand(time());
$sequence = rand(1, 1000);
$data = "$x_loginid^$sequence^$tstamp^$total^$currency";
#echo "data = $data\n";
#echo $x_tran_key;
$fingerprint = bin2hex(mhash(MHASH_MD5, $data, $x_tran_key));
# php 5 only $fingerprint = hash_hmac("md5", $data, $x_tran_key);
echo ("<input type='hidden' name='x_fp_sequence' value='" . $sequence . "'>\n" );
echo ("<input type='hidden' name='x_fp_timestamp' value='" . $tstamp . "'>\n" );
echo ("<input type='hidden' name='x_fp_hash' value='" . $fingerprint . "'>\n" );
echo ("<input type=\"hidden\" name=\"x_description\" value=\"" . $x_description . "\">\n" );
echo ("<input type=\"hidden\" name=\"x_login\" value=\"$x_loginid\">\n");
echo ("<input type=\"hidden\" name=\"x_amount\" value=\"$total\">\n");

?>
<input type="hidden" name="x_first_name" value="<?=firstName($_SESSION['user']['name'])?>">
<input type="hidden" name="x_last_name" value="<?=lastName($_SESSION['user']['name'])?>">
<input type="hidden" name="x_company" value="<?=$_SESSION['user']['company']?>">
<input type="hidden" name="x_address" value="<?=$_SESSION['user']['address']?>">
<input type="hidden" name="x_city" value="<?=$_SESSION['user']['city']?>">
<input type="hidden" name="x_state" value="<?=$_SESSION['user']['state']?>">
<input type="hidden" name="x_zip" value="<?=$_SESSION['user']['zip']?>">
<input type="hidden" name="x_phone" value="<?=$_SESSION['user']['phone']?>">
<input type="hidden" name="x_email" value="<?=$_SESSION['user']['email']?>">
<input type="hidden" name="x_cust_id" value="<?=$_SESSION['user']['username']?>">
<INPUT TYPE="HIDDEN" name="x_logo_url" VALUE= "https://secure.authorize.net/mgraphics/logo_99999.gif">
<INPUT type="hidden" name="x_show_form" value="PAYMENT_FORM">
<!--INPUT type="hidden" name="x_test_request" value="TRUE"-->

<!--input type="hidden" name="x_receipt_link_method" value="POST">
<input type="hidden" name="x_receipt_link_text" value="Click for listings">
<input type="hidden" name="x_receipt_link_url" value="http://website.com/confirmation.php"-->

<input type="hidden" name="x_relay_response" value="TRUE">
<input type="hidden" name="x_relay_url" value="http://website.com/confirmation.php">
<input type="hidden" name="<?=session_name()?>" value="<?=session_id()?>">

<input type="hidden" name="" value="">
<input type="hidden" name="" value="">
<input type="hidden" name="" value="">
<? if ($total==0) { ?>
    <a href="account.php">Your Account</a>
<? } else { ?>
    <INPUT type="submit" value="Accept Order">
<? } ?>
</form> 

И это то, что я использую для confirmation.php

include("../../simdata.php");
#print_r($_POST);

// verify transaction comes from authorize.net and save user details
$responseCode = $_POST['x_response_code'];
if ( $responseCode == 1) { // approved
    $md5 = $_POST['x_MD5_Hash'];
    $transId = $_POST['x_trans_id'];
    $amount = $_POST['x_amount'];
    $myMD5 = strtoupper(md5("$x_tran_key$x_loginid$transId$amount"));
    #echo $myMD5;
    #print_r ($_POST);
    #print_r ($_SESSION['user']);

    if ($myMD5 == $md5) { // authenticated response from authorize.net
       ...
    } else {
        $error = "Unauthenticated response.";
    }
} else if (isset($_POST['x_response_code'])) { // error
    $error = $_POST['x_response_reason_text'].", #".$_POST['x_response_code'].'.'.$_POST['x_response_subcode'].
        '.'.$_POST['x_response_reason_code'];
}
 5
Author: Chloe, 2009-12-03 06:58:43

Метод формы является небезопасным способом передачи этой информации. Лучше всего использовать их метод API AIM.

Отличный учебник можно найти здесь: http://www.johnconde.net/blog/tutorial-integrating-the-authorizenet-aim-api-with-php

 5
Author: Craig Grella, 2012-10-19 14:14:06

Поддержка Magento Authorize.Net . Извлеките код, который вам нужен, так как Magento хорошо протестирован и код хорошего качества.

 2
Author: Srikar Doddi, 2009-07-30 21:43:20

Я думаю simdata.php просто содержит данные транзакции... такие как сумма, имя пользователя и т.д.

 2
Author: jacob beasley, 2010-08-04 15:50:39

Джеймс Гиффорд создал несколько Authorize.net код для codeigniter. Скачать можно здесь...

Http://jamesgifford.com/programming/codeigniter-authorize-net-library/

Я использую php sdk, который я получил прямо с сайта разработчиков Authorize.nets...

Http://developer.authorize.net/downloads/

 2
Author: jfountain, 2010-10-25 14:10:23

Это неплохая библиотека для использования в CodeIgniter, но ее можно использовать отдельно:

Http://code.google.com/p/authorizenetlib/downloads/detail?name=Authorize_net-1.0.php

Заслуга: Джеймс Гиффорд за код.

 1
Author: phirschybar, 2009-09-02 15:25:35

Я использовал платежный модуль, включенный в Kohana 2.3.x, со встроенной функцией авторизации.Сетевой драйвер. http://docs.kohanaphp.com/addons/payment

 1
Author: , 2009-09-18 00:28:55

Http://www.micahcarrick.com/04-19-2005/php-authorizenet-aim-interfacing-class.html

Это класс, который я использую. Довольно прост в использовании. Однако вам все равно придется покопаться в API, чтобы выяснить, какие переменные вы хотите отправлять, а какие нет.

 0
Author: Mark, 2009-07-30 21:42:21