Question

Je travaille sur un projet PHP et je recherche une bonne passerelle authorize.net. Je veux quelque chose avec du code mature qui a été testé. L’objectif est d’éviter d’écrire et de tester moi-même le tout en me basant sur les documents d’autorisations d’autorisations.net.

Est-ce que quelqu'un connaît de bonnes bibliothèques PHP pour cela? J'ai consulté Google sans succès.

Était-ce utile?

La solution

Authorize.net fournit son propre SDK pour PHP et d'autres langues . Il n’est probablement pas nécessaire de chercher ailleurs.

Autres conseils

Vous avez de la chance. C’est ce que j’utilise (pour la passerelle 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> 

Et voici ce que j'utilise pour le fichier 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'];
}

La méthode du formulaire est un moyen peu sûr de transmettre cette information. Un meilleur pari utilise leur méthode API AIM.

Un excellent tutoriel peut être trouvé ici: http://www.johnconde.net/blog / tutorial-integrating-the-authorizenet-aim-api-with-php

Magento supporte Authorize.Net. Extrayez le code dont vous avez besoin, car Magento est un code bien testé et de bonne qualité.

Je pense que simdata.php ne contient que les données de transaction ... comme le montant, le prénom de la personne, etc.

James Gifford a créé du code Authorize.net pour codeigniter. Téléchargez ici ...

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

J'utilise le php sdk que je viens directement du site de développement Authorize.nets ...

http://developer.authorize.net/downloads/

c'est une bibliothèque décente à utiliser dans CodeIgniter, mais elle peut être utilisée de manière autonome:

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

crédit: james gifford pour le code.

J'ai utilisé le module de paiement inclus dans Kohana 2.3.x avec le pilote Authorize.Net intégré. http://docs.kohanaphp.com/addons/payment

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

C'est la classe que j'utilise. Assez simple à utiliser. Cependant, vous aurez encore besoin de creuser dans l'API pour déterminer quelles variables vous souhaitez envoyer et lesquelles vous ne les envoyez pas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top