2010-07-06 8 views
4

Comment puis-je savoir si la transaction effectuée par l'utilisateur est réglée ou non dans le authorize.net.J'utilise AIM. Je veux passer à travers le codage.Lorsque la transaction est terminée et je ne peux pas trouver le statut de la transaction.Mais je veux savoir si ça va pour une transaction réglée ou non réglée. Merci d'avance.Comment trouver la transaction est réglée/Unsettled dans Authorize.net?

+0

Eh, cela fait un moment que j'ai implémenté manuellement le traitement de carte de crédit par Authorize.net, mais je ne me souviens pas de tout type de propriété réglée/non réglée. Vous envoyez généralement une demande à la passerelle pour traiter un paiement (avec toutes les informations CC), puis elle renvoie un code d'état qui vous indique si le paiement a échoué ou échoué. Puisque c'est une carte de crédit, pas un onglet, les fonds sont transférés du compte de l'acheteur à la vôtre presque instantanément. –

+0

Correction, en plus de réussite/échec/erreur, il y a un 4ème code de réponse, mais cela ne devrait jamais apparaître dans une configuration standard. Cela se produit lorsque vous acceptez des paiements partiels ou si vous avez configuré votre compte de sorte que vous devez examiner et approuver chaque transaction manuellement. Voir la sous-section dans la section 4 intitulée «Codes de motif de réponse ...»: http://developer.authorize.net/guides/AIM/ –

+0

Merci pour vos réponses rapides ... Je vais passer par là. – svk

Répondre

4

Vous ne pouvez pas obtenir cette information par le biais du codage, car aucune offre API Authorize.Net ne le permet. Cela ne peut se faire que via le panneau de contrôle. Lorsque vous traitez une transaction et qu'elle est approuvée, vous pouvez supposer que la transaction n'est pas réglée. Les transactions sont réglées une fois par jour, généralement vers minuit heure du Pacifique. Après cela, vous pouvez supposer qu'une transaction est réglée.

+0

Ah, je ne le savais pas. Qu'est-ce que cela signifie exactement quand une transaction est "non réglée"? Les fonds n'ont-ils pas encore été déduits de l'acheteur? Ou cela signifie-t-il simplement que les fonds sont entre le compte de l'acheteur et le compte du marchand (par exemple, être détenu par Authorize.net)? –

+1

Pour simplifier le processus de gestion des transactions pour toutes les parties concernées (marchand, acquéreur, banque de traitement), les transactions sont traitées par lots une fois par jour. Une transaction non réglée a les fonds détenus sur la carte de crédit d'un titulaire de carte pour le commerçant acheté à partir de. Une fois cette transaction réglée, les fonds sont prélevés sur le détenteur de la carte et transférés au marchand. Dès qu'un code d'approbation est donné pour une transaction, en ce qui concerne le commerçant, la transaction est terminée et ils peuvent compter sur cet argent dans les 2-3 jours ouvrables selon le type de carte. –

+0

Merci John conde. Mon doute est après 12 heures si c'est une transaction non réglée (c'est-à-dire si elle échoue pour validation quand les gens de banque passent par là (je ne sais pas si cette situation se produira ou pas)) est-il possible d'informer le marchand? rembourser (dissous) l'amound pour l'utilisateur. – svk

6

Depuis le 16/03/2011, authorize.net a lancé deux nouveaux appels à l'API Transaction Details, getUnsettledTransactionList et getBatchStatistics. GetUnsettledTransactionList retourne jusqu'à 1 000 transactions non-paramétrées par appel, renvoyant les transactions les plus récentes. Les informations renvoyées dans la réponse seront les mêmes que celles renvoyées dans l'appel getTransactionList.

getBatchStatistics retourne les statistiques de traitement par lots pour un état seul lot comme de règlement et le temps, le nombre de charge, le nombre de déclin, etc.

Pour plus d'informations, consultez le guide XML et le guide SOAP. Au moment de l'écriture, PHP SDK est à la version 1.1.6 et n'a pas cette fonction intégrée dans l'API TD, mais si vous regardez la documentation fournie ci-dessus, ainsi que this example page, vous verrez que une liste de transactions non réglées est en effet possible.

from this page

1

J'ai suivi ce lien http://developer.authorize.net/api/transaction_details/ et obtenir ce code à partir de là,

<?php 
require_once "anet_php_sdk/AuthorizeNet.php"; 
define("AUTHORIZENET_API_LOGIN_ID", "YOURLOGIN"); 
define("AUTHORIZENET_TRANSACTION_KEY", "YOURKEY"); 

// Get Settled Batch List 
$request = new AuthorizeNetTD; 
$response = $request->getSettledBatchList(); 
echo count($response->xml->batchList->batch) . " batches\n"; 
foreach ($response->xml->batchList->batch as $batch) { 
    echo "Batch ID: " . $batch->batchId . "\n"; 
} 

// Get Transaction Details 
$transactionId = "12345"; 
$response = $request->getTransactionDetails($transactionId); 
echo $response->xml->transaction->transactionStatus; 

mais j'obtiens ce message d'erreur.

L'authentification de l'utilisateur a échoué en raison de valeurs d'authentification non valides.

0

Comme suggéré dans la réponse de @ CWD, le moyen le plus fiable de savoir si une transaction est réglée est d'appeler getUnsettledTransactionList ou getBatchStatistics, mais vous pouvez aussi simplement vérifier ce que votre Transaction heure limite est réglé sur.

Connectez-vous à votre Authorize.net admin, cliquez sur Compte> Transaction Time Cut-Off

Mon compte est réglé sur 16h00 PDT donc vous pouvez les comparer votre temps de transaction à l'heure limite . Quelque chose comme:

$createdTime = new DateTime($charge['createdTime']); 

// starting point for settle time 
$settleTime = new DateTime($createdTime->format('Y-m-d') . ' 16:00:00'); 
$now = new DateTime(); 

// if card was charged after settle time for 
// that day, move settle time to the next day 
if ($createdTime > $settleTime) { 
    $settleTime->add(new DateInterval('P1D')); 
} 

if ($now > $settleTime) $settled = true; 
Questions connexes